我正在尝试将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
但是当我重新加载页面时,我收到相同的错误消息。有点卡在这一点上。我很感激任何人的建议!
谢谢!
答案 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文件中提到。