Я скомпилировал Nginx с модулем состояния заглушки и хочу, чтобы данные обрабатывались Logstash и отправлялись в ElasticSearch. Я использую модуль Logstash http_poller для получения статуса каждые 10 секунд.
Статус заглушки Nginx для Logstash
Ответы (2)
Вывод статуса заглушки такой же, как и у 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
Для всех, кому интересно: я нашел этот модуль, это намного упрощает! https://github.com/lindsayevans/nginx-json-status-module