Munin
Jump to navigation
Jump to search
Description
This explains how to install Munin with nginx and fastcgi. If you're interested in using it with Apache, some commands will be different.
Installation
Munin
Install munin with following command:
$ sudo aptitude install munin munin-node munin-plugins-extra spawn-fcgi
FCGI processes
Create the systemd scripts that will spawn your FCGI processes:
$ cat /usr/lib/systemd/system/munin-fcgi-graph.service [Unit] Description=Munin FastCGI Graph Documentation=man:spawn-fcgi [Service] Type=forking PIDFile=/var/run/munin/fcgi-graph.pid ExecStart=/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph -P /var/run/munin/fcgi-graph.pid [Install] WantedBy=multi-user.target
$ cat /usr/lib/systemd/system/munin-fcgi-html.service [Unit] Description=Munin FastCGI HTML Documentation=man:spawn-fcgi [Service] Type=forking PIDFile=/var/run/munin/fcgi-html.pid ExecStart=/usr/bin/spawn-fcgi -s /var/run/munin/fcgi-html.sock -U www-data -u www-data -g munin /usr/lib/munin/cgi/munin-cgi-html -P /var/run/munin/fcgi-html.pid [Install] WantedBy=multi-user.target
Register and start the processes:
$ sudo systemctl daemon-reload $ sudo systemctl enable munin-fcgi-graph.service $ sudo systemctl enable munin-fcgi-html.service $ sudo systemctl start munin-fcgi-graph.service $ sudo systemctl start munin-fcgi-html.service
Configuration
munin.conf
Modify the config file as follows:
$ cat /etc/munin/munin.conf
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
tmpldir /etc/munin/templates
includedir /etc/munin/munin-conf.d
graph_strategy cgi
html_strategy cgi
[localhost.localdomain]
address 127.0.0.1
use_node_name yes
nginx
Modify /etc/nginx/sites-available/default as follows:
server {
listen 80;
server_name localhost.local;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
### MUNIN
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;
}
location /munin/static/ {
alias /etc/munin/static/;
}
location /munin/ {
fastcgi_split_path_info ^(/munin)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-html.sock;
include fastcgi_params;
}
}
Restart services:
$ sudo systemctl restart munin-node.service $ sudo systemctl restart nginx.service
Plugins
CPU temp
If you wish to monitor your CPU temperature, proceed as follows:
$ sudo aptitude install lm-sensors $ sudo sensors-detect
Answer yes to all questions of the above command. Then:
$ sudo service kmod start
Below is the plugin I've created to monitor my CPU:
$ cat /data/scripts/munin_temp_cpu
#!/bin/sh
case $1 in
config)
cat << 'EOM'
graph_period 20
graph_category sensors
graph_title Temperatures
graph_vlabel Celsius
cpu_temp_0.label Core_0
cpu_temp_2.label Core_2
EOM
exit 0;;
esac
echo -n "cpu_temp_0.value "; sensors | grep 'Core 0' | awk '{ print $3 }' | grep -o '[0-9\.:]*'
echo -n "cpu_temp_2.value "; sensors | grep 'Core 2' | awk '{ print $3 }' | grep -o '[0-9\.:]*'
Install the plugin:
$ cd /etc/munin/plugins/ $ ln -s /data/script/munin_temp_cpu
You can test it:
$ sudo munin-run munin_temp_cpu cpu_temp_0.value 33.0 cpu_temp_2.value 25.0
Fan speed
Below is the plugin I wrote to control the fan speed:
$ cat /data/script/munin_fan_speed
#!/bin/sh
case $1 in
config)
cat << 'EOM'
graph_period 20
graph_category sensors
graph_title Fan Speed
graph_vlabel RPM
fan_speed_0.label FanSpeed_0
EOM
exit 0;;
esac
echo -n "fan_speed_0.value "; sensors | grep fan2 | awk '{ print $2 }'
Install the plugin:
$ cd /etc/munin/plugins/ $ ln -s /data/script/munin_fan_speed
Comments
Keywords: munin nginx fastcgi monitoring server