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