nagios和zabbix都是用于监控的软件。前者我在《网站运维:保持数据实时的秘技》这本书中看到,后者是在之前杭州的某个分享会议上听小米的运维(他们的博客)了解到的。以下是我在vagrant+virtualbox的虚拟机上的安装测试。
nagios
参考是ubuntu的nagios文档。没有使用nagios大部分文档中讲到的编译安装。
服务器server01上执行
sudo apt-get install nagios3 nagios-nrpe-plugin
设置nagios管理员的密码:
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
这时可以通过 http://server01/nagios3 访问nagios,用户名和密码分别是nagiosadmin和刚才你设置的管理员密码。
另外默认server01是纳入监控范围的。
在需要监测的服务器server02上执行
sudo apt-get install nagios-nrpe-server
为了把server02纳入监控范围,需要做以下操作:
修改server02的/etc/nagios/nrpe.cfg,记得ip of server01为server01的实际IP地址。
allowed_hosts=ip of server01
修改完server02的配置之后,重启nrpe-server
sudo /etc/init.d/nagios-nrpe-server restart
在server01上增加server02的配置,先复制localhost的配置
sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/server02.cfg
修改里面的配置,记得ip of server02为实际server02的IP地址
define host{ use generic-host host_name server02 alias Server 02 address ip of server02 }
重启server01上的nagios
sudo /etc/init.d/nagios3 restart
大概过一会儿就会有server02了。
zabbix
默认zabbix貌似是不在apt-get的库中的,所以按照zabbix的文档,安装一个zabbix的源包(注意,以下命令针对debian7):
wget http://repo.zabbix.com/zabbix/2.0/debian/pool/main/z/zabbix-release/zabbix-release_2.0-1wheezy_all.deb sudo dpkg -i zabbix-release_2.0-1wheezy_all.deb sudo apt-get update
安装了源包之后,可以安装zabbix了。
server01先安装mysql
sudo apt-get install mysql-server
设置好mysql的root密码之后,修改/etc/mysql/my.cnf设置
character-set-server=utf8
按照zabbix的文档,debian7这步是可选的,不过个人有“utf8强迫症”……另外说明以下,debian7上mysql的版本应该是5.5,如果上面的配置导致mysql不能启动的话,记得按照/var/log/syslog中的错误提示修改。
修改好mysql的配置之后,重启mysql
sudo service mysql restart
server01安装zabbix:
apt-get install zabbix-server-mysql zabbix-frontend-php
安装过程中会要求配置账号什么的,把zabbix在mysql中的登录账号和密码记下,否则之后要重置。
现在可以通过 http://server01/zabbix 访问了,一开始出现的是安装界面,按照上面的要求修改和配置。
比如会遇到php的date.timezone问题,需要修改 /etc/php5/apache2/php.ini
date.timezone = UTF
之后的就是填写之前的zabbix的数据库账号,服务器自身地址等。然后你就进入zabbix的主界面了。
默认zabbix是不监控localhost的。接下来继续设置server02。
用同样的方式给server02安装zabbix的源包,和server01不同,server02只安装agent:
sudo apt-get install zabbix-agent
修改server02的配置/etc/zabbix/zabbix_agentd.conf,设置zabbix server和server02的hostname
Server=Zabbix.Server.IP.Address Hostname=Hostname_Of_Current_Machine
接下来重启agent
sudo service zabbix-agent restart
此时zabbix server貌似不会发现server02,在zabbix的管理界面上,Configuration – Hosts找到localhost,点进去后点击Clone,修改相应的配置对应server02,包括最下面的状态为“Monitored”后保存。
大概过一会儿,你就可以在Monitoring – Latest Data中看到server02了。