zoukankan      html  css  js  c++  java
  • 自定义监控项及告警升级

    1.详细讲解自定义监控

    1.认识Template OS Linux 模块的所有监控项都是干什么的

    在这里插入图片描述 2.自定义一个监控项 ( 创建监控项中的所有选项 ) 在这里插入图片描述

    在这里插入图片描述

     PS:映射值也可写存活于非存活
    克隆:基于当前的监控项进行克隆,修改对应的键值即可 
    

    3.历史保留如何计算? ( 数据 )

    days*(items/refresh rate)*24*3600*bytes
    items:监控项数量。
    days:保留历史数据的天数。
    refresh rate:监控项的更新间隔。
    bytes:保留单个值所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。	
    90*(200/60)*24*3600   ~ 24MB    * 200主机 =  5G
    

    4.趋势保留如何计算? ( 图形 )

    days*(items/3600)*24*3600*bytes
    items:监控项数量。
    days:保留历史数据的天数。
    bytes:保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。
    365*(200/3600)*24*3600  ~ 2MB     * 200主机  = 500MB
    

    5.事件如何计算?

    days*events*24*3600*bytes
    events:每秒产生的事件数量。假设最糟糕的情况下,每秒产生 1 个事件。
    days:保留历史数据的天数。
    bytes:保留单个趋势数据所需的字节数,取决于数据库引擎,通常为 ~170 字节。
    365*1*24*3600    ~ 30MB     *200主机  = 6G 
    https://www.zabbix.com/documentation/4.0/zh/manual/installation/requirements
    

    6.自定义监控TCP 11种状态?

    	netstat -an | grep -c ESTABLISHED
    ​	netstat -an | grep -c LISTEN
    ​	netstat -an | grep -c SYN_SENT
    ​	netstat -an | grep -c TIME_WAIT
    ​	1.使用shell命令提取状态
    ​	2.通过zabbix-agent将提取的状态封装为一个又一个的监控项目
    ​	3.检查封装后的监控项是否取值正确
    ​	4.创建一个模板
    ​	5.基于模板创建监控项
    ​	6.将主机关联该模板,完成监控
    ​	7.检查监控后的数据
    	UserParameter=tcp[*], netstat -lntp | grep -c "$1"
    

    在这里插入图片描述

    在这里插入图片描述

    **查看最新数据—>若出现不支持的key----->修改我们用户的配置刷新参数为10s/次----重启服务 **

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    7.如何让其他机器也能使用该模板?

    1.推送*.conf文件,这样其他主机也能提取到key对应的值
    	2.将主机关联对应的模板
    

    8.自定义触发器

    	https://www.cnblogs.com/kingle-study/p/10172413.html
    

    1.单条件触发器

    1.单条件触发:监控内存的百分比,   如果 低于20%  则触发报警
    	1.通过shell命令提取内存的百分比
    	2.设定触发器
    [root@web01 zabbix_agentd.d]# cat all.conf 
    UserParameter=user_login,who|wc -l
    UserParameter=free.mem.ava,free -m |awk '/^Mem/ { print $NF/$2*100}'
    

    2.多条件触发器

    2.监控内存, 以及swap  当内存低于百分之20,并且swap使用率超过百分之1% 则触发报警
    			内存取的是剩余			20
    			swap取的是已使用		1
    
     UserParameter=free.swap.ava,free -m |awk '/^Mem/ {print $3/$2*100}' 
    

    常用函数汇总:

    变量
    监控项
    key  | 键值 
    and         #并且    多个监控项,同时成立    
    or          #或者	 多个监控项,一个成立
    last()      #比对最新的值
    avg()       #平均值						网络的流量 avg(5m)  进程  负载  IO
    diff()      #比对上一次文件的内容			
    nodata()    #收不到数据进行报警nodata(5m)   探测主机存活 				test.nodata(5m) = 1     这个条件为真	获取不到数据报警
    (5m)        #表示最近5分钟得到值
    (#5)        #表示最近5次得到的值
    

    在这里插入图片描述

    在这里插入图片描述

    3.自定义图形

    1.基于监控项, 创建图形,   可以在模板上创建,这个所有的主机都应用成功
    	2.基于图形创建, 聚合图形,  将多个小图片整合至一个大图片上   ( 检测中--->聚合图形 )
    	3.基于聚合图形创建幻灯片, 可以让多张聚合图形进行轮播   (大屏显示器 --> )
    
    扩展: 如果希望出更好看,更炫的图,需要使用grafana   
    注意: grafana只是一个出图,所有的数据都是zabbix提供   (  皮肤 )
    

    1.安装grafana

    yum localinstall grafana-6.4.4-1.x86_64.rpm 	
    

    2.启动grafana 默认监听在3000端口

    systemctl start grafana-server
    

    3.安装插件, 集成zabbix

    grafana-cli plugins install alexanderzobnin-zabbix-app
    systemctl restart grafana-server
    

    4.启用已安装好的zabbix插件,这样就完成了集成
    5.配置zabbix数据源
    6.grafana 变量 ()

    在这里插入图片描述

    9.基于监控项

    1.图形
    2.聚合图形
    3.幻灯片
    4.grafana安装
    

    在这里插入图片描述

    在这里插入图片描述

    10.自定义报警

    基于监控项-->触发器-->执行动作--> ( 通知  |  执行命令  
    1.怎么发        
    2.发什么
    3.发给谁
    

    1.zabbix基于邮件报警

    1.启用动作
    2.动作中将所有的报警消息通过介质发送给administrator用户
    3.配置介质--> 新建一个发邮件的邮箱介质
    4.配置administrator用户, 填写收件人邮件
    
    https://www.zabbix.com/documentation/3.4/zh/manual/appendix/macros/supported_by_location
    修改报警的消息
    

    在这里插入图片描述

    img

    在这里插入图片描述

    报警主机:{HOST.NAME1}
    报警服务: {ITEM.NAME1}
    报警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
    报警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
    严重级别: {TRIGGER.SEVERITY}
    

    2.配置故障恢复消息,消息内容如下:

    恢复主机:{HOST.NAME1}
    恢复服务: {ITEM.NAME1}
    恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}
    恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}
    

    在这里插入图片描述

    3.zabbix基于企业微信报警

    企业微信地址,个人可注册
    https://work.weixin.qq.com/

    1.登录企业微信

    企业 -> 微工作台里可以直接微信关注,无需要下载企业微信
    通讯录里的账号在发微信脚本中要用到
    应用与小程序可创建应用
    

    2.安装所需软件包

    [root@zabbix ~]# yum install python-pip -y
    [root@zabbix ~]# pip install requests
    [root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/
    

    3.编写微信告警脚本

    [root@zabbix alertscripts]# cat weixin.py 
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    #author: chengyinwu
    #date: 2019
    #comment: zabbix接入微信报警脚本
    
    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'),
                    filemode = 'a')
    
    
    corpid='ww4736ba0d716094'
    appsecret='C5GU_lus1Yxmn1heTccmRt2wOTUExeB6_edmPFAMg'
    agentid=10002
    #获取accesstoken
    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]
    #toparty='3|4|5|6'
    message=sys.argv[2] + "
    
    " +sys.argv[3]
    
    params={
            "touser": touser,
    
    "toparty": toparty,
    
    ​    "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)  
    

    4.删除.log文件

    [root@zabbix alertscripts]# rm -rf /tmp/weixin.log
    

    5.报警测试

    [root@zabbix alertscripts]# chmod +x weixin.py 
    [root@zabbix alertscripts]# ./weixin.py ChengYinWu "监控测试" 123456
    

    6.下边脚本需要传入的参数

    {ALERT.SENDTO}      #发送的用户
    {ALERT.SUBJECT}     #发送的主题
    {ALERT.MESSAGE}     #发送的内容
    

    在这里插入图片描述

    在这里插入图片描述

    4.zabbix基于企业钉钉报警

    钉钉企业的地址
    https://oa.dingtalk.com/
    

    钉钉企业告警的注意事项

    1.通讯录管理里的userid发钉钉需要用到
    2.工作台里可自建应用
    3.微应用管理可以管理应用
    4.开发账号管理可以查看密码信息
    

    1.编写发送钉钉告警的脚本

    [root@zabbix alertscripts]# cat dingding.py 
    #!/usr/bin/python
    
    -*- coding: utf-8 -*-
    
    #curl 'https://oapi.dingtalk.com/gettoken?corpid=xxx&corpsecret=xxx'
    import json,urllib2,sys
    
    appkey = 'dingqp5feq9vmsa8mc'
    appsecret = 'MD8Hq9Rfeztr3MMa6YSG95u98ZGeIkG_V8hzu3NOaYvvSVg1E8YchQ6NsK41r'
    agentid = '3204096'
    touser = sys.argv[1]
    content = sys.argv[2]
    
    tockenurl = 'https://oapi.dingtalk.com/gettoken?corpid=' + appkey + "&corpsecret=" + appsecret
    tockenresponse = urllib2.urlopen(tockenurl)
    tockenresult = json.loads(tockenresponse.read().decode('utf-8'))
    tocken =  tockenresult['access_token']
    
    sendurl = 'https://oapi.dingtalk.com/message/send?access_token=' + tocken
    headers = {
    'Content-Type':'application/json'
    }
    main_content = {
    "touser": touser,
    "toparty": "",
    "agentid": agentid,
    "msgtype": "text",
    "text": {
    "content": content
    }
    }
    main_content = json.dumps(main_content)
    req = urllib2.Request(sendurl,headers=headers)
    response = urllib2.urlopen(req, main_content.encode('utf8'))
    print(response.read().decode('utf-8'))
    

    2.报警测试

    [root@zabbix alertscripts]# chmod +x dingding.py
    [root@zabbix alertscripts]# ./dingding.py manager9273 测试
    

    在这里插入图片描述

    在这里插入图片描述

    11.告警抑制

    1.远程执行命令

    在这里插入图片描述

    在这里插入图片描述

    2.告警抑制是怎么回事

    当服务出现异常时,无需立刻发送消息,等待下一次检查,如果还故障发送消息
    

    12.告警升级

    1个故障 出现  			发邮件给运维		邮件
    超过1分钟没有被处理 	发邮件给经理		微信
    超过2分钟没有被处理 	发邮件给总监		钉钉
    

    在这里插入图片描述

  • 相关阅读:
    F系列车牌识别设备
    金蝶云星空安装及卸载教程
    RG-RAC256高性能无线控制器
    关于IP网段划分
    Win10关闭自动更新的三种方法
    锐捷网络RG-S2528G-24P
    光纤信号的传输距离
    POE交换机
    光纤收发器
    大华工具管家 1.01.1官方版
  • 原文地址:https://www.cnblogs.com/baozexu/p/11921899.html
Copyright © 2011-2022 走看看