Nginx存根状态为Logstash

时间:2016-05-12 17:04:36

标签: nginx elasticsearch logstash logstash-grok logstash-configuration

我已经使用存根状态模块编译了Nginx,我希望数据由Logstash处理并发送到ElasticSearch。我正在使用Logstash http_poller模块每10秒获取一次状态。

http://nginx.org/en/docs/http/ngx_http_stub_status_module.html。这是从Nginx存根状态模块检索时的数据:

Active connections: 291 
server accepts handled requests
 16630948 16630948 31070465 
Reading: 6 Writing: 179 Waiting: 106 
如何将数据解析为便于ElasticSearch的格式?我一直在尝试多线过滤器和一些grok模式,但到目前为止没有任何成功。

2 个答案:

答案 0 :(得分:0)

存根状态的输出与nginx_status(也可能是apache)相同。

我也收集了弹性搜索的这些信息,但我使用了collectd。您也可以使用collectd,或者查看代码附带的nginx插件以及它们如何解析它。

如果您想使用collectd,我建议:通过apt-get获取它或从collectd.org下载源代码以获取最新版本。 (你需要4.2或更高)

vi /etc/collectd/collectd.conf

确保取消注释LoadPlugin nginx 添加或编辑以下行。

<Plugin nginx>
        URL "http://status.yourhost.com/stub_status"
</Plugin>

然后你需要将数据记录到logstash;

这里都解释了这一点。

https://www.elastic.co/guide/en/logstash/current/plugins-codecs-collectd.html

我相信插件的来源是:

https://github.com/collectd/collectd/blob/463fb2d44339625aae269e07f2773ee4f158faa8/src/nginx.c

答案 1 :(得分:0)

对于任何感兴趣的人:我找到了这个模块,这让它变得更容易! https://github.com/lindsayevans/nginx-json-status-module