Решил на днях перевести нагруженный проект с апача на nginx.
# nginx -v nginx version: nginx/1.8.0
# uname -mro FreeBSD 10.1-RELEASE-p12 amd64
# pkg version | grep "muni" munin-common-2.0.25_1 = munin-master-2.0.25_3 = munin-node-2.0.25_4 =
Для начало соберем nginx с опцией статус.
root@213:/usr/ports/www/nginx # make showconfig | grep status HTTP_STATUS=on: Enable http_stub_status module root@213:/usr/ports/www/nginx #
После создадим виртуал хост под статус.
Я статус повесил на закрытый от посторонних порт. (8080 доступен только локальному хсоту и разрешенным для чтения этого порта ип адресов.
Как видно в виртуалхосте я отключил стандартную вэб авторизации, она мне на этом порту не к чему.
Часть информации было взято из этой статьи, Нашел краткую по основам настройка munin nginx_status.
root@213:~ # cat /usr/local/etc/nginx/sites-enabled/nginx_status server { listen 213.239.193.69:8080; # server_name localhost; location /status { stub_status on; #auth_basic "bagas"; #auth_basic_user_file /usr/local/.htpasswd; } }
Перезагружаем nginx
# /usr/local/etc/rc.d/nginx restart
Смотрим.
http://ип_адрес:8080/status
Увидим что-то вроде этого.
Active connections: 1966 server accepts handled requests 549683 549683 3585167 Reading: 1 Writing: 4 Waiting: 1961
Расшифровка выданного:
Active connections — сколько обслуживается клиентов.
Server accepts handled requests
Server — Общее количество соединений принятых.
accepts — Общее количество обработанных соединений (должно быть одинаково с Server значением).
handled — Общее количество обработанных запросов (должно быть больше чем accepts значение).
requests — Поделив handled значение на accepts – можно получить количество запросов в секунду которые nginx обработает.
Reading — Сколько соединений находится в состоянии чтения, (считывание заголовков запросов).
Writing — Сколько соединений находится в состоянии записи (считывание или подготовка клиенту тела запросов).
Waiting — Соединения keep-alive или же в состоянии обработки запрос, расчитать это значение можно так: active – (reading + writing).
Теперь добавим некоторые настройки для мониторинга munin.
Добавим сами скрипты мониторинга, которые поставляются с munin.
root@213:/ # ls -al /usr/local/etc/munin/plugins/ | grep nginx lrwxr-xr-x 1 root wheel 44 Jun 21 16:45 nginx_request -> /usr/local/share/munin/plugins/nginx_request lrwxr-xr-x 1 root wheel 43 Jun 21 16:45 nginx_status -> /usr/local/share/munin/plugins/nginx_status root@213:/ #
Добавим ссылку по которой можно считать данные от nginx.
root@213:/ # cat /usr/local/etc/munin/plugin-conf.d/plugins.conf | grep -A 2 nginx [nginx*] env.url http://ип_адрес_сервера:8080/status root@213:/ #
Также я отредактировал сами скрипты munina по мониторинга nginx.
nginx_status nginx_request
Указал 8080 порт.
server { listen 127.0.0.1:8080; server_name localhost;
Перезагружаем munin, после должны появится графики в munin.
# /usr/local/etc/rc.d/munin-node restart
Вот и все!