我正在使用带有logstash的elasticsearch 5.1.1来使用mysql。
logstash.conf
input {
jdbc {
jdbc_driver_library => "lib/mysql-connector-java-5.1.33.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/test"
jdbc_user => "test"
jdbc_password => "test"
statement => "SELECT * FROM test"
schedule => "* * * * *"
type => "test"
}
jdbc {
jdbc_driver_library => "lib/mysql-connector-java-5.1.33.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/test"
jdbc_user => "test"
jdbc_password => "test"
statement => "SELECT * FROM test2"
schedule => "* * * * *"
type => "test2"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test"
document_type => "%{type}"
document_id => "%{test_id}"
}
}
$ bin / logstash -f logstash.conf
有效。
但我想添加这些选项。
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"korean": {
"type": "custom",
"tokenizer": "seunjeon_default_tokenizer"
}
},
"tokenizer": {
"seunjeon_default_tokenizer": {
"type": "seunjeon_tokenizer",
"index_eojeol": false,
"user_words": [
"abc"
]
}
}
}
}
}
}
如何将此选项添加到conf文件?
如果我添加更多具有不同列的表,如何动态设置document_id?
答案 0 :(得分:1)
关于第一个问题:
如何将此选项添加到conf文件?
我相信索引设置可以用两种不同的方式设置
在你的情况下,我认为第一种选择更好。为此,您需要创建一个index template,其中包含您希望在创建索引或索引时应用的设置。 "模板的价值" key必须匹配您将要创建的索引的名称(" test"在您的示例中)。
我认为您无法直接向logstash配置文件添加索引设置。您可以使用REST API(PUT _template / template_name端点)上传模板,或者让logstash加载模板。
如果您想让logstash创建模板,可以使用template选项在elasticsearch块中的logstash配置中引用模板文件。 logstash配置文件中引用的模板文件必须存储在运行logstash的同一主机中。您可以使用template_overwrite选项来控制是否覆盖现有索引模板。
logstash配置如下所示:
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "test"
document_type => "%{type}"
document_id => "%{test_id}"
template => "path/to/the/template/file"
}
}
模板文件将包含:
{
"template": "test",
"settings" : {
"index":{
"analysis":{
"analyzer":{
"korean":{
"type":"custom",
"tokenizer":"seunjeon_default_tokenizer"
}
},
"tokenizer": {
"seunjeon_default_tokenizer": {
"type": "seunjeon_tokenizer",
"index_eojeol": false,
"user_words": ["abc"]
}
}
}
}
}
}
您可能还希望在索引模板中加入mappings
希望这有帮助!
(请注意,我没有尝试过这种特定情况)