在Debian 8上使用Munin和Monit进行服务器监控(Jessie)

在本文中,我将介绍如何使用Munin和Monit监视您的Debian 8(Jessie)服务器。 munin在服务器的几乎每个方面(负载平均值,内存使用率,CPU使用率,MySQL吞吐量,eth0流量等)都没有很多配置,而Monit则检查Apache,MySQL,Postfix等服务的可用性,如果找到服务,则重新启动的适当操作不符合预期。 两者的结合为您提供了全面的监控:可以让您识别当前或即将出现的问题的图形(例如“我们需要较大的服务器,我们的负载平均值正在快速增长”),以及一个可以确保受监视服务可用性的看门狗。

虽然Munin可以监控多台服务器,但我们只讨论在这里安装的系统的监控。

本教程是针对Debian 8(Jessie)编写的,但配置应该适用于其他发行版本,如Ubuntu,也没有什么变化。

我想先说说这不是建立这样一个系统的唯一途径。 有很多方法可以实现这一目标,但这是我采取的方式。 我不会保证这将为您工作!

1初步说明

我们的系统的主机名是server1.example.com ,我们有一个www.example.com网站,其中包含文档根/var/www/www.example.com/web

在开始安装Munin之前,确保系统是最新的,运行:

apt-get update
apt-get upgrade

Apache用于显示Munin页面,对于Munin图形缩放功能需要apache fcgid模块。 用apt安装apache和fcgid模块。

apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid

启用apache中的fcgid模块。

a2enmod fcgid

2安装并配置Munin

要在Debian Jessie上安装Munin,我们这样做:

apt-get 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_innodb mysql_innodb
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
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 。 取消注释dbdirhtmldirlogdirrundirtmpldir行(默认值是否正确 )。 我们希望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/apache24.conf的Apache 2.4配置文件 - 它为munin的HTML输出目录/ var / cache / munin / www定义了一个名为munin的别名,这意味着我们可以从该服务器上的所有网站访问munin通过使用相对路径/ munin (例如http://www.example.com/munin )。

默认情况下,apache Munin配置未启用,从DebianWheezy更改为Jessie。 新配置目录是/ etc / apache2 / conf-enabled,而不是在诸如Wheezy和Squeeze这样的旧版本中使用的/etc/apache2/conf.d。

运行这些命令以启用并将配置加载到apache中。

cd /etc/apache2/conf-enabled/
ln -s /etc/munin/apache24.conf munin.conf
service apache2 restart

确保您注释掉需要本地并添加要求所有已授予选项FollowSymLinks SymLinksIfOwnerMatch改为(否则您将只能访问从本地主机的Munin输出):

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/apache24.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
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏