0

我已經編譯了Nginx的存根狀態模塊,我希望數據由Logstash處理併發送到ElasticSearch。我使用Logstash http_poller模塊每10秒獲取一次狀態。Nginx存根狀態到Logstash

請參閱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模式,但迄今沒有任何成功。

回答

0

存根狀態的輸出與nginx_status(可能也是apache)相同。

我也爲elasticsearch收集這些信息,但我使用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