ZABBIX5.0
自动发现主机配置
web页面配置
zabbix5.0中server端配置完成之后,如果新加入的主机,需要配置自动发现功能,那么需要在server的web端配置进行配置
配置——>自动发现——>创建自动发现规则——>填写名称以及IP范围,检查类型添加可选ping,或者zabbix客户端(zabbix客户端可直接进行action)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WCLyOOxE-1599735433265)(C:\Users\zhang\AppData\Roaming\Typora\typora-user-images\image-20200909142203435.png)]
配置——>动作——>Discovery actions——>新建动作——>填写名称以及条件自动发现规则选择刚才创建的规则——>操作——>添加action——>添加主机、添加群组等
新上线主机配置
安装包
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix/zabbix-agent_5.0.0-1%2Bfocal_amd64.deb
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix/zabbix-sender_5.0.0-1%2Bfocal_amd64.deb
dpkg -i zabbix-sender_5.0.0-1+focal_amd64.deb
dpkg -i zabbix-agent_5.0.0-1+focal_amd64.deb
修改agent配置文件
grep -v ^# /etc/zabbix/zabbix_agentd.conf |grep -v ^$
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DenyKey=system.run[*]
Server=192.168.142.178
StartAgents=1 #0表示禁用被动模式
ServerActive=192.168.142.178 #server主机IP
Hostname=Zabbix server #server端创建时的server名
Include=/etc/zabbix/zabbix_agentd.d/*.conf
zabbix-proxy配置
zabbix-proxy是zabbix-server的代理程序,以减轻zabbix-server的负担,zabbix-proxy去收集agent端的数据,然后反馈给server。
设置zabbix-proxy主机
安装数据库
apt install mysql-server mysql-client
进行数据库初始化
mysql_secure_installation
进行数据库授权
mysql> create database zbxproxydb character set 'utf8'; #创建数据库
mysql> create user 'zbxproxyuser'@'192.168.142.%' identified by 'zbxproxypass';#创建用户
mysql>grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.142.%'; #授权用户及主机
导入数据库结构
gzip -d /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz
mysql -Dzbxproxydb < /usr/share/doc/zabbix-proxy-mysql/schema.sql
安装包
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
apt update
apt install -y zabbix-proxy-mysql zabbix-get zabbix-sender zabbix-agent
编辑proxy配置文件
grep -v ^# /etc/zabbix/zabbix_proxy.conf |grep -v ^$
Server=192.168.142.178 #server的ip地址
ServerPort=10051 #监听的server的端口
Hostname=zabbix4.zhang.com #proxy的主机名(确保和server端配置的一样)
ListenPort=10051 #proxy监听自身
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
LogRemoteCommands=1
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBHost=192.168.142.181 #数据库地址(proxy本机ip)
DBName=zbxproxydb #数据库名
DBUser=zbxproxyuser #数据库用户名
DBPassword=zbxproxypass #数据库密码
ConfigFrequency=60 #每隔多久获取一次数据
DataSenderFrequency=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=0.0.0.0 #允许的IP地址
启动zabbix-proxy程序
systemctl restart zabbix-proxy.service
在server的web端配置代理主机
管理——>agent代理程序——>创建代理——>填写名称(必须与上面配置文件中的名称一样)
被proxy管理的主机在添加主机的时候使用agent代理程序,在被代理的主机中,server和Acticeserver填写代理主机的IP地址。
设置微信告警通知
企业微信后端配置
这里微信告警通知采用的是企业微信,首先进入企业微信后端管理页面https://work.weixin.qq.com/,创建企业。
应用管理——>创建应用——>上传logo,填写应用名称,选择成员
创建成功后会有一个AgentId和一个Secret。
zabbix-server配置
找到alertscripts文件夹,一般在/usr/lib/zabbix/alertscripts/。之后编辑配置文件使其可以在web端获取到脚本。
vim /etc/zabbix/zabbix_server.conf
#AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
下载并设置脚本
cd /usr/lib/zabbix/alertscripts/
wget https://raw.githubusercontent.com/OneOaaS/weixin-alert/master/weixin_linux_amd64
mv weixin_linux_amd64 wechat
chmod 755 wechat
之后进行测试
./wechat --corpid=xxx --corpsecret=xxx --msg="您好,告警测试" --user=用户账号 --agentid=xxx
-corpid= 企业微信中我的企业——>企业ID
--corpsecret= 企业微信中刚创建的应用中Secret
-msg= 内容
-user= 企业微信中刚创建的应用中进行人物账号的选择
agentid= 企业微信中刚创建的应用中AgentId
./wechat --corpid=ww74e6f8818b755231 --corpsecret=-LTX8xRYfF3uv87TfLW6BdW6vvqS0Zw6kDb8Vw-lX4w --msg="您好,告警测试" --user=ZhangXueChao --agentid=1000003
{"errcode":0,"errmsg":"ok","invaliduser":""}
zabbix-web页面进行配置
管理——>报警媒介类型——>创建媒体类型——>名称:wechat,类型:脚本,脚本名称:wechat,脚本参数
--corpid=ww74e6f8818b755231
--corpsecret=-LTX8xRYfF3uv87TfLW6BdW6vvqS0Zw6kDb8Vw-lX4w
--agentid=1000003
--user={ALERT.SENDTO}
--msg={ALERT.MESSAGE}
最后点击确定;之后进行用户的添加
管理——>用户——>Admin——>报警媒介——>类型:wechat,收件人:与企业微信收件人一致——>添加
之后在报警媒介类型界面进行测试即可。
配置告警动作
配置——>动作——>左上角选择Trigger actions——>创建动作——>填写名称,条件:触发器——>操作——>添加操作,选择群组、用户admin,选择发送方式wechat,勾选custom message定制消息
主题:
故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}
消息:
告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
添加恢复操作——>选择群组、用户admin,选择发送方式wechat,勾选custom message定制消息
主题:
故障解除:{TRIGGER.STATUS}: {TRIGGER.NAME}
消息:
恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}
添加监控项和触发器进行测试
选择一台主机,我这里选择zabbix3_2,在主机上安装redis
apt install -y redis
修改配置文件
vim /etc/redis/redis.conf
bind 0.0.0.0 #不做认证操作
启动服务并检查端口
systemctl start redis
ss -tnlp|grep redis
LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=137804,fd=6))
之后在web页面端进行监控项和触发器的添加
配置——>主机——>zabbix3_2——>监控项——>创建监控项——>名称:redis status,类型:zabbix客户端,键值:net.tcp.listen[6379] ,查看值:service state 应用集:status——>添加
配置——>主机——>zabbix3_2——>触发器——>新建触发器——>名称:redis service down,严重性:严重,表达式:添加>监控项redis status>功能last()>间隔1>结果0——>添加
触发器的添加
配置——>主机——>zabbix3_2——>监控项——>创建监控项——>名称:redis status,类型:zabbix客户端,键值:net.tcp.listen[6379] ,查看值:service state 应用集:status——>添加
配置——>主机——>zabbix3_2——>触发器——>新建触发器——>名称:redis service down,严重性:严重,表达式:添加>监控项redis status>功能last()>间隔1>结果0——>添加
之后进行测试。