概述
主要分两部分进行:
- 注册企业微信,自建应用,获取与发送消息相关的信息;
- 编写调用微信API脚本(bash),配置Nagios微信报警;
一、企业微信
1、注册企业微信:https://work.weixin.qq.com/,登录后在“我的企业”找到CorpID
2、创建应用,获取应用里,AgentId,Secret
3、在“通讯录”里,查看需要接受报警的部门id或者成员账号(非昵称)
二、服务器端配置
1、编写调用微信API脚本(bash)命名为set_to_weixin.sh,放在Nagios插件目录下,默认:/usr/local/nagios/libexec,添加可执行权限
1 #!/bin/bash 2 get_access_token () { 3 curl -s https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=CorpID&corpsecret=Secret >/tmp/$$.txt 4 access_token=`awk -F """ '{print $10}' /tmp/$$.txt` 5 } 6 7 sed_to_weixin () { 8 curl https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$access_token -d "{ 9 "touser": "xxxxxx", dashuju178.com dongfan178.com 10 "msgtype": "text", 11 "agentid": 1000000, 12 "text": { 13 "content": "$1" 14 }, 15 "safe":"0" 16 }" 17 } 18 19 main () { 20 get_access_token 21 sed_to_weixin "$*" 22 } 23 24 main "$*"
注:脚本第3行,替换为自己的CorpID和Secret;
脚本第9行,替换为自己的成员账号;或者改为toparty后面接部门id;
脚本第11行,替换为自己的AgentId;
2、修改commands.cfg,在末尾添加如下配置
1 # For weixin 2 define command{ 3 command_name notify-host-by-weixin 4 command_line /usr/local/nagios/libexec/set_to_weixin.sh "hostn-@@-$NOTIFICATIONTYPE$-@@-$HOSTNAME$-@@-$HOSTSTATE$-@@-$HOSTADDRESS$-@@-$HOSTOUTPUT$-@@-$CONTACTALIAS$" 5 } 6 define command{ 7 command_name notify-service-by-weixin 8 command_line /usr/local/nagios/libexec/set_to_weixin.sh "servicen-@@-$NOTIFICATIONTYPE$-@@-$SERVICEDESC$-@@-$HOSTALIAS$-@@-$HOSTADDRESS$-@@-$SERVICESTATE$-@@-$SERVICEOUTPUT$-@@-$CONTACTALIAS$" 9 }
3、修改templates.cfg,在contact名为generic-contact的模板里修改如下两行
1 service_notification_commands notify-service-by-email,notify-service-by-weixin 2 host_notification_commands notify-host-by-email,notify-host-by-weixin
4、重启Nagios
[root@nagios ~]# /etc/init.d/nagios reload
三、测试
1、登录Nagios,点击hosts或者services,点击,发送当前通知
2、登陆企业微信客户端,查看是否收到报警消息。
最后
以上就是悦耳美女为你收集整理的Nagios通过企业微信报警的全部内容,希望文章能够帮你解决Nagios通过企业微信报警所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复