logstashを使用してmysqlをDockerのelasticsearchに同期
6688 ワード
dockerhubのlogstashミラーを引き抜く
ミラーファイルの構築
ミラーの構築
MySQLの同期にはMySQLドライバが必要です.ディレクトリをマウントする場合は、1つのディレクトリのみをマウントします.mysqlドライバとプロファイルを同じディレクトリに配置します
configディレクトリを作成し、プロファイルlogstash-mysql-es.confファイルテンプレートを作成します.
スターティングコンテナ
docker pull logstash:
ミラーファイルの構築
FROM logstash
# input
RUN logstash-plugin install logstash-input-jdbc
# output
RUN logstash-plugin install logstash-output-elasticsearch
# .(CMD docker run )
CMD ["-f", "/some/config-dir/logstash-mysql-es.conf"]
ミラーの構築
docker build -t my-logstash
MySQLの同期にはMySQLドライバが必要です.ディレクトリをマウントする場合は、1つのディレクトリのみをマウントします.mysqlドライバとプロファイルを同じディレクトリに配置します
configディレクトリを作成し、プロファイルlogstash-mysql-es.confファイルテンプレートを作成します.
input {
stdin { }
jdbc {
# mysql ip, localhost
# mysql jdbc connection string to our backup databse
jdbc_connection_string => ""
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => "root"
# the path to our downloaded jdbc driver
jdbc_driver_library => ""
# the name of the driver class for mysql
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50"
# sql 。
#statement_filepath => ""
statement => ""
# ( ) 、 、 、 、 , * ( , )
schedule => "* * * * *"
}
}
#
codec => plain { charset => "UTF-8"}
#
record_last_run => true
#
last_run_metadata_path => ""
# ,
use_column_value => true
tracking_column => "createtime"
#numeric timestamp
tracking_column_type => timestamp
# true last_run_metadata_path ,
#clean_run => false
}
}
output {
stdout {
codec => json_lines
}
elasticsearch {
# mysql ip, localhost
#ESIP
hosts => "localhost:9200"
#ES ( )
index => ""
# ID
document_id => "%{id}"
document_type => ""
}
スターティングコンテナ
docker run -d --name logstash_mysql -v /root/logstash/config:/some/config-dir/ bc8551a7b495