Zabbix4.0入門到實戰:自定義報警 ------ 第4章

1. 自定義監控項

監控主機 上配置自定義監控項:

# 查看當前登錄用戶
[root@agent ~]# who
root     pts/0        2020-05-20 21:29 (10.0.0.1)
root     pts/1        2020-05-20 21:35 (10.0.0.1)
# 查看當前用戶登錄數
[root@agent ~]# who|wc -l
2
# 設置自定義監控項login_users,命令是who|wc -l
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf 
UserParameter=login_users,who|wc -l
# 重啓zabbix監控主機
[root@agent ~]# systemctl restart zabbix-agent

在zabbix server機器上獲取設置的監控項的值:

# 下載zabbix-get.x86_64
[root@Zabbix-server ~]# yum install zabbix-get.x86_64 -y
# 獲取監控項的值
[root@Zabbix-server ~]# zabbix_get -s 10.0.0.3 -k login_users

添加監控項,可以把 歷史數據保留時長 設置的小一些:
在這裏插入圖片描述
可以看到我們自定義的監控項:
在這裏插入圖片描述

2. 創建觸發器

這裏要注意表達式部分監控項的名字要使用我們自定義的:
在這裏插入圖片描述

3. 自定義郵件發件人

這裏需要注意的是163郵箱需要開啓SMTP服務,才能拿到授權碼:
在這裏插入圖片描述
授權碼寫在密碼部分:
在這裏插入圖片描述

4. 自定義郵件收件人

點擊用戶頭像,到 用戶基本資料 下的 報警媒介 下添加Email類型的報警媒介:
在這裏插入圖片描述

5. 啓用觸發器的動作

配置 選項下的 動作 項中將狀態修改爲已啓用的狀態:
在這裏插入圖片描述

6. 觸發報警

當觸發“當前系統用戶的登錄數”觸發器的時候,會向接收郵箱發送消息。這裏可以查看已經發送的報警郵件:
在這裏插入圖片描述
郵箱也會接收到報警消息:
在這裏插入圖片描述

7. 自定義郵件報警信息

默認的郵件報警信息除了宏部分,其它均爲英文且比較亂。所以,爲了方便查看,需要自定義郵件報警信息:
在這裏插入圖片描述
自定義郵件報警信息,我這裏使用的模板是:

服務器: {HOST.NAME}發生:{EVENT.NAME}故障!
{
告警主機: {HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID{EVENT.ID}
}

下面換成我們定義的信息:
在這裏插入圖片描述
當觸發報警後,可以在 動作日誌 中查看到發送給接收郵件的報警信息:
在這裏插入圖片描述
檢查郵箱後發現郵箱也收到了對應的報警信息:
在這裏插入圖片描述

8. 自定義微信報警

寫一個微信發送消息的腳本,這裏需要用到企業微信。需要修改企業微信ID、機器人密碼和應用ID,這些在企業微信管理都可以看到。下面是微信發送消息的腳本:

# 導入相關模塊
import requests, os, sys, logging, json

# 定義日誌的格式
logging.basicConfig(
    filename=os.path.join('/tmp', 'weixin.log'),
    format='%(asctime)s - %(name)s - %(levelname)s - %(module)s:%(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    level=logging.DEBUG,
)
# 企業微信id
corpid = ''
# 機器人密碼
appsecret = ''
# 應用id
agentid = 1
# 獲取accesstoken
token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettonken?corpid' + corpid + '&corpsecret=' + appsecret
req = requests.get(token_url)
accesstoken = req.json()['access_token']
# 發送消息
send_msg_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser = sys.argv[1]
subject = sys.argv[2]
message = subject + '\n\n' + sys.argv[3]
params = {
    'touser': touser,
    'msgtype': 'text',
    'agentid': agentid,
    'text': {
        'content': message
    },
    'safe': 0
}
req = requests.post(send_msg_url, data=json.dumps(params))
# 把結果記錄的日誌中
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

把腳本放到zabbix server中的指定的目錄下:

# 查看腳本應該放到哪個位置
[root@Zabbix-server ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf 
...
AlertScriptsPath=/usr/lib/zabbix/alertscripts
...

添加微信報警媒介:
在這裏插入圖片描述
指定收件人:
在這裏插入圖片描述
添加完成後啓用微信報警媒介,可以暫時把Email報警媒介停用:
在這裏插入圖片描述
下面執行這個腳本開始向微信發送報警信息:

[root@Zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@Zabbix-server alertscripts]# python weixin.py 用戶名 標題 報警內容 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章