「Munin」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
行 122: 行 122:


== 常用操作 ==
== 常用操作 ==
=== 新增主機 ===


 主機的資訊可以塞到<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 &mdash; Munin 2.999.10-detached-2018-12-16-c13-g47debb5 documentation |language=en |accessdate=2021-04-26}}</ref>裡的設定說明:
 主機的資訊可以塞到<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 &mdash; Munin 2.999.10-detached-2018-12-16-c13-g47debb5 documentation |language=en |accessdate=2021-04-26}}</ref>裡的設定說明:
行 128: 行 130:
[www.example.com]
[www.example.com]
    address 1.2.3.4
    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>
</syntaxhighlight>


  過五分鐘後(讓munin-cron跑)就 出現在網頁上了
  要注意這邊用到的<code>mail</code>需要安裝bsd-mailx才有,系統一般不 安裝


== 參考資料 ==
== 參考資料 ==

於 2021年4月26日 (一) 12:49 的修訂

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

接著是修正Ubuntu下的檔案權限[2]

sudo chown munin:adm /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log

另外是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.service start; sudo service munin-cgi-html.service start

然後是nginx的設定[2]

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才有,系統一般不會安裝。

參考資料

外部連結