應(yīng)用商城下載seo服務(wù)是什么
文章目錄
- Zabbix對(duì)接飛書告警
- 背景
- 創(chuàng)建飛書群組
- Zabbix配置
- 創(chuàng)建告警媒介類型
- 創(chuàng)建動(dòng)作
- 用戶關(guān)聯(lián)飛書告警
Zabbix對(duì)接飛書告警
背景
@運(yùn)維 你看下他的進(jìn)程是不是掛了,之前在9點(diǎn)28分有發(fā)消息的,這次沒有發(fā)消息
哐哐哐的去看了一通,確實(shí)有個(gè)進(jìn)程之前是3個(gè),現(xiàn)在只有2個(gè)了,進(jìn)程減少了,當(dāng)然這個(gè)業(yè)務(wù)也就存在問題了。還好小伙伴細(xì)心發(fā)現(xiàn)的比較早,如果小伙伴沒有發(fā)現(xiàn),業(yè)務(wù)受到了影響那就是一個(gè)生產(chǎn)事故,當(dāng)然應(yīng)用有問題也是一部分原因。所以監(jiān)控要加起來這是必須要做的事情,以下是Zabbix6 對(duì)接和飛書的對(duì)接的步驟
創(chuàng)建飛書群組
自行創(chuàng)建,創(chuàng)建結(jié)束后添加機(jī)器人,點(diǎn)擊機(jī)器人可獲得
webhook 地址和簽名校驗(yàn),注意保密哦
Zabbix配置
創(chuàng)建告警媒介類型
http://127.0.0.1:18380/zabbix.php?action=mediatype.list
填寫報(bào)警媒介類型信息,填寫對(duì)應(yīng)的值,Message Templetes、選項(xiàng)默認(rèn)即可,填寫完成后點(diǎn)擊添加
主要信息,方便復(fù)制的文字有
{ALERT.MESSAGE}
導(dǎo)入后,這時(shí)候有了feishu的類型
在Zabbix server的機(jī)器上安裝python3的環(huán)境,我是為了偷懶使用了conda,然后通過軟連給了全部的環(huán)境
cd /opt/
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
chmod u+x Anaconda3-2023.03-1-Linux-x86_64.sh
./Anaconda3-2023.03-1-Linux-x86_64.sh
按回車
輸入"yes"
指定路徑"/usr/local/anaconda3"
輸入"yes"
no
設(shè)置軟連接
ln -s /usr/local/anaconda3/bin/pip /usr/bin/pip
ln -s /usr/local/anaconda3/bin/python3 /usr/bin/python3
在此路徑編寫腳本,腳本名稱和創(chuàng)建告警器的腳本名字要對(duì)應(yīng)起來
cd /usr/local/share/zabbix/alertscripts
vim zabbix_feishu.py
python 腳本,#!/usr/bin/python3這個(gè)是必須有的,指定python的版本
#!/usr/bin/python3
import hashlib
import base64
import hmac
import time
import requests
import sys# 飛書機(jī)器人的信息
url = 'https://open.feishu.cn/open-apis/bot/v2/hook/e3d4acfc-982b-449f-bc54-43b6e03220d'
# 簽名可以不用
secret = 'n5oglp5N2wVwppK4Ltb'def gen_sign():timestamp = int(time.time())# 拼接timestamp和secretstring_to_sign = '{}\n{}'.format(timestamp, secret)hmac_code = hmac.new(string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()# 對(duì)結(jié)果進(jìn)行base64處理sign = base64.b64encode(hmac_code).decode('utf-8')return timestamp, signdef send_feishu_message(str):timestamp, sign = gen_sign()headers = {"Content-Type": "application/json",}data = {"timestamp": timestamp,"sign": sign,"msg_type": "text","content": {"text": str}}result = requests.post(url, json=data, headers=headers)print(result.json())returnif __name__ == '__main__':text = sys.argv[1]# text = "1"send_feishu_message(text)
給腳本賦權(quán)
chomd 755 /usr/local/share/zabbix/alertscripts/zabbix_feishu.py
對(duì)飛書進(jìn)行測(cè)試
這時(shí)候會(huì)有飛書消息發(fā)出來
如果沒有發(fā)出,則說明有問題,也可以在Linux上進(jìn)行測(cè)試
這么測(cè)試也可以
(base) [root@localhost alertscripts]# cd /usr/local/share/zabbix/alertscripts
(base) [root@localhost alertscripts]# python zabbix_feishu.py test
{'StatusCode': 0, 'StatusMessage': 'success', 'code': 0, 'data': {}, 'msg': 'success'}
先確定好這些是對(duì)的,然后再進(jìn)行下一步操作
創(chuàng)建動(dòng)作
創(chuàng)建觸發(fā)條件,有好幾種類型,根據(jù)自身情況進(jìn)行選擇
每個(gè)動(dòng)作添加對(duì)應(yīng)的值
配置對(duì)應(yīng)的細(xì)節(jié)操作,勾選Custom Message,填寫類型,配置完點(diǎn)擊Add
異常告警: {EVENT.NAME}告警主機(jī):{HOSTNAME1}
告警時(shí)間:{EVENT.TIME}
告警等級(jí):{TRIGGER.SEVERITY}
告警信息:{EVENT.NAME}
告警項(xiàng)目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復(fù)通知配置
恢復(fù)通知: {EVENT.NAME}恢復(fù)主機(jī):{HOSTNAME1}
恢復(fù)時(shí)間:{EVENT.TIME}
恢復(fù)等級(jí):{TRIGGER.SEVERITY}
恢復(fù)信息:{EVENT.NAME}
恢復(fù)項(xiàng)目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
詳細(xì)的zabbix的文檔請(qǐng)Zabbix官網(wǎng)查詢
點(diǎn)擊添加配置完成
用戶關(guān)聯(lián)飛書告警
選擇用戶,找到Admin進(jìn)行關(guān)聯(lián)
類型選中剛才創(chuàng)建的feishu
參考Zabbix飛書機(jī)器人告警