LogStashでMySQLのデータをElasticSearchに流し込んだ

MySQLに集めたものの、どうしたら良いの状態だったため。

LogStashをインストール

Logstashから/usr/local/binにダウンロードしてインストール。ElasticSearchのバージョンに合わせる必要あり?

cd /usr/local/bin
sudo curl -O https://artifacts.elastic.co/downloads/logstash/logstash-6.3.1.deb
sudo dpkg -i logstash-6.3.1.deb

mysql-connector-javaをインストール

https://dev.mysql.com/downloads/connector/j/からダウンロードしてサーバーにアップロード
して、解凍して/usr/local/binに移動。現バージョンはmysql-connector-java-8.0.11。

ls /usr/local/bin/mysql-connector-java-8.0.11|grep mysql-connector
mysql-connector-java-8.0.11.jar

LogStashの設定ファイルを作成する

sudo vi /etc/logstash/conf.d/mysql.conf
input {
  jdbc {
    jdbc_driver_library => "/usr/local/bin/mysql-connector-java-8.0.11/mysql-connector-java-8.0.11.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/DB名"
    jdbc_user => "ユーザー名"
    jdbc_password => "パスワード"
    statement => "SQL文を書く"
    type => "タイプ"
  }
}
output {
  if [type] == "iphone" {
    elasticsearch {
      manage_template => false
      hosts => ["localhost:9200"]
      index => "iphone"
      document_type => "%{type}"
      document_id => "%{id}"
    }
    stdout {codec => rubydebug {metadata => true }}
  }
}

実行する

LogStashを実行して、データを流し込む。

sudo systemctl start logstash
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/mysql.conf

いいね:

ElasticSearch

Posted by umentu_blog