Logstash 输出有效但无法提供弹性搜索
Logstash output works but fail to feed elasticsearch
我正在尝试将我的 API 自定义日志文件传递给 Kibana。为此,我使用 myLogFiles.log -> Logstash -> Elasticsearch -> Kibana。
问题
Logstash 输出表明一切正常,但 Elasticsearch 仍然是空的(我用 kibana 或 elasticsearch web 可视化插件检查过)
问题
我如何提供 elasticsearch 以在 kibana 中可视化我的数据?
调试到此为止
为了进行一些调试,我告诉 Logstash 在 .log 文件和控制台上输出。
看看我的 logstash.conf:
input {
file {
path => '/home/***/dev_logstach/acci.log'
start_position => beginning
}
}
filter {
grok {
match => {"message" => "%{WORD:key} %{WORD:userID} %{WORD:lakeID} %{WORD:ballID} %{NUMBER:longitude} %{NUMBER:latitude} %{TIMESTAMP_ISO8601:date_evenement}"}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "testACCI"
}
stdout { codec => rubydebug }
file {
path => "/home/***/dev_logstach/testLog.log"
create_if_deleted => true
}
}
和一个 logstash 输出
{
"userID" => "HJcOX",
"@timestamp" => 2018-04-10T13:27:47.723Z,
"latitude" => "-123.8",
"message" => "{message:ACWWCI HJcOX qHYFM ABCCCC -22.5 -123.8 2018-04-10T09:11:06.173Z,level:info}",
"path" => "/home/***/dev_logstach/acci.log",
"date_evenement" => "2018-04-10T09:11:06.173Z",
"@version" => "1",
"lakeID" => "qHYFM",
"key" => "ACWWCI",
"ballID" => "ABCCCC",
"host" => "sd-10****",
"longitude" => "-22.5"
}
当我再次 运行 它不记录以前的数据时,当我
logstash 运行
echo -e "new data line" >> acci.log
新数据出现在日志中。
然后我假设数据被发送到某个地方,但我不知道在哪里以及如何继续前进。
在 elasticsearch 日志中我只看到一个警告:
2018-04-10T17:01:52,507][WARN ][o.e.d.i.m.MapperService ] [_default_] mapping is deprecated since it is not useful anymore now that indexes cannot have more than one type
P.S。我读到了类似的问题,但这是由于我的日期格式有效 (YYYY-MM-DD...)
几个选项:
- 提前创建你的elasticsearch索引
- 创建 elasticsearch 索引模板
这应该可以解决您的问题。
我正在尝试将我的 API 自定义日志文件传递给 Kibana。为此,我使用 myLogFiles.log -> Logstash -> Elasticsearch -> Kibana。
问题
Logstash 输出表明一切正常,但 Elasticsearch 仍然是空的(我用 kibana 或 elasticsearch web 可视化插件检查过)
问题
我如何提供 elasticsearch 以在 kibana 中可视化我的数据?
调试到此为止
为了进行一些调试,我告诉 Logstash 在 .log 文件和控制台上输出。 看看我的 logstash.conf:
input {
file {
path => '/home/***/dev_logstach/acci.log'
start_position => beginning
}
}
filter {
grok {
match => {"message" => "%{WORD:key} %{WORD:userID} %{WORD:lakeID} %{WORD:ballID} %{NUMBER:longitude} %{NUMBER:latitude} %{TIMESTAMP_ISO8601:date_evenement}"}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "testACCI"
}
stdout { codec => rubydebug }
file {
path => "/home/***/dev_logstach/testLog.log"
create_if_deleted => true
}
}
和一个 logstash 输出
{
"userID" => "HJcOX",
"@timestamp" => 2018-04-10T13:27:47.723Z,
"latitude" => "-123.8",
"message" => "{message:ACWWCI HJcOX qHYFM ABCCCC -22.5 -123.8 2018-04-10T09:11:06.173Z,level:info}",
"path" => "/home/***/dev_logstach/acci.log",
"date_evenement" => "2018-04-10T09:11:06.173Z",
"@version" => "1",
"lakeID" => "qHYFM",
"key" => "ACWWCI",
"ballID" => "ABCCCC",
"host" => "sd-10****",
"longitude" => "-22.5"
}
当我再次 运行 它不记录以前的数据时,当我
logstash 运行 echo -e "new data line" >> acci.log
新数据出现在日志中。 然后我假设数据被发送到某个地方,但我不知道在哪里以及如何继续前进。
在 elasticsearch 日志中我只看到一个警告:
2018-04-10T17:01:52,507][WARN ][o.e.d.i.m.MapperService ] [_default_] mapping is deprecated since it is not useful anymore now that indexes cannot have more than one type
P.S。我读到了类似的问题,但这是由于我的日期格式有效 (YYYY-MM-DD...)
几个选项:
- 提前创建你的elasticsearch索引
- 创建 elasticsearch 索引模板
这应该可以解决您的问题。