logstashを使用してmysqlデータをelasticsearchに同期します

ELKの紹介

ELKは、Elasticsearch、Logstash、Kibanaの3つのオープンソースソフトウェアの略語です。これらはすべてオープンソースソフトウェアです。軽量のログ収集および処理ツール(エージェント)である新しいFileBeatが追加されました。Filebeatは占有するリソースが少なく、さまざまなサーバーでログを収集してLogstashに送信するのに適しています。関係者もこのツールを推奨しています。

Elasticsearchは、データの収集、分析、保存の3つの機能を提供するオープンソースの分散検索エンジンです。その特徴は、分散、ゼロ構成、自動検出、自動インデックスシャーディング、インデックスコピーメカニズム、安らかなスタイルのインターフェイス、複数のデータソース、自動検索ロードなどです。

Logstashは、主にログを収集、分析、およびフィルタリングするためのツールであり、多数のデータ取得方法をサポートしています。一般的な作業方法はc / sアーキテクチャです。クライアントはログを収集する必要のあるホストにインストールされ、サーバーは各ノードの受信ログをフィルタリングおよび変更し、同時にelasticsearchに送信します。

Kibanaはオープンソースの無料ツールでもあります。KibanaはLogstashとElasticSearchに、重要なデータログの要約、分析、検索に役立つログ分析用の使いやすいWebインターフェイスを提供できます。

Logstashを使用する

あなたはこれらの二つのブログを参照することができますについてのインストールelasticsearchと頭をしてkibanaをインストールします

Logstashを使用してmysqlテーブルのデータをelasticsearchに同期する方法について説明しましょう。

1.ダウンロードしてインストールLogstash

2.指定したディレクトリに解凍し、binと同じディレクトリにmysqlフォルダを作成してmysqlドライバパッケージを保存します。mysqlドライバーパッケージをダウンロードします
ここに画像の説明を挿入
3.binフォルダーにlogstash.confファイルを作成します。このファイルの構成内容は次のとおりです。

input {
    
    
  # 多张表的同步只需要设置多个jdbc的模块就行了
  jdbc {
    
    
      # mysql 数据库链接,test为数据库名
      jdbc_connection_string => "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # 用户名和密码
      jdbc_user => "xxxx"
      jdbc_password => "xxxx"

      # 驱动
      # 改成你自己的安装路径
      jdbc_driver_library => "D:/software/logstash-7.3.2/mysql/mysql-connector-java-8.0.22.jar"

      # 驱动类名
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      jdbc_validate_connection => "true"

      #是否分页
      #jdbc_paging_enabled => "true"
      #jdbc_page_size => "1000"
      #时区
      jdbc_default_timezone => "Asia/Shanghai"

      #直接执行sql语句
	  statement => "select * from user"
      # 执行的sql 文件路径+名称
      # statement_filepath => "/hw/elasticsearch/logstash-6.2.4/bin/test.sql"

      #设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      #schedule => "* * * * *"
      #每隔10分钟执行一次
      #schedule => "*/10 * * * *"
      #是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到last_run_metadata_path
      record_last_run => true
      #记录最新的同步的offset信息
      #last_run_metadata_path => "D:/es/logstash-7.3.2/logs/last_id.txt"

      use_column_value => true
      #递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
      tracking_column_type => "numeric"
      tracking_column => "id"
      clean_run => false
      # 索引类型
      #type => "jdbc"
    }

}


output {
    
    
  elasticsearch {
    
    
        #es的ip和端口
        hosts => ["http://localhost:9200"]
        #ES索引名称(自己定义的)
        index => "test"
        #文档类型
        document_type => "_doc"
        #设置数据的id为数据库中的字段
        document_id => "%{id}"
    }
    stdout {
    
    
        codec => json_lines
    }
}

4.スタートアップ
logstashのインストールディレクトリbinに移動し、コマンドラインウィンドウに入力します

logstash -f logstash.conf

ここに画像の説明を挿入
注:logstashのインストールパスに中国語を含めることはできません。中国語を使用しないと、エラーが報告されます。

実行後、elasticsearchのheadプラグインを介してインデックス内のデータを表示できます。

おすすめ

転載: blog.csdn.net/hello_cmy/article/details/111224633