Zabbix 釘釘機械人報警

2021-10-10 21:00:37 字數 3948 閱讀 2416

zabbix web管理介面設定

遇到的問題

參考鏈結

在伺服器端匯入釘釘指令碼,該路徑需要檢視zabbix_server.conf上的 alertscriptspath屬性

alertscriptspath = /usr/lib/zabbix/alertscripts/

匯入報警指令碼dingding_mysql.py

在群聊中建立釘釘機械人 釘釘機械人需要有設定安全方式這裡選擇加簽。記錄儲存好webhook位址

保留好上述兩項,需要在指令碼中使用。

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

import time

import hmac

import hashlib

import base64

import urllib

import requests

import json

import sys

import os

url =

"你的釘釘機械人webhook位址"

# 釘釘機械人文件說明

# defget_timestamp_sign()

: timestamp =

long

(round

(time.time()*

1000))

secret =

"你的簽名"

# sec開頭的

secret_enc = secret.encode(

'utf-8'

) string_to_sign =

'{}\n{}'

.format

(timestamp, secret)

string_to_sign_enc = string_to_sign.encode(

'utf-8'

) hmac_code = hmac.new(secret_enc, string_to_sign_enc,

digestmod=hashlib.sha256)

.digest(

) sign = urllib.quote_plus(base64.b64encode(hmac_code)

)print

("timestamp: "

,timestamp)

print

("sign:"

,sign)

return

(timestamp, sign)

defget_signed_url()

: timestamp, sign = get_timestamp_sign(

) webhook = url +

"×tamp="

+str

(timestamp)

+"&sign="

+sign

return webhook

defget_webhook

(mode)

:if mode ==0:

# only 敏感字

webhook = url

elif mode ==

1or mode ==2:

# 敏感字和加簽 或 # 敏感字+加簽+ip

# 加簽:

webhook = get_signed_url(

)else

: webhook =

""print

("error! mode: "

,mode,

" webhook : "

,webhook)

return webhook

defget_message

(content,is_send_all)

:# 和型別相對應,具體可以看文件 :

# 可以設定某個人的手機號,指定物件傳送

message =

,"at":}

print

(message)

return message

defsend_ding_message

(content,is_send_all)

:# 請求的url,webhook位址

webhook = get_webhook(1)

# 主要模式有 0 : 敏感字 1:# 敏感字 +加簽 3:敏感字+加簽+ip

print

("webhook: "

,webhook)

# 構建請求頭部

header =

# 構建請求資料

message = get_message(content,is_send_all)

# 對請求的資料進行json封裝

message_json = json.dumps(message)

# 傳送請求

info = requests.post(url=webhook, data=message_json, headers=header)

# 列印返回的結果

建立動作中的操作設定

主機名稱:

故障時長:

檢測項:

最新值:

狀態:

恢復操作設定
主機名稱:

故障時長:

檢測項:

最新值:

狀態:

1.no media type for user

沒有在zabbix admin使用者中設定報警媒介,在使用者中設定報警媒介即可

2.提示no command found import ***x 指令碼內容

沒有在python指令碼最上方寫#! /usr/bin/python

3.指令碼執行報錯 no assics /e7 ……

沒有指定指令碼編碼

bix admin使用者中設定報警媒介,在使用者中設定報警媒介即可

2.提示no command found import ***x 指令碼內容

沒有在python指令碼最上方寫#! /usr/bin/python

3.指令碼執行報錯 no assics /e7 ……

沒有指定指令碼編碼

新增# -*- coding:utf-8 -*-

PHP接入釘釘機械人報警

具體可參考文章 如果設定的敏感詞,那麼傳送的訊息中必須含有敏感詞,才可以成功傳送 如果設定了驗籤,那麼必須要計算簽名才可以傳送 下面是驗籤方式的 url webhook位址 第一步,把timestamp n 金鑰當做簽名字串,使用hmacsha256演算法計算簽名,然後進行base64 encode...

php釘釘機械人,php實現釘釘業務報警機械人

使用場景,伺服器報異常錯誤,想要及時收到報警資訊並處理 環境介紹,本博使用yaf框架 php,僅僅提供思路,參考,具體根據自己實際情況進行編寫 1,每十分鐘執行一次任務指令碼 每10分鐘執行一次的任務 if 0 eq minute 10 then php f public index.php req...

釘釘群機械人

一 首先在釘釘群裡新增乙個自定義機械人 儲存機械人的webhook位址 二 python 示例 安裝requests模組 pip3 install requestsimport requests content at url 機械人的 webhook 位址 r requests.post url u...