воскресенье, 8 мая 2011 г.

Мониторинг состояния nginx с помощью nagios

Для мониторинга количества запросов и подключений в секунду можно использовать плагин check_nginx, который представляет из себя простой sh скрипт
Скачиваем и сохраняем скрипт в директории с плагинами, также нужно иметь ввиду, что скрипт использует wget.
Следующим шагом нужно определить команду для выполнения проверки в конфигурационный файл nagios objects/commands.cfg:

define command{
        command_name    check_nginx
        command_line    $USER1$/check-nginx.sh -H $HOSTADDRESS$ -N
}
После этого можно добавлять сервис в конфигурацию серверов:

define service{
        use                             generic-service         ; Name of service template to use
        host_name                       web.domain.tld
        service_description             NGINX
        check_command                   check_nginx
        }
 Нужно иметь ввиду, что в плагин $HOSTADDRESS$ передается ввиде ip-адреса, на этом я остановлюсь несколько позже. А пока перейдем к конфигурированию nginx на целевой машине.
Прежде всего nginx должен быть собран с поддержкой модуля http_stub_status. Нам понадобится определить отдельный виртуальный хост с server_name равным айпишнику сервера:
server {
      listen 80 default accept_filter=httpready;
      server_name web.domain.tld;
      server_name 4.4.4.4;
      location / {
          stub_status on;
          allow 5.5.5.5;
          allow 127.0.0.1;
          deny all;
      }
 }
Здесь 4.4.4.4 - ip веб-сервера, а 5.5.5.5 - сервера мониторинга (для остальных доступ будет закрыт).
Делаем релоад nginx:
# /usr/local/etc/rc.d/nginx reload
 Проверяем:
# curl 4.4.4.4
Active connections: 375
server accepts handled requests
  16630 16630 31070
Reading: 6 Writing: 69 Waiting: 300
 Прочитать о назначении полей можно на странице http://wiki.nginx.org/HttpStubStatusModule
После этого можно делать релоад нагиосу и начинать снимать данные. Плагин их отдает в виде:
OK - nginx is running. 5 requests per second, 5 connections per second (5.00 requests per connection)

1 комментарий:

  1. >server_name 4.4.4.4;

    Руки бы вам оторвать, уважаемый.

    listen 4.4.4.4:80

    ОтветитьУдалить