CentOS 7.7 yum方式安裝配置Zabbix 4.0 LTS詳解(三)

一、配置郵件告警、微信告警和釘釘告警:

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、安裝Pythonrequests模塊:# 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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章