本教程将向您介绍如何使用Munin和Monit监视Ubuntu 16.04服务器。 Munin生成关于服务器几乎所有方面的好图形,而Monit会检查Apache,MySQL,Postfix等服务的可用性,并采取适当的措施,如重新启动,如果发现服务不符合预期。 两者的结合为您提供了全面监控:可以让您识别当前或即将到来的问题的图形,以及确保受监视服务可用性的看门狗。 本教程包含有关将Munin和Monit集成到ISPConfig 3.1中的两个(可选)章节。
1初步说明
我们的系统的主机名是server1.example.com
,我们有一个www.example.com
网站,其中包含文档根/var/www/www.example.com/web
。
必须以root用户身份执行以下步骤。 要在服务器上成为root用户,请运行以下命令:
sudo -s
在开始安装Munin之前,确保系统是最新的,运行:
apt-get update
apt-get upgrade
Apache用于显示Munin页面,对于Munin图形缩放功能需要apache fcgid模块。 我将安装apache和libapache2-mod-fcgid模块与apt。
apt-get -y install apache2 libcgi-fast-perl libapache2-mod-fcgid
启用apache中的fcgid模块。
a2enmod fcgid
2安装并配置Munin
要在Ubuntu 16.04上安装Munin,请运行以下命令:
apt-get -y install munin munin-node munin-plugins-extra
当服务器运行MySQL或MariaDB时,启用一些额外的Munin插件来监视MySQL:
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/mysql_ mysql_
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads
接下来,我们必须编辑Munin配置文件/etc/munin/munin.conf
。 取消注释dbdir
, htmldir
, logdir
, rundir
和tmpldir
行(默认值是否正确
)。 我们希望Munin在HTML输出中使用名称server1.example.com
而不是localhost.localdomain,因此我们在简单主机树
部分中将localhost.localdomain
替换为server1.example.com
。 没有注释,更改后的文件如下所示:
nano /etc/munin/munin.conf
# Example configuration file for Munin, generated by 'make build'
# The next three variables specifies where the location of the RRD
# databases, the HTML output, logs and the lock/pid files. They all
# must be writable by the user running munin-cron. They are all
# defaulted to the values you see here.
#
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
# Where to look for the HTML templates
#
tmpldir /etc/munin/templates
# Where to look for the static www files
#
#staticdir /etc/munin/static
# temporary cgi files are here. note that it has to be writable by
# the cgi user (usually nobody or httpd).
#
# cgitmpdir /var/lib/munin/cgi-tmp # (Exactly one) directory to include all files from. includedir /etc/munin/munin-conf.d [...] # a simple host tree
[server1.example.com]
address 127.0.0.1
use_node_name yes [...]
我们应该找到Munin /etc/munin/apache.conf的Apache配置文件 - 它为munin的HTML输出目录/ var / cache / munin / www
定义了一个名为munin
的别名,这意味着我们可以通过该服务器上的所有网站访问munin使用相对路径/ munin
(例如http://www.example.com/munin
)。
现在我们将编辑用于Apache的munin.conf文件,以允许从外部IP地址进行访问。 创建原始文件的备份:
mv /etc/munin/apache24.conf /etc/munin/apache24.conf_bak
用编辑器打开新文件:
nano /etc/munin/apache24.conf
并粘贴以下内容:
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
# Require local
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>
重新启动Apache:
service apache2 restart
然后重新启动Munin:
service munin-node restart
现在等待几分钟,以便Munin可以生成第一个输出,然后在浏览器中访问http://www.example.com/munin/
,您将看到第一个统计信息:
(这只是munin生产的许多图形的一小部分)
3密码保护Munin输出目录(可选,但强烈推荐)
现在,密码保护munin输出目录是一个好主意,除非您希望每个人能够看到有关您的服务器的每一个小小的统计信息。
为此,我们必须创建密码文件/ etc / munin / munin-htpasswd
。 我们想用用户名admin
登录,所以我们这样做:
htpasswd -c /etc/munin/munin-htpasswd admin
输入管理员
的密码。 然后再打开/etc/munin/apache.conf
...
nano /etc/munin/apache24.conf
...注释掉“要求全部授予并添加我标记为红色的行:
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/www>
# Require local
# Require all granted
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
Require valid-user
Options None
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
# Require local
# Require all granted
AuthUserFile /etc/munin/munin-htpasswd
AuthName "Munin"
AuthType Basic
Require valid-user
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
</Location>
然后重新启动Apache:
service apache2 restart
4在Munin中启用其他模块
Munin命令“munin-node-configure -suggest”可用于获取可在服务器上启用的其他Munin模块的建议。 跑:
munin-node-configure --suggest
输出应该类似于:
列“used”显示如果模块已启用,则“Suggestions”列显示服务器是否运行可由该模块监视的服务。 为/ etc / munin / plugins中的模块创建符号链接以启用它。
这里我将启用apache_ *模块,例如:
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/apache_accesses
ln -s /usr/share/munin/plugins/apache_processes
ln -s /usr/share/munin/plugins/apache_volume
重新启动Munin来加载新配置。
service munin-node restart
5在ISPConfig中配置Munin(可选)
ISPConfig主机控制面板可以选择在ISPConfig Monitor模块中显示Munin数据。 Munin数据加载在iframe中,因为大多数浏览器阻止从https站点内的http加载的内容,因此我们必须找到一种通过SSL访问Munin统计信息的方法。 最简单的方法是通过在ISPConfig Web目录中创建一个符号链接到Munin www数据目录来使用支持SSL的ISPConfig vhost。
ln -s /var/cache/munin/www /usr/local/ispconfig/interface/web/munin
现在我们可以通过https://server1.example.com:8080/munin在浏览器中通过ISPConfig apache vhost访问Munin。
下一步是在ISPConfig中添加配置。
以管理员(admin)用户身份登录到ISPConfig,然后转到系统>服务器配置,填写Munin的URL,用户名和密码,如下所示。
确保在munin URL中使用https://和8080端口。