「Munin」:修訂間差異
(未顯示同一使用者於中間所作的 21 次修訂) | |||
第1行: | 第1行: | ||
'''Munin'''是一套[[Perl]]撰寫的監控軟體。 | '''Munin'''是一套[[Perl]]撰寫的監控軟體。 | ||
== 簡介 == | |||
主要的兩個元件,由伺服器去節點拉資料: | |||
* munin-cron(可以在<code>/etc/cron.d/munin</code>裡面看到) | |||
* munin-node | |||
網站的部份則是透過這兩個元件提供[[FastCGI]]界面: | |||
* munin-cgi-graph | |||
* munin-cgi-html | |||
== 安裝 == | == 安裝 == | ||
Munin目前已經算成熟,更新幅度不會太大,加上[[Ubuntu]]內的版本都還算夠新<ref>{{Cite web |url=https://packages.ubuntu.com/search?keywords=munin |title=Ubuntu – Package Search Results -- munin |language=en |accessdate=2021-04-26}}</ref>,可以直接安裝Ubuntu內的版本: | Munin目前已經算成熟,更新幅度不會太大,加上[[Ubuntu]]內的版本都還算夠新<ref>{{Cite web |url=https://packages.ubuntu.com/search?keywords=munin |title=Ubuntu – Package Search Results -- munin |language=en |accessdate=2021-04-26}}</ref>,可以直接安裝Ubuntu內的版本,節點端只需要安裝munin-node: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install -y munin; sudo apt clean | sudo apt install -y munin-node; sudo apt clean | ||
</syntaxhighlight> | </syntaxhighlight> | ||
伺服器則是安裝munin: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install -y munin | sudo apt install -y munin; sudo apt clean | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 設定 == | == 基本設定 == | ||
=== 節點端 === | |||
節點端需要把伺服器的IP位置加入<code>/etc/munin/munin-node.conf</code>的<code>allow</code>列表(要注意這邊的設計是吃[[Regular Expression]]),另外防火牆的設定只要把4949/tcp打開即可(預設對外的TCP Port)。 | |||
=== 伺服器端 === | |||
伺服器端的設定,先將Munin設定為[[CGI]]模式( | 伺服器端的設定,先將Munin設定為[[CGI]]模式(我們會用[[spawn-cgi]]轉成[[FastCGI]]模式),這需要增加<code>/etc/munin/munin-conf.d/cgi.conf</code>這個檔案: | ||
<syntaxhighlight lang="apache"> | <syntaxhighlight lang="apache"> | ||
第25行: | 第43行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
另外是systemd的設定檔,包含了<code>/ | 接著是修正[[Ubuntu]]下的檔案權限<ref name="nginx">{{Cite web |url=http://guide.munin-monitoring.org/en/stable-2.0/example/webserver/nginx.html |title=nginx configuration — Munin 2.0.44 documentation |language=en |accessdate=2021-04-26}}</ref>: | ||
<syntaxhighlight lang="bash"> | |||
sudo chown munin:adm /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log | |||
</syntaxhighlight> | |||
另外針對<code>/var/lib/munin/cgi-tmp</code>這個目錄,我們希望下面建立出來的檔案與目錄都是<code>www-data</code>(group): | |||
<syntaxhighlight lang="bash"> | |||
sudo chmod 2775 /var/lib/munin/cgi-tmp | |||
sudo chown -R munin:www-data /var/lib/munin/cgi-tmp | |||
</syntaxhighlight> | |||
然後是systemd的設定檔,包含了<code>/etc/systemd/system/munin-cgi-graph.service</code>: | |||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
第44行: | 第75行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
以及<code>/ | 以及<code>/etc/systemd/system/munin-cgi-html.service</code>: | ||
<syntaxhighlight lang="ini"> | <syntaxhighlight lang="ini"> | ||
第66行: | 第97行: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo systemctl daemon-reload; sudo systemctl enable munin-cgi-graph.service; sudo systemctl enable munin-cgi-html.service; sudo service munin-cgi-graph | 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
最後是[[nginx]]的設定<ref name="nginx"/>: | |||
<syntaxhighlight lang="nginx"> | <syntaxhighlight lang="nginx"> | ||
第89行: | 第120行: | ||
include fastcgi_params; | include fastcgi_params; | ||
} | } | ||
</syntaxhighlight> | |||
讓nginx重讀設定檔後應該就可以在[https://www.example.com/munin/ https://www.example.com/munin/]看到內容: | |||
<syntaxhighlight lang="bash"> | |||
sudo pkill -1 nginx | |||
</syntaxhighlight> | |||
== 常用操作 == | |||
=== 新增主機 === | |||
主機的資訊可以塞到<code>/etc/munin/munin-conf.d/host-www.example.com.conf</code>下,可以參考munin.conf<ref>{{Cite web |url=https://guide.munin-monitoring.org/en/latest/reference/munin.conf.html |title=munin.conf — Munin 2.999.10-detached-2018-12-16-c13-g47debb5 documentation |language=en |accessdate=2021-04-26}}</ref>裡的設定說明: | |||
<syntaxhighlight lang="apache"> | |||
[www.example.com] | |||
address 1.2.3.4 | |||
load.load.warning 1 | |||
load.load.critical 2 | |||
</syntaxhighlight> | |||
過五分鐘後(讓munin-cron跑)就會出現在網頁上了。其中<code>load.load</code>的部份是Munin的Plugin,可以針對不同的機器有不同的設定。 | |||
=== 新增通知 === | |||
這邊可以設定當有發生warning與critical等級的事件時發信通知給logs@example.com: | |||
<syntaxhighlight lang="apache"> | |||
# | |||
contact.general.always_send warning critical | |||
contact.general.command mail -s "Munin notification - ${var:host}" logs@example.com | |||
</syntaxhighlight> | |||
要注意這邊用到的<code>mail</code>需要安裝bsd-mailx才有,系統一般不會安裝。 | |||
== 除錯 == | |||
可以用<code>munin-run</code>看設定輸出: | |||
<syntaxhighlight lang="bash"> | |||
sudo munin-run plugin_name config | |||
</syntaxhighlight> | |||
然後看執行時的輸出結果: | |||
<syntaxhighlight lang="bash"> | |||
sudo munin-run plugin_name | |||
</syntaxhighlight> | </syntaxhighlight> | ||
第98行: | 第176行: | ||
* {{Official|https://munin-monitoring.org/}} {{en}} | * {{Official|https://munin-monitoring.org/}} {{en}} | ||
* [https://gallery.munin-monitoring.org/ Munin Plugin Gallery] {{en}} | |||
[[Category:軟體]] | [[Category:軟體]] |
於 2025年3月6日 (四) 22:48 的最新修訂
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位置加入/etc/munin/munin-node.conf
的allow
列表(要注意這邊的設計是吃Regular Expression),另外防火牆的設定只要把4949/tcp打開即可(預設對外的TCP Port)。
伺服器端
伺服器端的設定,先將Munin設定為CGI模式(我們會用spawn-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的設定檔,包含了/etc/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
以及/etc/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 (英文)