你听说过 Munin 吗? Munin 是一款服务器资源监控工具,可以把各种数据以图表的形式直观地展示出来。
Munin 非常简单,搭建起来也很容易。
这里我把最近搭建 munin 时的配置记录下来。 假设你使用的是 Ubuntu 18.04 LTS。
$ sudo apt update
$ sudo apt install munin munin-node nginx
Nginx 配置
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location /munin {
alias /var/www/html/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/fastcgi-graph.sock;
include fastcgi_params;
}
}
重启 nginx。
$ sudo service nginx restart
Munin 配置
munin.conf
dbdir /var/lib/munin
htmldir /var/www/html/munin
logdir /var/log/munin
rundir /var/run/munin
[servername1.domain]
address 127.0.0.1
use_node_name yes
[servername2.domain]
address [ip address]
use_node_name yes
以 FCGI 方式运行 Munin
$ sudo chown -R munin:www-data /var/run/munin
$ sudo spawn-fcgi -s /var/run/munin/fastcgi-html.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-html
$ sudo spawn-fcgi -s /var/run/munin/fastcgi-graph.sock -U www-data -u www-data -g www-data /usr/lib/munin/cgi/munin-cgi-graph
这是最麻烦的部分。
默认情况下,/var/run/munin 的所有者是 munin。但在运行时,nginx 用户(www-data)会访问这个套接字。
/var/run/munin 必须同时对 munin 和 www-data 可访问。
首先,需要修改这个目录的所有者。 把 /var/run/munin 的所有者设为 munin,同时让属于 www-data 组的用户也能在其中读写数据。 munin 会运行 cron 任务来刷新后端数据,我观察到它在每次 cron 任务中都会检查这个目录。 套接字文件是只读的,但其他文件可能会被 munin 的 cron 覆盖,这就是我把所有者设为 munin 的原因。
其次,FCGI 进程必须以 www-data(nginx 用户)的身份运行。与 Apache 不同,Nginx 无法直接执行 CGI,而是加载 CGI 守护进程。 从服务器负载的角度看,FCGI 常驻内存,因此比 CGI 更高效。如果使用 CGI,每当用户访问 Web 服务器时,Web 服务器都要启动一个应用进程,这非常笨重,也很浪费 Web 服务器的资源。
如今已经没有 Web 应用框架采用 CGI 了。
重启 Munin
$ sudo service munin-node restart
安装 Munin 节点
在所有节点上执行:
$ sudo apt update
$ sudo apt install munin-node
munin-node.conf
添加这一行。
allow ^12\.34\.56\.78$ # master server ip address
重启节点。
$ sudo service munin-node restart
在浏览器中查看监控
恭喜,一切就绪。现在可以访问 http://{your address}/munin 了。 你会看到漂亮的图表,所有数据每 5 分钟刷新一次。
祝你监控愉快!