centos Elasticsearch & LogStash & kibana安装及调试

安装elastic & LogStash & kibana:


https://cloud.tencent.com/developer/article/1900966


其中 LogStash 创建的配置文件最好按以下格式:


input {
  jdbc {
    # mysql 数据库链接,test为数据库名
    jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/abc"
   
    # 用户名和密码
    jdbc_user => "root"
    jdbc_password => "123456"

    # 驱动
     jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
   
    # 是否分页
    jdbc_paging_enabled => "true"
    #每页获取数量,可以根据性能按需修改
    jdbc_page_size => "20000"
   
    # 直接执行sql语句
    statement => "SELECT id,realname,nickname,pinyinName,tag,english_name from * where id <= 17"
   
    # 是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false);
    lowercase_column_names => false
   
    # 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中
    record_last_run => true
   
    # 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值
    use_column_value => true
   
    # 查询结果某字段的数据类型,仅包括numeric和timestamp,默认为numeric
    tracking_column => "id"
   
    # 记录上次执行结果数据的存放位置
    last_run_metadata_path => "./last_id.txt"
   
    # 是否清除last_run_metadata_path的记录,需要增量同步时此字段必须为false
    clean_run => false
   
    # 要执行的sql文件
    # statement_filepath => "/softwares/logstash-7.12.1/config/export-data.sql"
   
    # 定时配置 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
    #schedule => "* * * * *"
  }
}
 
output {
  elasticsearch {

    # es的ip和端口
    hosts => ["127.0.0.1:9200"]
   
    # ES索引库名称
    index => "test"
   
    # 文档类型
    # document_type => "_doc"
   
    # 设置数据的id为数据库中的字段
    document_id => "%{id}"
  }
  stdout {
   #日志输出
   codec => json_lines
  }
}


这块不如直接用 代码进行数据迁移至 Es。

function elasticAdd()
{
   $data = $this->lk_common->getTableValue('table',"id>0",'column');

   $index = "test";//集合
   $type = "doc";//表
   $base_url = "http://localhost:9200"; // Elasticsearch base URL
   foreach ($data as $v){
      $ch = curl_init();

      curl_setopt($ch, CURLOPT_URL, "$base_url/$index/$type/{$v['id']}");
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($v));
      curl_setopt($ch, CURLOPT_HTTPHEADER, array(
         'Content-Type: application/json',
         'Content-Length: ' . strlen(json_encode($v))
      ));
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

      $response = curl_exec($ch);
      if ($response === false) {
         echo "cURL Error: " . curl_error($ch);
      } else {
         echo "Document added successfully: $response";
      }

      curl_close($ch);
   }


}


按需。


kibana:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.16-linux-x86_64.tar.gz

tar -zxvf kibana-5.6.16-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local/kibana-5.6.16-linux-x86_64/config/

#修改es连接信息等。默认可不改
vim kibana.yml

# 默认值5601,没有需要可以不修改
server.port: 5601
# 允许远程访问,也可以直接设置为“0.0.0.0”
server.host: "0.0.0.0"
# 默认值http://localhost:9200
elasticsearch.url: "http://127.0.0.1:9200"

cd ..

./bin/kibana

如果是在Linux-nginx,

IP+端口 打不开时;可用域名配置反向代理调试。


分词:

https://developer.aliyun.com/article/848626



nba2k2球员数据
请先登录后发表评论
  • 最新评论
  • 总共0条评论