Я хотел бы отслеживать статистику NGinx через Munin, но плагины Nginx не показывают данных. Можно ли диагностировать, почему работает только один из плагинов munin nginx?
Сервер работает на CentOS 5.3
Для получения информации о статусе плагины nginx используют следующий URL:
http://127.0.0.1/nginx_status
Обычно в nginx этот URL не настроен для отображения данных о состоянии.
Из документации плагинов я вижу, что nginx необходимо настроить для отображения данных о статусе в специальном URL.
Вам необходимо включить статус nginx, добавив следующие строки в конфигурацию сайта:
server {
listen 127.0.0.1;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Не забудьте перезагрузить сервер после добавления этой конфигурации и убедиться, что stus URL возвращает данные о состоянии.
Для полной документации каждого плагина, вы можете запустить:
munindoc nginx_request
Надеюсь это поможет.
apt install libwww-perl time
подключиться к узлам munin из-за проблем сUse of uninitialized value $LWP::VERSION
подключаемыми модулями nginx.http://localhost/
может предпочесть IPv6 и, следовательно, будет не соответствовать конфигурации nginx, которая разрешает только IPv4 localhost. Путем исправления URL,/etc/munin/plugin-conf.d/munin-node
чтобы вhttp://127.0.0.1/nginx_status
конечном итоге плагин заработал.По моему опыту, эти плагины, вероятно, не работают из-за неправильной конфигурации nginx. Вот краткий список того, что делать в этом случае:
1. Проверьте установку nginx
Nginx должен быть скомпилирован с модулем HttpStubStatusModule . Вы можете проверить это, выполнив следующую команду (под sudo или root):
Если вы видите следующий результат, вы можете идти вперед.
В противном случае вам придется перекомпилировать nginx с включенным требуемым модулем или установить из другого источника (в моем случае репозиторий Debian по умолчанию имел правильную версию).
2. Проверьте конфигурацию nginx
Я предполагаю, что вы установили и включили требуемый конфиг . Чтобы увидеть, работает ли он, вы можете
ssh
на свой сервер и запуститьЕсли здесь нет ошибок, проблема в настройке плагина. Если сервер возвращает ошибку здесь, вы можете отладить, изменив конфигурацию:
После этого в файле
/var/log/nginx/status.error.log
вы можете увидеть точную причину, по которой сервер вернул ошибку:В моем случае (как вы можете видеть из журнала) проблема была
client: ::1
, в то время как конфигурация позволила доступ только из127.0.0.1
Чтобы решить эту проблему, вы можете либо следовать предложению cepharum, либо изменить конфигурацию виртуального хоста:
(Обратите внимание, что я также заменил
listen: 127.0.0.1
на порт 80 (ipv4 + ipv6), потому что первый также не работал)3. Проверьте конфигурацию системы и зависимости
Чтобы проверить, работает ли сам плагин, запустите
(обратите внимание, что плагин должен быть «включен» - символическая ссылка должна присутствовать
/etc/munin/plugins
- читайте руководство, если нет)Если вы получаете ошибки с
LWP
библиотекой (например,LWP::UserAgent
илиLWP::VERSION
), в вашей системе отсутствует пакет, необходимый дляnginx_status
плагина.В Debian / Ubuntu запустите
На CentOS
После этого снова протестируйте плагин, используя
munin-run
. Ожидаемый результат (цифры будут разными):источник
/var/log/munin-update.log
(Служба nginx_status на имя_сервера / 127.0.0.1: 4949 не возвращала данных для ожидания метки), я мог искать годами, чтобы найти, чтоlibwww-perl
пропало. Большое спасибо за этот обширный ответ.Возможно, полезно:
Дополнительно используйте опцию отладки munin-run.
Проверьте файл плагина на наличие жестко закодированных путей и убедитесь, что они соответствуют вашей системе:
Плагин nginx может полагаться на компиляцию Nginx с определенными модулями или вывод журнала в определенном формате. Есть ли страница документации для плагинов?
источник
Ключевым является URL в конфиге munin.
Тебе понадобится
Запись
Не
источник
Установите libwww-perl, затем запустите команду,
munin-run nginx_status
чтобы увидеть статистику.Перезапустите службу muni-node.
источник