系统为ubuntu1804, zabbix版本为4.0:
自己开发的, 定义了告警字段和信息, 在脚本里使用curl POST上报的方式发送告警信息. nice
zabbix4.0 安装步骤略过
web页面的配置如下:
本菜鸡这里的脚本主要监控的是gs项目的稳定性和显卡驱动是否活着.
所以脚本比较简单. 大佬们想监控什么写脚本就可以
zabbix_sender的用法不多赘述.
就说向服务端发送警告信息的命令是酱紫的~
zabbix_sender -z server_IP -s server添加的主机名(开心就好) -k ittest2020 -o "title==系统报错,ip==客户端名字, 自己认识就行,alarmType==warning,remark== " -vv
-z 是server_ip
-s 后面跟服务端添加的主机名称. 主机名称 不是可见名称, , 要通过这个主机名认是谁
-k 就是键值, 上面的那个键值
-o 后面跟上报的内容
-vv 上报结果
zabbix调用脚本的默认目录在配置文件里自己找.
脚本内容入下
打马赛克的是我们接口的地址.
这里的$1 $2 $3 是zabbix里面内置的那个东西. 下面讲
#!/bin/bash
#title=程序重启,ip=192.168.192.23,alarmType=warning,remark=四川程序出现重启
echo $1 >>/tmp/1.txt
#echo "11111111111#####################" >>/tmp/1.txt
echo $2 >>/tmp/1.txt
#echo "22222222222#####################" >>/tmp/1.txt
echo $3 >>/tmp/1.txt
#echo "3333333333#####################" >>/tmp/1.txt
title=`echo $3 | awk -F",," '{print $1}' | awk -F"==" '{print $2}'`
alarmIP=`echo $3 | awk -F",," '{print $2}' | awk -F"==" '{print $2}'`
alarmType=`echo $3 | awk -F",," '{print $3}' | awk -F"==" '{print $2}'`
alarmPlace=`echo $3 | awk -F",," '{print $4}' | awk -F"==" '{print $2}'`
remark=`echo $3 | awk -F",," '{print $5}' | awk -F"==" '{print $2}'`
alarmTime=`date "+%Y-%m-%d-%H:%M:%S"`>/tmp/2.txt
#alarmPlace=`echo $3 | awk -F",," '{print $4}' | awk -F"==" '{print $2}'`
echo $title >>/tmp/2.txt
echo $alarmIP >>/tmp/2.txt
echo $remark >>/tmp/2.txt
echo $alarmPlace >>/tmp/2.txt
echo $alarmType >>/tmp/2.txt
echo $1 >>/tmp/2.txt
zabbix_sender -z 111.160.23.206 -s "test_trapper" -k ittest2020 -o "" -vv
#remark=`/etc/zabbix/script/translate.sh "$remark"`
curl http://公众号地址:端口/sti/monitorntc/send -X POST -H "Content-Type:application/json" -d '{"title":"'$title'","alarmIP":"'$alarmIP'","remark":"'"$remark"'","alarmPlace":"'$alarmPlace'","alarmType":"'$alarmType'","alarmTime":"'$alarmTime'"}'
echo $? >>/tmp/2.txt
echo $remark >>/tmp/2.txt
echo curl http://129.226.138.179:8585/sti/monitorntc/send -X POST -H \"Content-Type:application/json\" -d '{"title":"'$title'","alarmIP":"'$alarmIP'","remark":'$remark'","alarmPlace":"'$alarmPlace'","alarmType":"'$alarmType'","alarmTime":"'$alarmTime'"}' >> /tmp/2.txt
重点来啦!!!
这里就是上面的$1 $2 $3 的内容
我这里的$1是Admin, 就是用户名
$2 是监控项名称, 刚刚我设置的是test. 所以$2是test
$3 是消息内容. 这个消息内容是最主要的. 是我们的sender上报的告警信息. 调用的脚本获取的就是$3
重点来啦!!! 真的是重点!!!
{TRIGGER.STATUS}:{ITEM.VALUE1}
这个是zabbix的内置变量. 用来获取的是zabbix_sender上报上来的最新数据!
正常来讲这里应该是别的. 但是 !! but !!! 我这里用的是zabbix_sender! 并且用的是微信公众号接口报警!
zabbix_server只负责一个转接的过程! 就是中介! 就是将sender上报的内容赋值给$3的一个操作
最后下面的操作, 就调用脚本就行了. 没别的. 完事儿~