Zabbix官网下载地址:https://www.zabbix.com/download
实验拓扑: zabbix server端: 192.168.80.101 公网环境 centos 7.4 LAMP架构 zabbix angent端: 192.168.80.102 公网环境 centos 7.4 注:zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 下文邮件填自己的真实邮箱才能测试

一、zabbix server端配置 RPM安装LAMP-------使用本地仓库源 yum install -y
httpd
mariadb-server mariadb
php
php-mysql
php-gd
libjpeg*
php-ldap
php-odbc
php-pear
php-xml
php-xmlrpc
php-mhash

vi /etc/httpd/conf/httpd.conf ServerName www. lss01.com DirectoryIndex index.html index.php

vi /etc/php.ini date.timezone = PRC //修改php时区为中国

关闭防火墙和安全linux systemctl stop firewalld.service setenforce 0

systemctl start httpd.service systemctl start mariadb.service

netstat -anpt | grep 80 netstat -anpt | grep 3306 mysql_secure_installation //数据库初始化 vi /var/www/html/index.php <?php phpinfo(); ?>

http://192.168.80.101/ mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin; GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123'; flush privileges; //建立数据库zabbix,并且将所有权限授给zabbix用户

vi /var/www/html/index.php <?php $link=mysql_connect('192.168.80.101','zabbix','admin123'); if($link) echo "Success!!"; else echo "Fail!!"; mysql_close(); ?> http://192.168.80.101验证php连接数据库是否正常 连接成功LAMP搭建完毕 ----------------以下开始部署zabbix Server------- 需要联网 rpm -ivh php-mbstring-5.4.16-42.el7.x86_64.rpm rpm -ivh php-bcmath-5.4.16-42.el7.x86_64.rpm rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm //会自动生成yum源文件,保证系统可以上网 yum install zabbix-server-mysql zabbix-web-mysql -y //安装zabbix服务端和web页面支持

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成数据库文件,注意密码不要输成root的.

grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf //查看zabbix未注释的生效行 (vi /etc/zabbix/zabbix_server.conf) 38:LogFile=/var/log/zabbix/zabbix_server.log 49:LogFileSize=0 72:PidFile=/var/run/zabbix/zabbix_server.pid 82:SocketDir=/var/run/zabbix 101:DBName=zabbix 117:DBUser=zabbix 125:DBPassword=admin123 //修改本行 347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 465:Timeout=4 507:AlertScriptsPath=/usr/lib/zabbix/alertscripts 517:ExternalScripts=/usr/lib/zabbix/externalscripts 553:LogSlowQueries=3000

vi /etc/httpd/conf.d/zabbix.conf //修改时区

php_value date.timezone Asia/Shanghai

vi /usr/share/zabbix/include/defines.inc.php //修正图表中文乱码 :%s /graphfont/kaiti/g //从微软系统C:\Windows\Fonts下复制相应的字体文件到 /usr/share/zabbix/fonts 目录中注意字体名称要对应配置文件,且注意大小写

systemctl enable zabbix-server systemctl start zabbix-server netstat -anpt | grep zabbix //监听在10051端口上 systemctl restart httpd.service

http://192.168.80.101/zabbix/ 点Next step安装 这里的name是web页面显示的名字,按照实际情况填写 安装后登录 用户名Admin 密码:zabbix 设置中文环境

Administrator-Users-点击用户-语言中设置 刷新下页面已经变成中文了 二、zabbix agent端配置 -----------配置代理端agent-就是被控服务器----如果服务器也需要被自己监控也需要安装--zabbix-agent-- (要联网) rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm yum install -y zabbix-agent //生成zabbix的yum仓库

grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf (vi /etc/zabbix/zabbix_agentd.conf) 13:PidFile=/var/run/zabbix/zabbix_agentd.pid 32:LogFile=/var/log/zabbix/zabbix_agentd.log 43:LogFileSize=0 98:Server=192.168.80.101 139:ServerActive=192.168.80.101 150:Hostname= LSS 268:Include=/etc/zabbix/zabbix_agentd.d/*.conf //修改确认agent端配置文件如上

service firewalld stop setenforce 0 systemctl enable zabbix-agent.service systemctl restart zabbix-agent.service

netstat -anpt | grep zabbix //监听在10050端口 三、web平台配置 增加被控主机: 配置-主机-创建主机: 主机页面根据需求配置 模板页需要链接模板,根据需要链接相应的模板 点添加 --------配置邮件报警功能---服务器上配置--------- yum install mailx -y

vi /etc/mail.rc //注意网易邮箱需要开启客户端授权码进行第三方登录

----文件末尾新增--- set from=xiaoshan##633@126.com //真实存在的第三方邮箱账号 set smtp=smtp.126.com set smtp-auth-user=xiaoshan##633@126.com //登录的用户名 set smtp-auth-password=abc123 //注意这边不是你邮箱的密码,而是你客户端授权的授权码 set smtp-auth=login

邮箱客户端授权 echo "ttttt" | mail -s "testmail" xiaoshan##633@126.com //测试发信正常 echo "444" | mail -s "testmail" 102813##30@qq.com //网易邮箱发QQ邮箱 cd /usr/lib/zabbix/alertscripts cd /usr/lib/zabbix/alertscripts

vi mailx.sh //编写发邮件脚本 #!/bin/bash #send mail

messages=echo $3 | tr '\r\n' '\n' subject=echo $2 | tr '\r\n' '\n' echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1


touch /tmp/mailx.log chown -R zabbix.zabbix /tmp/mailx.log chmod +x /usr/lib/zabbix/alertscripts/mailx.sh chown -R zabbix.zabbix /usr/lib/zabbix/

./mailx.sh xiaoshan##633@126.com "主题" "内容" //测试发邮件脚本是否可以正常工作

-----在服务器WEB上配置---- 管理报警媒体类型创建媒体类型 名称:Mail-Test 类型:脚本 脚本名称:mailx.sh 脚本参数://新增以下三个参数

{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} 管理-用户-点击Admin-报警媒介: 类型:Mail-Test //调用上面的脚本 收件人:xiaoshan##633@126.com 其它默认-保存 然后点添加---更新

配置动作创建动作删除默认标签,修改触发条件 名称:Mailx 条件 A 主机群组=Linux servers 操作如下配置

默认操作步骤持续时间 60 默认接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME} 默认信息:

告警主机:{HOST.NAME} 告警 IP:{HOST.IP} 告警时间:{EVENT.DATE}-{EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME}:{ITEM.VALUE} 事件 ID:{EVENT.ID} 操作细节:

操作类型:发送消息 发送到用户:Admin (Zabbix Administrator) 仅送到:Mail-Test //一定要配置否则邮件发送不成功 恢复操作:{TRIGGER.STATUS}:{TRIGGER.NAME} 恢复信息:

恢复主机:{HOST.NAME} 恢复 IP:{HOST.IP} 恢复时间:{EVENT.DATE}-{EVENT.TIME} 恢复等级:{TRIGGER.SEVERITY} 恢复信息:{TRIGGER.NAME}:{ITEM.VALUE} 恢复 ID:{EVENT.ID}

操作细节: 操作类型:发送消息 发送到用户:Admin (Zabbix Administrator) 仅送到:Mail-Test //一定要配置否则邮件发送不成功 一定记得要点击操作里面的小的添加然后才能点外卖的蓝色背景的添加

systemctl restart zabbix-server //服务端重启 systemctl restart zabbix-agent.service //客户机重启

------以下是测试报警----- 可以发现zabbix一直会对agent端有ping测试,ping测试的间隔时间是5m,所以需要等待时间5分钟才可以

我们可以将agent端的网卡down掉 看是否会发送报警邮件过来 ifconfig ens33 down 发现收到了两封报警一封是ssh连接一封是ICMP

ifconfig ens33 up //打开看看是否恢复 可以在被控主机上模拟相关参数超过阈值,如磁盘空间。然后验证邮件收发。 dd if=/dev/zero of=myfile bs=1M count=60(要进入想要创建文件夹的目录,然后此命令创建myfile文件,名字可以修改) 被控主机查看下内存使用率,测/dev/sda1/ /boot 和web监控一样 模拟sda1内存变化 dd if=/dev/zero of=myfile bs=1M count=900 邮件报警 systemctl stop zabbix-agent.service //在被监控主机上关闭 测试报警邮件接收(要等一会才能收到邮件) 邮件报警测试成功!!!