zabbix是一款功能非常强大的开源软件,拥有非常丰富的模板,提供了ZBX/SNMP/JMX/IPMI等多种数据获取协议,这里除了JMX之外,其他三种协议都有使用过,之前使用的3.4版本的zabbix,zabbix 3.0是一个长期支持版本,在这里我也不作新版本的介绍了,依旧用3.4版本作为讲解版本。
一、zabbix-server的安装
准备安装包fping-3.10-4.el7.x86_64.rpm、iksemel-1.4-6.sdl7.x86_64.rpm、zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm、zabbix-web-mysql-3.4.4-2.el7.noarch.rpm、zabbix-web-3.4.4-2.el7.noarch.rpm、zabbix-get-3.4.4-2.el7.x86_64.rpm、zabbix-sender-3.4.4-2.el7.x86_64.rpm、zabbix-agent-3.4.4-2.el7.x86_64.rpm,安装的时候用了7.2的centos源,php相关的依赖包会一并安装。
zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm这个命民表示用mysql作为数据库,这里用centos7的mariadb作为数据库。
cd /root/zabbix-server && yum install * -y yum install mariadb* -y systemctl start mariadb && systemctl enable mariadb
在数据库中创建zabbix数据库,用户后续导入zabbix自带的表结构【/usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz,创建表的sql脚本】,生成表的脚本不会自动创建zabbix数据库,所以库需要提前创建好,创建数据库用户zabbix并赋予权限。
##创建zabbix数据库 mysql > crate database zabbix charset 'utf8'; > grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password'; > flush privileges; ##导入zabbix自带表结构 gzip -d /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz mysql -uzabbix -p'password' zabbix < /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql
这时候软件已经和数据库基本完成安装配置了,下面就需要对zabbix-server做一些配置了,修改配置文件/etc/zabbix/zabbix_server.conf,zabbix_serevr.conf中的参数非常的多,我这里记录一些我在实际应用中接触的参数,有一些性能调优参数,需要在agent数目或者大规模的掉线情况下才能接触到。
SourceIP ##Source IP是当server拥有多个IP的时候,指定用于采集agent数据的IP DBHost ##这里是用于指定mysql服务器的,mysql和zabbix部署在同一机器的时候用localhost DBName ##数据库名称,默认zabbix DBUser ##数据库用户名称,默认zabbix DBPassword ##数据库用户密码 Timeout ##默认3秒,如果agent端的负载较高,可能导致数据获取超过3秒,很容易处罚警告或者无法获取数据,设置大一点 ##性能调优参数 StartPollers ##轮询进行的数量,根据agent的数量进行调整,在agent和监控项非常多的时候,轮询会非常繁忙,可以设置高一点解决这个问题 StartPollersUnreachable ##轮询不可获取状态的机器数量,大规模掉线,该参数不够大会卡死
zabbix server有自带的性能监控,主要还是一些轮询机制,这些监控进程的越繁忙,zabbix server的性能就会受到影响,甚至会出现报错,图中的青蓝线就是出现了大规模的退役主机没有及时禁用,导致unreachable状态轮询卡死,会导致某些主机在下线后再上线时无法被server抓取的现象,当出现某个项的值过高的时候,需要增大相应的参数。
zabbix busy trapper process,in % <=> StartTrappers zabbix busy poller process,in % <=> StartPollers zabbix busy ipmi poller process,in % <=> StartIPMIPollers zabbix busy discoverer process,in % <=> StartDiscoverers zabbix busy icmp pinger process,in % <=> StartPingers zabbix busy http poller process,in % <=> StartHTTPPollers zabbix busy proxy poller process,in % <=> StartProxyPollers zabbix busy unreachable poller process,in % <=> StartPollersUnreachable zabbix busy java poller process,in % <=> StartJavaPollers zabbix busy snmp poller process,in % <=> StartSNMPPollers zabbix busy vmware collector process,in % <=> StartVMwareCollectors
二、zabbix-server-web配置
修改httpd关于zabbix的配置文件/etc/httpd/conf.d/zabbix.conf,只修改时区为Asia/Shanghai即可,然后启动httpd和zabbix-server服务。
vi /etc/httpd/conf.d/zabbix.conf systemctl start zabbix-server && systemctl enable zabbix-server systemctl start httpd && systemctl enable httpd
浏览器打开http://ip/zabbix进行web端的配置,这里的配置信息主要还是数据库相关的账号密码库名等的配置,按要求填入即可,如果出现错误信息,可以查看log信息【/var/log/zabbix/zabbix_server.log】
三、zabbix-agent的安装配置
zabbix-agent端的配置比较简单,分linux和windows端,安装完启动服务。
#Linux
yum install zabbix-agent-3.4.4-2.el7.x86_64.rpm
vi /etc/zabbix/zabbix_agentd.conf
Server=zabbix_server_IP ##zabbix-server的IP,是get方式获取方式的server,如果有多个serverIP,用逗号隔开
ServerActive=zabbix_server_IP ##zabbix-server的IP,是send方式发送数据的server
HostName=host001 ##主机名,这个需要和添加到server端时候的名字一致,不然可能出现在server端的log一直报错,也可以直接用agent的IP
systemctl start zabbix-agent && systemctl enable zabbix-agent
#windows
> Server=zabbix_server_IP ##zabbix-server的IP,是get方式获取方式的server
> ServerActive=zabbix_server_IP ##zabbix-server的IP,是send方式发送数据的server
> HostName=host001
zabbix_agentd.exe -c zabbix_agentd.win.conf -i ##-i install
zabbix_agentd.exe -c zabbix_agentd.win.conf -s ##-s start
进行测试,用zabbix_get这个命令进行测试,在zabbix-agent中添加键值和对应数据即可。
#agent端配置 vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf > UserParameter=test,echo 1 systemctl restart zabbix-agent #server端配置 zabbix_get -s zabbix_server_IP -k test
到这里基本上server/agent/web的安装配置就完成了。
还有一个小的问题需要解决一下,就是设置中文模式的时候图形会出现乱码,是因为/etc/alternatives/zabbix-web-font链接的格式/usr/share/fonts/dejavu/DejaVuSans.ttf不兼容windows的字符格式,需要在windows机器C:\Windows\Fonts目录下复制一个自己喜欢的格式文件,作为zabbix-web-font的链接。
rm /etc/alternatives/zabbix-web-font ln -s /usr/share/fonts/STKAITI.TTF /etc/alternatives/zabbix-web-font ##STKAITI.TTF华文楷体