Munin
Munin是一套Perl撰寫的監控軟體。
簡介
主要的兩個元件,由伺服器去節點拉資料:
- munin-cron(可以在
/etc/cron.d/munin
裡面看到) - munin-node
網站的部份則是透過這兩個元件提供FastCGI界面:
- munin-cgi-graph
- munin-cgi-html
安裝
Munin目前已經算成熟,更新幅度不會太大,加上Ubuntu內的版本都還算夠新[1],可以直接安裝Ubuntu內的版本,節點端只需要安裝munin-node:
sudo apt install -y munin-node; sudo apt clean
伺服器則是安裝munin:
sudo apt install -y munin; sudo apt clean
基本設定
節點端
節點端需要把伺服器的IP位置加入allow
列表(要注意這邊的設計是吃Regular Expression),另外防火牆的設定只要把4949/tcp打開即可(預設值,在/etc/munin/munin-node.conf
內可以修改)。
伺服器端
伺服器端的設定,先將Munin設定為CGI模式(事實上會是FastCGI模式),這需要增加/etc/munin/munin-conf.d/cgi.conf
這個檔案:
graph_strategy cgi
html_strategy cgi
cgiurl_graph /munin-cgi/munin-cgi-graph
sudo chown munin:adm /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log
另外針對/var/lib/munin/cgi-tmp
這個目錄,我們希望下面建立出來的檔案與目錄都是www-data
(group):
sudo chmod 2775 /var/lib/munin/cgi-tmp
sudo chown -R munin:www-data /var/lib/munin/cgi-tmp
然後是systemd的設定檔,包含了/lib/systemd/system/munin-cgi-graph.service
:
#
[Unit]
Description=Munin CGI Graph FastCGI daemon
After=remote-fs.target
[Service]
ExecStart=/usr/bin/spawn-fcgi -s /var/run/munin/fastcgi-graph.sock -P /var/run/munin/fastcgi-graph.pid -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph
PIDFile=/var/run/munin/fastcgi-graph.pid
Restart=always
RestartSec=1
Type=simple
[Install]
WantedBy=multi-user.target
以及/lib/systemd/system/munin-cgi-html.service
:
#
[Unit]
Description=Munin CGI HTML FastCGI daemon
After=remote-fs.target
[Service]
ExecStart=/usr/bin/spawn-fcgi -s /var/run/munin/fastcgi-html.sock -P /var/run/munin/fastcgi-html.pid -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-html
PIDFile=/var/run/munin/fastcgi-html.pid
Restart=always
RestartSec=1
Type=simple
[Install]
WantedBy=multi-user.target
重讀systemd設定,並且設成開機執行,然後跑起來:
sudo systemctl daemon-reload; sudo systemctl enable munin-cgi-graph.service; sudo systemctl enable munin-cgi-html.service; sudo service munin-cgi-graph start; sudo service munin-cgi-html start
location ^~ /munin-cgi/munin-cgi-graph/ {
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;
}
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/fastcgi-html.sock;
include fastcgi_params;
}
讓nginx重讀設定檔後應該就可以在https://www.example.com/munin/看到內容:
sudo pkill -1 nginx
常用操作
新增主機
主機的資訊可以塞到/etc/munin/munin-conf.d/host-www.example.com.conf
下,可以參考munin.conf[3]裡的設定說明:
[www.example.com]
address 1.2.3.4
load.load.warning 1
load.load.critical 2
過五分鐘後(讓munin-cron跑)就會出現在網頁上了。其中load.load
的部份是Munin的Plugin,可以針對不同的機器有不同的設定。
新增通知
這邊可以設定當有發生warning與critical等級的事件時發信通知給logs@example.com:
#
contact.general.always_send warning critical
contact.general.command mail -s "Munin notification - ${var:host}" logs@example.com
要注意這邊用到的mail
需要安裝bsd-mailx才有,系統一般不會安裝。
除錯
可以用munin-run
看設定輸出:
sudo munin-run plugin_name config
然後看執行時的輸出結果:
sudo munin-run plugin_name
參考資料
- ↑ Ubuntu – Package Search Results -- munin. [2021-04-26] (English).
- ↑ 2.0 2.1 nginx configuration — Munin 2.0.44 documentation. [2021-04-26] (English).
- ↑ munin.conf — Munin 2.999.10-detached-2018-12-16-c13-g47debb5 documentation. [2021-04-26] (English).
外部連結
- 官方網站 (英文)
- Munin Plugin Gallery (英文)