zoukankan      html  css  js  c++  java
  • zabbix配置

    一、配置邮件报警

       1、脚本

       # cd /usr/lib/zabbix/alertscripts
       # vim Sendmail.sh          
    #!/bin/bash
    file=/tmp/zabbix_mail.txt
    echo "$3" > $file
    dos2unix -k $file
    /bin/mail -s "$2" $1 < $file
    # echo "$3" | mail -s "$2" $1

      2、安装邮件发送软件mailx

        # yum install mailx

        测试能否发送邮件:# echo "zabbix test mail " |mail -s "zabbix-title" XXX@163.com

     3、安装dos2unix(用于解决邮件内容变成附件的问题)
       # yum install dos2unix
    4、创建报警媒介   
    •      {ALERT.SENDTO}
    •      {ALERT.SUBJECT}
    •      {ALERT.MESSAGE}
         
    5、配置用户报警媒介
         注:多个收件人用空格分隔
        
    6、配置动作
          【故障】服务器:{HOST.IP}发生: {TRIGGER.NAME}故障!
            告警级别:{TRIGGER.SEVERITY}
            告警主机:{HOST.HOST}
            告警IP:{HOST.IP}
            告警时间:{EVENT.DATE} {EVENT.TIME}
            告警内容:{TRIGGER.NAME}
            当前值:{ITEM.VALUE}
            告警状态:{TRIGGER.STATUS}
            告警ID:{EVENT.ID}
     
          【恢复】服务器:{HOST.IP}: {TRIGGER.NAME}已恢复!
            告警级别:{TRIGGER.SEVERITY}
            告警主机:{HOST.HOST}
            告警IP:{HOST.IP}
            恢复时间:{EVENT.RECOVERY.TIME}
            告警内容:{TRIGGER.NAME}
            当前值:{ITEM.VALUE}
            告警状态:{TRIGGER.STATUS}
            告警ID:{EVENT.ID}
            

    二、微信告警

    配置微信报警
    1、注册微信企业号
    2、登录企业号
    3、创建部门
    4、脚本
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import urllib,urllib2,json
    import sys
    reload(sys)
    sys.setdefaultencoding( "utf-8" )
    
    class WeChat(object):
            __token_id = ''
            # init attribute
            def __init__(self,url):
                    self.__url = url.rstrip('/')
                    self.__corpid = 'XXXXXXXX'
                    self.__secret = 'XXXXXXXXXXXXXXXXX'
    
            # Get TokenID
            def authID(self):
                    params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
                    data = urllib.urlencode(params)
    
                    content = self.getToken(data)
    
                    try:
                            self.__token_id = content['access_token']
                            # print content['access_token']
                    except KeyError:
                            raise KeyError
    
            # Establish a connection
            def getToken(self,data,url_prefix='/'):
                    url = self.__url + url_prefix + 'gettoken?'
                    try:
                            response = urllib2.Request(url + data)
                    except KeyError:
                            raise KeyError
                    result = urllib2.urlopen(response)
                    content = json.loads(result.read())
                    return content
    
            # Get sendmessage url
            def postData(self,data,url_prefix='/'):
                    url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
                    request = urllib2.Request(url,data)
                    try:
                            result = urllib2.urlopen(request)
                    except urllib2.HTTPError as e:
                            if hasattr(e,'reason'):
                                    print 'reason',e.reason
                            elif hasattr(e,'code'):
                                    print 'code',e.code
                            return 0
                    else:
                            content = json.loads(result.read())
                            result.close()
                    return content
    
            # send message
            def sendMessage(self,touser,message):
    
                    self.authID()
    
                    data = json.dumps({
                            'touser':touser,
                            'toparty':"1",  #部门ID
                            'msgtype':"text",  
                            'agentid':"1",  #应用ID
                            'text':{
                                    'content':message
                            },
                            'safe':"0"
                    },ensure_ascii=False)
    
                    response = self.postData(data)
                    print response
    
    
    if __name__ == '__main__':
            a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
            a.sendMessage(sys.argv[1],sys.argv[3])

    5、创建报警媒介类型

    • corpid
    • secret
    • {ALERT.MESSAGE}

      

    6、创建报警媒介

        

    7、配置动作

          【故障】服务器:{HOST.IP}发生: {TRIGGER.NAME}故障!
            告警级别:{TRIGGER.SEVERITY}
            告警主机:{HOST.HOST}
            告警IP:{HOST.IP}
            告警时间:{EVENT.DATE} {EVENT.TIME}
            告警内容:{TRIGGER.NAME}
            当前值:{ITEM.VALUE}
            告警状态:{TRIGGER.STATUS}
            告警ID:{EVENT.ID}
     
          【恢复】服务器:{HOST.IP}: {TRIGGER.NAME}已恢复!
            告警级别:{TRIGGER.SEVERITY}
            告警主机:{HOST.HOST}
            告警IP:{HOST.IP}
            恢复时间:{EVENT.RECOVERY.TIME}
            告警内容:{TRIGGER.NAME}
            当前值:{ITEM.VALUE}
            告警状态:{TRIGGER.STATUS}
            告警ID:{EVENT.ID}
            
    注意:zabbix.conf.php为zabbix链接数据库配置文件,zabbix数据库密码修改后,一定要修改该配置文件。
  • 相关阅读:
    Class.forName和ClassLoader.loadClass的区别
    数据库连接池优化配置(druid,dbcp,c3p0)
    MySQL在默认事务下各SQL语句使用的锁分析
    ArrayList vs LinkedList 空间占用
    MySQL锁详解
    利用ConcurrentHashMap来实现一个ConcurrentHashSet
    list与Set、Map区别及适用场景
    实现一个原子的正整数类:AtomicPositiveInteger
    mysql如何处理亿级数据,第一个阶段——优化SQL语句
    java性能优化
  • 原文地址:https://www.cnblogs.com/xue0123/p/7220996.html
Copyright © 2011-2022 走看看