在不使用kibana的情况下在kibana中创建索引

时间:2017-01-03 07:59:55

标签: elasticsearch indexing configuration logstash kibana

我对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/时(它显示的端口)它似乎没有任何错误

非常感谢你的帮助!!

3 个答案:

答案 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

时,Kibana(我在索引模式部分添加了它)和Elasticsearch

我唯一应该做的就是删除每次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中使用。