无法将elasticsearch连接到logstash

时间:2013-10-31 03:11:11

标签: logstash kibana

我正在尝试将elasticsearch连接到集中式logstash聚合器上的logstash

我正在使用kibana在端口80上运行logstash Web界面。

这是我用来启动logstash的命令:

/usr/bin/java -jar /etc/alternatives/logstashhome/logstash.jar agent -f      /etc/logstash/logstash.conf web --port 80

这是我正在使用的内容:

 [root@logstash:~] #cat /etc/logstash/logstash.conf 
  input { redis { host => "my-ip-here" 
  type => "redis-input" 
  data_type => "list"
  key =>       "logstash" } 
  }

 output {
 stdout { }
 elasticsearch{
    type => "all"
    embedded => false
    host => "my-ip-here"
    port => "9300"
    cluster => "jf"
    node_name => "logstash"
    }
 }

看起来好像我从logstash代理接收数据(安装在另一台主机上)。我通过init脚本启动logstash后看到日志条目流式传输。

2013-10-31T02:51:53.916+0000 beta Oct 30 22:51:53 49eb8f3e-a2c1-4c12-a41f-42dbe635a9f0 sshd[23324]: Connection closed by xx.xx.xx.xx
2013-10-31T02:52:13.002+0000 beta Oct 30 22:52:12 49eb8f3e-a2c1-4c12-a41f-42dbe635a9f0 proftpd[23403]: xx.xx.xx.xx (xx.xx.xx.xx[xx.xx.xx.xx]) - FTP session opened.
2013-10-31T02:52:13.002+0000 beta Oct 30 22:52:12 49eb8f3e-a2c1-4c12-a41f-42dbe635a9f0 proftpd[23403]: xx.xx.xx.xx (xx.xx.xx.xx[xx.xx.xx.xx]) - FTP session closed.
2013-10-31T02:52:30.080+0000 beta Oct 30 22:52:29 49eb8f3e-a2c1-4c12-a41f-42dbe635a9f0 xinetd[1757]: START: nrpe pid=23405 from=xx.xx.xx.xx
2013-10-31T02:52:30.081+0000 beta Oct 30 22:52:29 49eb8f3e-a2c1-4c12-a41f-42dbe635a9f0 xinetd[1757]: EXIT: nrpe status=0 pid=23405 duration=0(sec)

我可以看到我的nagios服务器连接到beta主机(beta是安装并运行了logstash代理的外部主机)和一些FTP会话(不是我喜欢FTP,但嘿,你能做什么?)

然而,当我将浏览器指向logstash服务器时,我看到了以下消息:

Error No index found at http://logstash.mydomain.com:9200/_all/_mapping. Please create at least one index.If you're using a proxy ensure it is configured correctly.1 alert(s)

这是我在elasticsearch.yaml中的群集设置

 grep -i cluster /etc/elasticsearch/elasticsearch.yml  | grep jf
 cluster.name: jf

我的主人是elasticsearch.yaml     grep -i host /etc/elasticsearch/elasticsearch.yml

 network.bind_host: xxx.xx.xx.xxx  # <- my logstash ip

我确实尝试使用以下curl添加索引:

[root@logstash:~] #curl -PUT http://logstash.mydomain.com:9200/_template/logstash_per_index

但是当我重新加载页面时,我收到相同的错误消息。有点卡在这一点上。我很感激任何人的建议!

谢谢!

5 个答案:

答案 0 :(得分:1)

尝试执行此

curl -XPUT http://127.0.0.1:9200/test/item/1 -d '{"name":"addhe warman", "description": "White hat hacker."}'

是什么原因因为你的弹性搜索是空的,试着用样本数据填充它,然后找出真正的问题。祝你好运

答案 1 :(得分:0)

您可以检查此Chrome插件一次。

https://chrome.google.com/webstore/detail/sense/doinijnbnggojdlcjifpdckfokbbfpbo?hl=en

它是ElasticSearch的一个支持JSON的开发人员工具。在创建索引后,清除浏览器缓存,关闭浏览器并重新测试。

答案 2 :(得分:0)

logstash的输出是什么? (意思就像日志文件)

嵌入logstash的elasticsearch的版本必须与您的独立版本匹配。 例如logstash 1.3使用elasticsearch 0.90。 logstash 1.4使用elasticsearch 1.0

因此,您必须注意使用正确的elasticsearch-version或使用 elasticsearch_http 作为输出(使用端口9200)来使用REST-API。

答案 3 :(得分:0)

你应该通过删除这一行来保留默认配置

port => "9300"

答案 4 :(得分:0)

我也有类似的问题,elasticsearch运行的是不同的端口,kibana正在9200端口访问它,这在logstash主文件夹里面的./vendor/kibana/config.js文件中提到。