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...