Zabbix企业级分布式监控系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 Zabbix-Agent客户端的安装

3.3.1 安装Zabbix-Agent

通过前面的介绍,我们知道Zabbix监控可以采用服务器端/客户端架构,其客户端的采集方式分为Agent、SNMP等。在这里,我们先学习使用Agent方式对服务器进行监控。在第8章中,将对其他监控方式(SNMP、JMX、IPMI)进行详细讲解。

在这里,我们对需要进行监控的服务器安装Zabbix-Agent,使用RPM包方式进行安装,命令如下:

shell#  rpm  -ivh  http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安装Zabbix官方的yum源
shell# yum install -y zabbix zabbix-agent
#由于Zabbix-Server服务器本身也需要监控,所以在Zabbix-Server服务器中也同样需要安
#装Zabbix-Agent

注意由于读者拿到本书时,Zabbix官方的RPM包会发布最新版本,如果安装软件包的版本与书中不一样,则以实际链接为准。

使用RPM包的安装方式相对简单,但如果有1000台服务器需要监控,那么这1000台服务器均需要安装Zabbix-Agent,这无疑是一项耗时、耗力的工作,这时可以考虑采用Ansible/SaltStack等自动化配置管理工具来进行安装。此外,读者可能还需要实现对Zabbix-Agent中配置文件的自动化修改、自定义脚本等功能需求,那么可以参考本书第14章的内容,对Zabbix-Agent的RPM包进行深度定制。

3.3.2 防火墙的设置

如果操作系统开启了防火墙,为了允许端口能够正常通信,则需要使用下列命令进行配置:

#CentOS 6
shell# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050-j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10051-j ACCEPT
shell# service iptables restart
#CentOS 7
shell# firewall-cmd --permanent --add-port=10050/tcp
shell# firewall-cmd --reload

3.3.3 配置zabbix_agentd.conf

zabbix_agentd.conf是Zabbix-Agent的配置参数文件,需要对配置参数进行手动修改。修改的参数如下:

shell# egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid  #pid文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log  #日志文件路径
LogFileSize=0                               #日志切割大小,0表示不切割
Server=127.0.0.1,10.0.2.50            #被动模式,Zabbix-Server的IP地址
ServerActive=127.0.0.1,10.0.2.50      #主动模式,Zabbix-Server的IP地址
Hostname=Zabbix server                #本机的Hostname使用主动模式则必须配置
Include=/etc/zabbix/zabbix_agentd.d/ #包含的子配置文件
UnsafeUserParameters=1                #启用特殊字符,用于自定义监控

参数含义如下。

· Server:被动模式,允许zabbix_server服务器连接客户端,此处允许本机和192.168.2.34访问10050端口,多个IP地址之间用逗号分隔。

· ServerActive:主动模式(详细内容参考本书8.3节),向目标zabbix_server服务器传送数据。这种模式的性能较好,建议使用,但需要确保zabbix_agentd.conf的参数Hostname值与Zabbix-Web页面中的主机名一致;否则,在zabbix-server.log中将会看到如下日志:

4558:20170805:100253.544 cannot send list of active checks to "10.0.2.30":host [web-1] not found
#日志的意思是,在Zabbix-Server上没有找到web-1主机名,数据无法匹配

配置完成后,使用如下命令启动Zabbix-Agent:

#CentOS 7
shell# systemctl enable zabbix-agent    #添加到开机启动项中
shell# systemctl start  zabbix-agent    #启动服务

#CentOS 6
shell# chkconfig zabbix-agent on         #添加到开机启动项中
shell# service zabbix-agent start        #启动服务