1

我正在尝试将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

这是我正在使用的conf:

 [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 代理(安装在另一台主机上)接收数据。在我通过初始化脚本启动 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

但是当我重新加载页面时,我得到了同样的错误信息。在这一点上有点卡住了。我将不胜感激任何人可能有的任何建议!

谢谢!

4

5 回答 5

1

尝试执行这个

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

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

于 2013-12-03T00:29:08.543 回答
0

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

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

它是 ElasticSearch 的 JSON 感知开发工具。创建索引后,清除浏览器缓存,关闭浏览器并重新测试。

于 2014-01-09T12:53:17.493 回答
0

您应该通过删除此行来让默认配置

port => "9300"
于 2014-06-12T22:31:05.670 回答
0

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

于 2014-08-05T10:06:35.210 回答
0

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

logstash-embedded elasticsearch 的版本必须与您的独立版本匹配。例如logstash 1.3 使用elasticsearch 0.90。logstash 1.4 使用弹性搜索 1.0

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

于 2014-03-19T09:24:40.513 回答