我整个晚上一直在努力,这让我发疯 . 它应该很简单,但它不起作用 . 这适用于Oracle但不适用于MySQL,我创建了类似的db.config,它使用-f选项提供给logstash .
input {
jdbc {
jdbc_driver_library => "/opt/elk/logstash-5.6.0/lib/mysql-connector-java-5.1.45-bin.jar"
jdbc_driver_class => "Java::com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://serverName:3306/dbName?verifyServerCertificate=false&useSSL=true"
jdbc_user => "userName"
jdbc_password => "PasswordValue"
statement => "select user_id, visitor_returning, config_os, visitor_days_since_last from visiting_table where user_id is not null"
#optional extras I use
type => "visit"
tags => ["awesome", "import"]
}
}
输出{stdout {codec => json_lines}
if [type] == "visit"{
elasticsearch{
hosts => "127.0.0.1"
index => "visitDb"
document_type => "visit_results"
}
}
stdout{}
}
运行logstash后,它不会将数据加载到弹性搜索索引中 . 当我执行以下操作时,我甚至无法看到名为visitDb的索引 .
curl'localhost:9200 / _cat / indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
黄色开放.kibana Fg6P7XuHSTaonbKEbLcz5A 1 1 21 3 56.5kb 56.5kb黄色开放订单totdb obxZ38prTFCG0W-BFTIhgw 5 1 60 0 245.4kb 245.4kb y
我无法弄清楚MySQL的情况 . 我可以看到控制台日志以json格式检索数据并写入控制台,但索引不会反映在ElasticSearch中,也不会显示在Kibana中以创建索引模式 .
有人可以帮忙吗?
1 回答
如果其他任何人遇到同样的问题,请回答我自己的问题 . 弹性搜索以大写形式拒绝索引名称,因为我的名字visitDb有D大写,它拒绝索引名称创建,转到图:)调试不同选项时丢失了几个小时 .