我对elasticsearch-kibana-logstash很新,似乎无法找到解决方案。
我正在尝试创建我将在kibana中看到的索引,而无需在Dev Tools部分中使用POST命令。
我已经设置了test.conf -
input {
file {
path => "/home/user/logs/server.log"
type => "test-type"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "new-index"
}
}
然后
来自logstash目录的 bin/logstash -f test.conf
我得到的是我在kibana(索引模式部分)中找不到新索引,当我使用elasticsearch - http://localhost:9200/new-index/
时它会出现错误,当我转到http://localhost:9600/
时(它显示的端口)它似乎没有任何错误
非常感谢你的帮助!!
答案 0 :(得分:0)
很明显,您无法在Kibana中找到您使用logstash
创建的索引,除非您在其中手动创建该索引。 Managemen
的{{1}}部分。
确保您使用Kibana
创建的indice名称相同。看一下传达的doc:
定义索引模式时,必须与该模式匹配的索引 存在于Elasticsearch中。这些指数必须包含数据。
这几乎说明了你应该存在在logstash
中创建索引的指数。希望它有所帮助!
答案 1 :(得分:0)
即使没有先在Kibana中创建索引,我实际上已经成功创建了索引
我使用了以下配置文件 -
input {
file {
path => "/home/hadar/tmp/logs/server.log"
type => "test-type"
id => "NEWTRY"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day} %{HOUR:hour}:%{MINUTE:minute}:%{SECOND:second} - %{LOGLEVEL:level} - %{WORD:scriptName}.%{WORD:scriptEND} - " }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "new-index"
codec => line { format => "%{year}-%{month}-%{day} %{hour}:%{minute}:%{second} - %{level} - %{scriptName}.%{scriptEND} - \"%{message}\"" }
}
}
我确保索引已经不在Kibana中(我尝试使用其他索引名称也只是为了确保...)并且最终我确实看到了带有log&#s信息的索引当我去http://localhost:9200/new-index
我唯一应该做的就是删除每次Logstash运行后在.sincedb_XXX
下创建的data/plugins/inputs/file/
个文件
OR
另一个解决方案(仅适用于测试环境)是将sincedb_path=>"/dev/null"
添加到输入文件插件中,表示不创建.sincedb_XXX
文件
答案 2 :(得分:0)
您可以使用https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html在弹性搜索中直接创建索引 这些索引可以在Kibana中使用。