ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CentOS 7.7 yum方式安装配置Zabbix 4.0 LTS详解(三)

2019-11-27 21:56:59  阅读:227  来源: 互联网

标签:LTS CentOS 微信 py zabbix Zabbix pip 告警 com


一、配置邮件告警、微信告警和钉钉告警:

1、配置邮件告警:

(1)定义发件人:

Administration --> Media types --> Email --> Media type --> Update

image.png

image.png

image.png

(2)定义收件人:

Administration --> Users --> Admin --> Media --> Add --> Update

image.png

image.png

image.png

(3)定义动作:

Configuration --> Actions --> Create action --> Add

image.png

image.png

image.png

备注:自定义告警内容

https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location

image.png

image.png

2、配置微信告警:

(1)注册企业微信:https://work.weixin.qq.com/

(2)微信扫码登录:

我的企业 --> 微工作台 --> 邀请关注(使用微信扫描二维码直接关注)

应用管理 --> 应用 --> 自建 --> 创建Zabbix微信告警应用

image.png

image.png

我的企业 --> 企业信息 --> 企业ID

image.png

通讯录:

image.png

image.png

(3)编写微信告警脚本:

# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf

image.png

# cd /usr/lib/zabbix/alertscripts

# vim wechat.py

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#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','wechat.log'),filemode='a')

 

corpid='XXXXXXXX'

appsecret='XXXXXXXX'

agentid='XXXXXXXX'

 

#获取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]

message=sys.argv[2] + "\n\n" +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)

# chmod +x wechat.py

备注:上述脚本中的XXXXXXXX需要按照实际情况替换

(4)执行wechat.py脚本前的准备工作:

a、配置epel源:# yum -y install epel-release

b、安装python2-pip软件包:

# python --version

image.png

# yum -y install python2-pip

c、修改pip源为阿里云镜像源:

# mkdir -pv ~/.pip

# vim ~/.pip/pip.conf

[global]

index-url = http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host = mirrors.aliyun.com

d、升级pip软件包:

# pip -V

image.png

# pip install --upgrade pip

# pip -V

image.png

e、安装Python的requests模块:# pip install requests

f、创建日志文件,并修改其属主属组:

# touch /tmp/wechat.log

# chown zabbix.zabbix /tmp/wechat.log

(5)测试wechat.py脚本:

# /usr/lib/zabbix/alertscripts/wechat.py 'XXXX' '主题:test' '内容:wechat alert'

image.png

(6)媒介中新增微信告警:

Administration --> Media types --> Create media type --> Media type --> Add

image.png

需要3个参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

image.png

image.png

(7)对应用户中设置报警媒介:

Administration --> Users --> Admin --> Media --> Add --> Update

image.png

image.png

(8)定义动作:

Configuration --> Actions --> Email --> Clone --> Add

image.png

image.png

image.png

image.png

3、配置钉钉告警:

(1)需要服务器公网出口IP

(2)注册企业钉钉:https://oa.dingtalk.com/

(3)钉钉扫码,输入管理密码后登录:

通讯录 --> 内部通讯录管理 --> 部门人员 --> 邀请成员加入(使用钉钉扫描二维码申请加入)

工作台 --> 应用管理 --> 自建应用 --> 创建Zabbix钉钉告警应用

image.png

钉钉开放平台:https://open-dev.dingtalk.com/

image.png

image.png

image.png

(4)编写钉钉告警脚本:

# cd /usr/lib/zabbix/alertscripts

# vim dingtalk.py

#!/usr/bin/python

# -*- coding: utf-8 -*-

import json,urllib2,sys

 

appkey = 'XXXXXXXX'

appsecret = 'XXXXXXXX'

agentid = 'XXXXXXXX'

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'))

# chmod +x dingtalk.py

备注:上述脚本中的XXXXXXXX需要按照实际情况替换

(5)测试dingtalk.py脚本:

image.png

image.png

# /usr/lib/zabbix/alertscripts/dingtalk.py 'XXXX' 'zabbix alert test'

image.png

(6)媒介中新增钉钉告警:

Administration --> Media types --> Create media type --> Media type --> Add

需要2个参数:{ALERT.SENDTO}{ALERT.MESSAGE}

image.png

image.png

(7)对应用户中设置报警媒介:

Administration --> Users --> Admin --> Media --> Add --> Update

image.png

image.png

(8)定义动作:

Configuration --> Actions --> Email --> Clone --> Add

image.png

image.png

image.png

image.png

4、告警测试:

(1)停止node-122节点上的vsftpd# systemctl stop vsftpd

image.png

image.png

image.png

image.png

查看Action logReports --> Action log

image.png

(2)启动node-122节点上的vsftpd# systemctl start vsftpd

image.png

image.png

image.png

image.png

查看Action logReports --> Action log

image.png


标签:LTS,CentOS,微信,py,zabbix,Zabbix,pip,告警,com
来源: https://blog.51cto.com/qiuyue/2454253

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有