部署完zabbix server后,自然要部署zabbix agent。在官方描述中,agent是部署在被监控的机器上,用于采集CPU、内存、磁盘等统计信息,并上报给server用于进一步处理。agent的采集信息方式也非常高效,是通过本机操作系统的系统调用完成。
agent主要通过被动和主动两种方式上报本机信息,顾名思义,被动方式意味着server下达采集命令时,agent才会去收集信息;而主动方式意味着agent会在第一次时就从server处获取要采集的items,并定期将每个item的新值发送给server端。那问题来了,agent是通过被动模式还是主动模式采集信息呢?答案是取决于当你在server的监控界面设计这个item时采用哪种模式,默认为被动模式。
agent能部署到几乎所有的操作系统上,在本系列中,我们仅以centOS和windows两种操作系统来进行说明。
部署在centOS上
具体的操作系统版本为centOS6.5。
首先要做的第一件事就是添加zabbix账号,zabbix agent和server一样,默认都是运行于zabbix账号下。
groupadd zabbix useradd –g zabbix zabbix
具体安装时,又可分为yum安装和源码安装,下面分别介绍。
yum安装
yum安装很简单,几乎两行就搞定。
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm yum -y install zabbix-agent
源码安装
- 下载源码并安装
cd /usr/local/src tar xvf zabbix-2.4.7.tar.gz cd zabbix-2.4.7 ./configure --prefix=/usr/local/zabbix --enable-agent make && make install
- 设置随机启动
cp /usr/local/src/zabbix-2.4.7/misc/init.d/fedora/core/zabbix_agentd /etc/init.d vi /etc/init.d/zabbix_agentd #修改BASEDIR BASEDIR=/usr/local/zabbix chkconfig --add zabbix_agentd chkconfig zabbix_agentd on
无论是哪种安装方式,都需要修改下配置文件。
#日志最大值,默认1M,超出会rotate LogFileSize=1 #被动模式下服务器地址,可以是ip或者hostname Server=192.168.0.1 #主动模式下服务器地址,可以ip或者hostname ServerActive=192.168.0.1 #被监控机的ip或hostname,注意的是该值必须和你在server的监控界面中定义的server name要保持一致 Hostname=192.168.0.2
最后,启动agent,并查看是否正确启动。
service zabbix_agentd start #默认的log路径 cat /tmp/zabbix_agentd.log #启动正常的话应该能看到类似如下内容: 9604:20151229:091802.672 Starting Zabbix Agent [192.168.0.64]. Zabbix 2.4.7 (revision 56694). 9604:20151229:091802.673 using configuration file: /usr/local/zabbix/etc/zabbix_agentd.conf 9604:20151229:091802.673 agent #0 started [main process] 9607:20151229:091802.675 agent #3 started [listener #2] 9608:20151229:091802.676 agent #4 started [listener #3] 9606:20151229:091802.677 agent #2 started [listener #1] 9605:20151229:091802.677 agent #1 started [collector] 9609:20151229:091802.678 agent #5 started [active checks #1]
但出现"no active checks on server [192.9.199.132:10051]: host [192.168.0.139] not found"的错误,意思是做active检查时没有发现server。解决办法是先在server的“主机”中添加监控机,记得取名必须和你在agent的配置文件中定义的hostname一致,再重启agent即可。
默认情况下agent运行在10050端口,注意防火墙要打开此端口。
#以下命令看见zabbix agent运行在10050端口 netstat -tlnp|grep zabbix #注意防火墙设置 vi /etc/sysconfig/iptables #添加对10050的端口开放 -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT #重启防火墙 service iptables restart
部署在windows上
windows版本的agent为zabbix_agents_2.4.4.win.zip,将其解压缩如C盘下,进入配置文件目录,修改配置文件如下:
#日志最大值,默认1M,超出会rotate LogFileSize=1 #被动模式下服务器地址,可以是ip或者hostname Server=192.168.0.1 #主动模式下服务器地址,可以ip或者hostname ServerActive=192.168.0.1 #被监控机的ip或hostname,注意的是该值必须和你在server的监控界面中定义的server name要保持一致 Hostname=192.168.0.3
将agent添加为windows开机启动服务,进入命令行模式。
#32位操作系统进入以下路径 cd c:\zabbix\bin\win32 #64位操作系统进入以下路径 cd c:\zabbix\bin\win64 #设置成windows服务 zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf –i
windows下agent的启动和停止。
#启动 zabbix_agentd.exe -s #停止 zabbix_agentd.exe -x
同centOS类似,日志可在默认的c:\zabbix_agentd下查看。若有windows防火墙限制,请设置相应的入站规则和出站规则,这里不再赘述。