文章都可以转载、引用,标明转载出处即可。

Shell脚本监控IP地址存活情况

ZABBIX Mr.c 2211℃ 0评论

需求:由于公司网络接入了一个IPsec 的网络,担心IPsec 的加密隧道由于网络不稳定导致中断,需要监控对端一个内网服务器IP地址是否正常ping通,由于特殊环境,无法接入到内网zabbix监控中。
原理:检测IP状态,如果ping不通就触发钉钉告警程序推送消息,钉钉的消息推送是采用大神写的zabbix钉钉报警插件,是用golang语言写的。
一:钉钉机器人创建
  登录PC版,在钉钉群里面创建一个自定义机器人,然后记录下webhook 地址。

二:下载告警程序
  zabbix 钉钉报警插件下载:http://file.qiansw.com/usr/uploads/2017/01/golang-zabbix-alter-to-dingding-64
  插件程序具体介绍: https://www.qiansw.com/golang-zabbix-alter-to-dingding.html
  需要给插件程序授权执行权限:chmod 755 /root/myshell/dingding-monitor
三:简单脚本实现

[root@kvm myshell]# cat monitor_vpn.sh
#!/bin/bash
Log_file=/data/net110.log
IP='192.168.8.11'
ping -c 1 $IP &>/dev/null            #三个ping有一个能通,说明服务器正常
a=$?
sleep 1
ping -c 1 $IP &>/dev/null
b=$?
sleep 1
ping -c 1 $IP &>/dev/null
c=$?
sleep 1
DATE=$(date +%F" "%H:%M)
if [ $a -ne 0 -a $b -ne 0 -a $c -ne 0 ];then
/root/myshell/dingding-monitor -webhook=https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -msg="
 <?xml version="1.0" encoding="UTF-8" ?>
 <root>
   <from>菜鸟运维 </from>
   <time>$DATE </time>
   <level>较高 </level>
   <name>$IP Ping is failed </name>
   <key>ICMP ping:Down (1) </key>
   <value>Down (1) </value>
   <now>Down (1) </now>
   <id>ICMP  </id>
   <ip>$IP </ip>
   <url>https://www.cnops.xyz </url>
   <age>0m </age>
   <status>PROBLEM </status>
 <acknowledgement> No </acknowledgement>
 <acknowledgementhistory> </acknowledgementhistory>
 </root>
"
else
    echo "$DATE IP: $IP ping is successful." >> ${Log_file}
fi 

  修改成无法ping通的IP地址进行测试就会推送告警消息到钉钉群机器人了:

转载请注明:菜鸟运维 » Shell脚本监控IP地址存活情况

喜欢 (3)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址