freebsd munin nginx status

Дата | 23.07.2015

Понадобилось снимать статистику с нагружено сервера nginx.
Выбрал софт мониторинга под название munin.
Чем меня munin привлек вы спросите? Наверное логичностью и простатой установки, настройки.
Конечно с zabbix он не сравнится, но у нас и не корпоротивные масштабы что бы забикс ставить, один сервер.
Приступим.
Система freebsd 10 уже установлена и настроена.
Супер сервер nginx у нас уже установлен и собран с модулем HTTP_STATUS=on.

# nginx -v
nginx version: nginx/1.8.0

В nginx создадим виртуал хост специально для модуля статус.

# cat /usr/local/etc/nginx/sites-enabled/ng_status
server {
listen 2.2.2.2:8181;
location /nginx_stat {
stub_status on;
}
}

Устанавливаем munin.

# cd /usr/ports/sysutils/munin-node && make install clean

Вот еще что!
Нынешний munin-master тянет по зависимостям как бы мягко сказать (слишком иксовый rrdtool-1.4.8_8), я ставлю предпочитаю rrdtool12, тут уже как бы хозяин барин, выбирайте сами.

# nano /usr/ports/sysutils/munin-master/Makefile
Находим в пунктах ( BUILD_DEPENDS и RUN_DEPENDS ) rrdtool>=0:${PORTSDIR}/databases/rrdtool \ и меняем версию rrdtool на rrdtool>=0:${PORTSDIR}/databases/rrdtool12 \

Теперь ставим.

# cd /usr/ports/sysutils/munin-master && make install clean

В этоги должен установится такой софт.

# pkg version | egrep "muni|rrdtool"
munin-common-2.0.25_1              =
munin-master-2.0.25_3              =
munin-node-2.0.25_4                =
rrdtool12-1.2.30_7                 =

Добавим модули мониторинга в мунине.

# cd /usr/local/etc/munin/plugins/

Сделаем симлинк нужного нам модуля.

# ln -s /usr/local/share/munin/plugins/nginx_request
# ln -s /usr/local/share/munin/plugins/nginx_status

У меня такие стоят.

root@sy213:/usr/local/etc/munin/plugins # ls -al
total 8
drwxr-xr-x  2 root  wheel  512 Jun 21 16:45 .
drwxr-xr-x  7 root  wheel  512 May 17 09:40 ..
lrwxr-xr-x  1 root  wheel   34 May 16 16:29 cpu -> /usr/local/share/munin/plugins/cpu
lrwxr-xr-x  1 root  wheel   41 May 16 16:34 hard_place -> /usr/local/share/munin/plugins/hard_place
lrwxr-xr-x  1 root  wheel   34 May 16 16:29 if_ -> /usr/local/share/munin/plugins/if_
lrwxr-xr-x  1 root  wheel   35 May 16 16:28 load -> /usr/local/share/munin/plugins/load
lrwxr-xr-x  1 root  wheel   37 May 16 16:29 memory -> /usr/local/share/munin/plugins/memory
lrwxr-xr-x  1 root  wheel   42 May 16 16:30 mysql_bytes -> /usr/local/share/munin/plugins/mysql_bytes
lrwxr-xr-x  1 root  wheel   48 May 16 16:30 mysql_connections -> /usr/local/share/munin/plugins/mysql_connections
lrwxr-xr-x  1 root  wheel   57 May 16 16:30 mysql_connections_per_user -> /usr/local/share/munin/plugins/mysql_connections_per_user
lrwxr-xr-x  1 root  wheel   41 May 16 16:30 mysql_keys -> /usr/local/share/munin/plugins/mysql_keys
lrwxr-xr-x  1 root  wheel   43 May 16 16:30 mysql_qcache -> /usr/local/share/munin/plugins/mysql_qcache
lrwxr-xr-x  1 root  wheel   48 May 16 16:31 mysql_qcache_hits -> /usr/local/share/munin/plugins/mysql_qcache_hits
lrwxr-xr-x  1 root  wheel   47 May 16 16:31 mysql_qcache_mem -> /usr/local/share/munin/plugins/mysql_qcache_mem
lrwxr-xr-x  1 root  wheel   44 May 16 16:31 mysql_queries -> /usr/local/share/munin/plugins/mysql_queries
lrwxr-xr-x  1 root  wheel   48 May 16 16:31 mysql_slowqueries -> /usr/local/share/munin/plugins/mysql_slowqueries
lrwxr-xr-x  1 root  wheel   44 May 16 16:31 mysql_threads -> /usr/local/share/munin/plugins/mysql_threads
lrwxr-xr-x  1 root  wheel   47 May 16 16:31 mysql_threadsimp -> /usr/local/share/munin/plugins/mysql_threadsimp
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
lrwxr-xr-x  1 root  wheel   50 May 16 16:32 onlineIParess80port -> /usr/local/share/munin/plugins/onlineIParess80port
root@sy213:/usr/local/etc/munin/plugins #

Теперь оповестим мунин о модули nginx_status.

# nano /usr/local/etc/munin/plugin-conf.d/plugins.conf
[nginx*]
env.url http://2.2.2.2:8181/nginx_stat

Нужно отредактировать скрипты мунина.

# cat nginx_status | grep -A 9 "server {"
  server {
        listen 2.2.2.2:8181;
        server_name localhost;
        location /nginx_stat {
                stub_status on;
                access_log   off;
                allow 127.0.0.1;
                deny all;
        }
  }

В принципе все.
перезагружаем наши сервисы.

# service nginx
# service munin-node

Проверяем все ли графики верно установлены?!

# munin-node-configure

Проверяем выдачу активности nginx

http://2.2.2.2:8181/nginx_stat
Должно получится что то подобное.
Active connections: 2032 
server accepts handled requests
 2858118 2858118 17850103 
Reading: 1 Writing: 9 Waiting: 2022

Расшифровка статуса nghinx.
Расшифровка выданного:
Active connections — Общее количество обслуживаемых клиентов на данный момент.
Server — Количество принятых соединений.
accepts — Количество соединений обработанных на данный момент, примерно одинаково со значением Server.
handled — Количество запросов обработанных в данный момент, примерно больше чем значения accepts.
requests — Делим accepts на handled – получаем количество обработанных запросов в секунду.
Reading — Количество соединений на данный момент в состоянии чтения.
Writing — Количество соединений на данный момент в состоянии записи.
Waiting — keep-alive соединения или запрос в состоянии обработки, рассчитываем значение так active – (reading + writing).
Вот такие красивые графики должны получится.
fryaha.ru_nginx_status

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *