Centos 7 munin nginx spawn-fcgi

Материал из poiuty wiki
Перейти к: навигация, поиск

Установим пакеты.

yum install nginx munin munin-node spawn-fcgi perl-File-ReadBackwards

Запустим и добавим в автозагрузку.

systemctl start munin-node
systemctl start nginx
systemctl enable munin-node
systemctl enable nginx

Для nginx создадим виртуальный хост.

# nano /etc/nginx/conf.d/munin.conf
server { # munin
	listen 85;
	keepalive_timeout 30;
	root /var/www/html/munin;
	location /munin/static/ {
		alias /etc/munin/static/;
	}
	location ^~ /munin-cgi/munin-cgi-graph/ {
		access_log off;
		fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
		include fastcgi_params;
	}
}

Запустим spawn-fcgi

# spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U nginx -u nginx -g munin /var/www/cgi-bin/munin-cgi-graph
spawn-fcgi: child spawned successfully: PID: 1036

Проверим, что он действительно работает.

# ps uax | grep munin-cgi-graph
nginx     1036  0.8  0.1 288932 21416 ?        Ss   09:21   0:00 /usr/bin/perl -T /var/www/cgi-bin/munin-cgi-graph
root      1442  0.0  0.0 112664   976 pts/0    S+   09:22   0:00 grep --color=auto munin-cgi-graph

Добавим в автозапгрузку spawn-fcgi

# chmod +x /etc/rc.local
# nano /etc/rc.local
spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U nginx -u nginx -g munin /var/www/cgi-bin/munin-cgi-graph

Перезагрузим сервисы.

systemctl restart munin-node
systemctl restart nginx

Установка плагина

Много плагинов можно найти на github munin-monitoring/contrib.
Популярные плагины устанавливаются вместе с munin и находятся в директории /usr/share/munin/plugins/

Установим плагин nginx-cache-hit-rate

# Скачиваем
wget -O /usr/share/munin/plugins/nginx-cache-hit-rate https://raw.githubusercontent.com/munin-monitoring/contrib/master/plugins/nginx/nginx-cache-hit-rate

# Изменяем права
chmod 755 /usr/share/munin/plugins/nginx-cache-hit-rate

# Создаем линк
ln -s /usr/share/munin/plugins/nginx-cache-hit-rate /etc/munin/plugins/

Запускаем плагин от пользователя nginx. Это решит проблему.

1000 lines to read, but /var/log/nginx/cache-access.log: Permission denied at /etc/munin/plugins/nginx-cache-hit-rate line 82.
# nano /etc/munin/plugin-conf.d/nginx
[nginx-cache-hit-rate]
user nginx

Добавляем access_log в конфиг nginx.

# nano /etc/nginx/nginx.conf
http {
	...
	log_format cache '$remote_addr - $host [$time_local] "$request" $status '
                 '$body_bytes_sent "$http_referer" '
                 'rt=$request_time ut="$upstream_response_time" '
                 'cs=$upstream_cache_status';
	...
	server {
		access_log /var/log/nginx/cache-access.log cache;

Перезагружаем nginx, выполняем запрос, проверяем есть ли cache-access.log

# systemctl restart nginx
# curl https://test2.anilibria.tv/videos/ts/4576/0001/fff1.ts -s -I
# ls /var/log/nginx/cache-access.log
/var/log/nginx/cache-access.log

Проверяем, работает ли плагин.

# cd /etc/munin/plugins/
# munin-run nginx-cache-hit-rate 
hit.value 0
miss.value 1
expired.value 0

Перезагружаем munin, ждем 5-10 минут, открываем в браузере https://IP:85

systemctl restart munin-node

717c6d0c334c97a7912c1021fc319476.png