The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Обеспечение работы системы мониторинга Nagios при помощи Nginx"
Отправлено auto_tips, 14-Окт-08 13:52 
Web-сервер apache наверное самый лучший web-сервер, но при настройке web-интерфейса для nagios
можно обойтись и без него, что сейчас и будет описано.

Применительно к FreeBSD:

   portinstall /usr/ports/www/nginx

В /etc/rc.conf.local

   # nginx
   nginx_enable=YES

nginx не может выполнять php и cgi скрипты. Для этого можно использовать backend серверы.

Схема получается следующая:
                                      mini_httpd
                    ---*.cgi--->  192.168.0.200:1081
                   /
      nginx       /                    lighttpd
192.168.0.200:80------*.php--->   192.168.0.200:1082
                  \
                   \                    Каталог
                    ---*.html-->  /usr/local/www/...

В этой схеме nginx слущает на порту запросы, производит авторизацию, статические файлы отдает сам,
cgi-скрипты перенаправляет к запущенному на внутреннем порту 127.0.0.1:1081
mini_httpd (/usr/ports/www/mini_httpd), который в свою очередь и выполняет эти скрипты.

Схема может показатся сложной, но в моём случае переход на нее оправдался:
опрос nagios производится 1 раз в минуту из Firefox (спец.плагин), и машина с nagios
испытывала некоторые трудности с производительностью. После запуска данной схемы
нагрузка на машину значительно снизилась.

Если используется pnp4nagios (http://www.pnp4nagios.org/pnp/install) для построения графиков
производительности сервисов, то выполнение php-скриптов возможно с помощью запущенного
на внутреннем порту 127.0.0.1:1082 lighttpd (/usr/ports/www/lighttpd).

Конфигурационные файлы nginx хранятся по умолчанию в /usr/local/etc/nginx/.

/usr/local/etc/nginx/nginx.conf

   user       www www;
   worker_processes  1;
   error_log  /var/log/nginx/error.log;
   pid        /var/run//nginx.pid;
   worker_rlimit_nofile 8192;

   events {
      worker_connections  4096;
   }

   http {
    include    mime.types;
    include    proxy.conf;
    default_type application/octet-stream;
    log_format   main '$remote_addr - $remote_user [$time_local] $status '
                      '"$request" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log   /var/log/nginx/access.log  main;
    sendfile     on;
    tcp_nopush   on;
    server_names_hash_bucket_size 128; # this seems to  be required for some vhosts

   ## интранет
  server {
    listen 192.168.0.200:80;
    server_name 192.168.0.200 ns.contora.local;
    access_log /var/log/nginx/access.log;
      include nagios.conf;
      include nagios-pnp.conf;

    location / {
        root                    /usr/local/www/apache22/data/;
    }
    include error-pages.conf;
   }
  }


/usr/local/etc/nginx/nagios.conf


   location /nagios/ {
        auth_basic              "Nagios ";
        auth_basic_user_file    /usr/local/www/nagios/.htpasswd;
        alias                   /usr/local/www/nagios/;
   }

   location /nagios/cgi-bin/ {
        auth_basic              "Nagios ";
        auth_basic_user_file    /usr/local/www/nagios/.htpasswd;

        proxy_pass              http://localhost:1081;
        proxy_redirect          http://localhost:1081/nagios/cgi-bin/ /nagios/cgi-bin/;

        set                     $referer        $http_referer;
        proxy_set_header        Referer         $referer;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        Host            localhost:1081;
        proxy_set_header        REQUEST_METHOD  $request_method;
        proxy_set_header        REMOTE_USER     $remote_user;
        proxy_set_header        REMOTE_ADDR     $remote_addr;
        proxy_set_header        SERVER_NAME     localhost;
        proxy_set_header        SERVER_PORT     1081;
        proxy_set_header        HTTP_COOKIE     $http_cookie;
   }


/usr/local/etc/nginx/nagios-pnp.conf


        location ~* /pnp/.*\.php$ {
            root   /usr/local/share/;
            fastcgi_pass   127.0.0.1:1082;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nagios/share/$fastcgi_script_name;
            include        fastcgi_params;
        }
        location ~* /pnp/ {
                root   /usr/local/nagios/share/;
                index  index.php index.html index.htm;
        }


/usr/local/etc/nginx/error-pages.conf


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
         root   /usr/local/www/nginx-dist;
        }
        error_page   401  /401.html;
        location = /401.html {
          root   /usr/local/www/nginx-dist;
        }
        error_page   404  /404.html;
        location = /404.html {
          root   /usr/local/www/nginx-dist;
        }

Ссылки:
http://sysoev.ru/nginx/
http://www.lighttpd.net/
http://www.acme.com/software/mini_httpd/
http://www.lissyara.su/?id=1532


URL: http://opensolution.org.ru/nagios/nginx
Обсуждается: http://www.opennet.ru/tips/info/1795.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру