Munin:修订间差异

来自Gea-Suan Lin's Wiki
跳到导航 跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
 
(未显示同一用户的18个中间版本)
第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-node
  伺服器則是 安裝munin:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo apt install -y munin-node; sudo apt clean
sudo apt install -y munin; sudo apt clean
</syntaxhighlight>
</syntaxhighlight>


== 設定 ==
==  基本 設定 ==
 
=== 節點端 ===
 
節點端需要把伺服器的IP位置加入<code>allow</code>列表(要注意這邊的設計是吃[[Regular Expression]]),另外防火牆的設定只要把4949/tcp打開即可(預設值,在<code>/etc/munin/munin-node.conf</code>內可以修改)。


 伺服器端的設定,先將Munin設定為[[CGI]]模式(事實上會是[[FastCGI]]模式),這需要 修改<code>/etc/munin/munin-conf.d/cgi.conf</code>:
=== 伺服器端 ===
 
 伺服器端的設定,先將Munin設定為[[CGI]]模式(事實上會是[[FastCGI]]模式),這需要 增加<code>/etc/munin/munin-conf.d/cgi.conf</code> 這個檔案


<syntaxhighlight lang="apache">
<syntaxhighlight lang="apache">
第25行: 第43行:
</syntaxhighlight>
</syntaxhighlight>


 另外是systemd的設定檔,包含了<code>/lib/systemd/system/munin-cgi-graph.service</code>:
接著是修正[[Ubuntu]]下的檔案權限<ref name="nginx">{{Cite web |url=http://guide.munin-monitoring.org/en/stable-2.0/example/webserver/nginx.html |title=nginx configuration &mdash; 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>/lib/systemd/system/munin-cgi-graph.service</code>:


<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
第63行: 第94行:
</syntaxhighlight>
</syntaxhighlight>


 然後是[[nginx]]的設定<ref>{{Cite web |url=http://guide.munin-monitoring.org/en/stable-2.0/example/webserver/nginx.html |title=nginx configuration &mdash; Munin 2.0.44 documentation |language=en |accessdate=2021-04-26}}</ref>:
  重讀systemd設定,並且設成開機執行, 後跑起來:
 
<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 start; sudo service munin-cgi-html start
</syntaxhighlight>
 
後是[[nginx]]的設定<ref name="nginx"/>:


<syntaxhighlight lang="nginx">
<syntaxhighlight lang="nginx">
第83行: 第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 &mdash; 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>


第92行: 第176行:


* {{Official|https://munin-monitoring.org/}} {{en}}
* {{Official|https://munin-monitoring.org/}} {{en}}
* [https://gallery.munin-monitoring.org/ Munin Plugin Gallery] {{en}}


[[Category:軟體]]
[[Category:軟體]]

2021年5月30日 (日) 11:38的最新版本

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

另外针对/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

最后是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才有,系统一般不会安装。

除错

可以用munin-run看设定输出:

sudo munin-run plugin_name config

然后看执行时的输出结果:

sudo munin-run plugin_name

参考资料

外部链接