zoukankan      html  css  js  c++  java
  • Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形

    实战一:实现zabbix监控微信报警

    1、在企业微信上注册账号

    1、注册企业微信,管理员需要写上自己的真实姓名,扫描以下的二维码,与微信关联真实姓名。

     2、登陆企业微信,然后创建一个微信故障通知应用

     3、对创建的应用命名,并上传图片

    4、查看创建的应用

     5、添加成员

     6、查看此时的管理员账号是姓名全拼,但首字母都是大写,例如:张三,账号就是ZhangSan

     2、在Linux系统的zabbix server服务器端配置weixin.py脚本

    1、首先安装python脚本需要的命令

    [root@zabbix web]# yum install python-pip -y
    [root@zabbix web]# pip install requests 
    

    2、在指定的目录下/usr/lib/zabbix/alertscripts创建weixin.py脚本,在企业微信里找到agentid、企业ID以及企业秘钥

    #!/usr/bin/env python
    #coding:utf-8
    #Author:Zhang ShiJie
    import requests
    import sys
    import os
    import json
    import logging
    
    
    logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
    datefmt = '%a, %d %b %Y %H:%M:%S',
    filename = os.path.join('/tmp','weixin.log'), # 指定临时weixin的日志路径
    filemode = 'a')
    
    corpid='xx'  # 需要修改企业ID
    appsecret="xxx"  # 企业的secret秘钥
    agentid="xxx" # 修改agentid
    token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
    req=requests.get(token_url)
    accesstoken=req.json()['access_token']
    
    
    msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
    touser=sys.argv[1]
    subject=sys.argv[2]
    message=sys.argv[2] + "
    
    " +sys.argv[3]
    
    
    params={
    "touser": touser,
    "msgtype": "text",
    "agentid": agentid,
    "text": {
    "content": message
    },
    "safe":0
    }
    
    
    req=requests.post(msgsend_url, data=json.dumps(params))
    logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)
    

    3、对weixin.py脚本加上执行权限,并将属组和属主加上

    [root@zabbix alertscripts]# pwd  # 将weixin.py脚本存放在此目录下
    /usr/lib/zabbix/alertscripts
    [root@zabbix alertscripts]# chmod +x weixin.py  # 加上执行权限
    [root@zabbix alertscripts]# chown zabbix.zabbix weixin.py  -R  # 将权限进行修改
    [root@zabbix alertscripts]# ll
    total 4
    -rwxr-xr-x 1 zabbix zabbix 981 Dec 25 02:55 weixin.py

    4、对weixin.py脚本进行测试

    [root@zabbix alertscripts]# python weixin.py  姓名账号 "这是主题" "这是内容"
    [root@zabbix alertscripts]# python weixin.py  姓名账号 "这是主题" "这是内容11"
    [root@zabbix alertscripts]# python weixin.py  姓名账号 "这是主题" "这是内容 linux"

    5、此处很关键,由于手动推送的脚本生成的临时文件/tmp/weixin.log是root权限的数据,我们启动的zabbix--server服务器都是zabbix 用户启动的,需要我们将/tmp/weixin.log文件的属组和属主改为zabbix用户,或者删除即可。

    [root@zabbix alertscripts]# ll /tmp/weixin.log 
    -rw-r--r-- 1 root root 914 Feb 28 09:20 /tmp/weixin.log
    [root@zabbix alertscripts]# rm -rf /tmp/weixin.log  #删除临时log文件
    
    [root@zabbix alertscripts]# chown zabbix.zabbix  /tmp/weixin.log  -R  # 改为zabbix用户

    6、手动推送脚本成功后,此时手机上就可以收到,微信故障报警通知

     3、在zabbix网页上创建nginx监控

    这里在linux系统上配置nginx服务、监听nginx状态以及监听nginx的80端口,不再细讲,详情请看:https://www.cnblogs.com/struggle-1216/p/12347283.html

    1、创建主机群组

     2、创建主动模式的proxy代理

    3、创建监控nginx模板

     4、全克隆一个监控主动模式的proxy代理模板,因为默认的监控项里边的监控项原型、网络部分都是被动模式,需要将选项改为主动模式,时间间隔设置为5s,生产中设置为5m,详情见:https://www.cnblogs.com/struggle-1216/p/12354813.html里边的主动模式监控,这里不再演示。

    5、创建主机,添加的主动模式代理的proxy代理模板

     6、开始关联主机模板

     7、在上面创建的Linux_nginx模板没有应用集、监控项、触发器等信息,需要在下面进行添加,第一步先创建应用集。

     8、创建监控项,这里只创建了监听nginx的80端口。

     9、创建触发器,这里只做了监听nginx的80端口监听,其他的同理一样的操作。

    监控的agent主机是默认五分钟内不可用就会触发触发器,表达式含义是:在5分钟之内的agent.ping不等于1就触发报警

    10、创建监控nginx图形

     11、此时可以看到监控的nginx主机配置正常

     12、查看nginx监控图形

    4、在zabbix网页上创建实现触发报警,发送报警通知到企业微信上

    1、创建报警媒介类型,脚本参数如下:

    {ALERT.SENDTO}  # 发给谁
    {ALERT.SUBJECT}  # 主题
    {ALERT.MESSAGE} # 信息

     2、创建用户

     3、修改VIP的用户权限,改为超级管理员,其他创建的用户也一样。

    4、对创建的用户(VIP)全部都加上报警媒介。

     5、创建动作

     6、在动作里添加操作。

    默认标题:业务报警{TRIGGER.STATUS}
    消息内容:上海业务报警服务器:{HOST.NAME},IP:{HOSTNAME1},详情:{ITEM.NAME}:{ITEM.VALUE}

     7、在动作里添加恢复操作,用来提醒自己,业务已经恢复。

    默认标题:业务报警{TRIGGER.STATUS}
    消息内容:上海业务报警服务器:{HOST.NAME},IP:{HOSTNAME1},详情:{ITEM.NAME}:{ITEM.VALUE}

     5、测试效果

     1、在被监控端停掉nginx服务和zabbix-agent服务

    [root@node1 ~]# nginx -s stop
    [root@node1 ~]# systemctl stop zabbix-agent
    

    2、查看此时的报警信息。

    3、查看此时的企业微信发送的报警信息

     4、恢复此时的nginx服务及zabbix-agent服务,查看企业微信发送的恢复消息

     实战二:在zabbix网页创建聚合图形

    1、在zabbix网页上创建聚合图形,选择了两行两列

     2、在创建的linux_web聚合图形界面添加要监控的主机指标,跨主机、以及跨主机群组的主机,都可以监控

     3、以下是个人创建的四个聚合图形监控

     4、如果有多个主机,可以创建多个聚合图形,以下是创建的第二个linux_web2的聚合图形。

     5、创建幻灯片演示

     6、将前面创建的聚合图形添加到幻灯片中

     7、最后打开创建的幻灯片演示,此时创建的聚合图形就会每3s进行切换图形在屏幕上显示所要监控的信息。

       

       

      

  • 相关阅读:
    Delphi 中多线程同步的一些处理方法
    delphi 讲的比较详细的多线程
    Delphi MSComm 实时串口通讯
    Delphi多线程数据库查询(ADO)
    常用学习链接收藏
    Linux目录及常用命令
    DEBUG和INFO的使用
    git命令
    9.9 接口与工厂
    9.4 Java中的多继承
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/12372501.html
Copyright © 2011-2022 走看看