zabbix 語音告警


之前的文章中已經實現了zabbix 郵件告警和微信告警,生產環境上測試出消息抵達很及時,但是!萬一服務器在大半夜突發故障微信、郵件這些通知都是廢物了,大晚上還能聽到微信通知嗎?顯然不可能(我的某朋友就因為這事到處找語音告警,推薦onealert 給他后實現了晚上電話告警)。
  onealert 官方有提供兩種方式的文檔,一個是一鍵安裝包,但是顯然對於自定義安裝zabbix的情況不太合適,使用通用安裝方式實現了對接: http://wiki.110monitor.com/integration/zabbix-manual.html 
  官方的這篇文檔有個坑,這個agent是需要手動啟動的!需要運行 alert-agent/bin/start.sh 腳本啟動官方提供的客戶端。

  1. [root@aliyun bin] /usr/local/zabbix/alertscripts/alert-agent/bin/start.sh &

  如果是這樣的方式何必寫這文章呢,這里是自己寫了個非常非常簡單的腳本通過對接開放API 推送消息進行告警(類似微信方式):

一:添加REST API應用獲取key:

1.添加REST API應用 后可以獲取到對應的key 並且下方有事例信息,看了下流程就是把一段json 內容通過post 方式傳遞到API 服務器即可。

2.配置通知策略為電話告警:

二:zabbix 配置:

這里基本和郵件報警類似: 《zabbix 配置郵件報警 》
1. 在alertscripts 目錄創建腳本文件:
  zabbix 傳入參數message ,腳本獲取參數寫入到文件onealert 中暫存,curl 使用post 方式將文件onealert 中的值傳到API 服務器。

  1. [root@aliyun ~] cd /usr/local/zabbix/alertscripts
  2. [root@aliyun alertscripts] vim onealert.sh
  3. #!/bin/bash
  4. POSTURL="http://api.110monitor.com/alert/api/event"
  5. onea=/tmp/onealert
  6. echo "$1" >$onea
  7. curl -H "Content-type: application/json" -X POST -d @$onea $POSTURL
  8.  
  9. [root@aliyun alertscripts] chown zabbix.zabbix onealert.sh
  10. [root@aliyun alertscripts] touch /tmp/onealert
  11. [root@aliyun alertscripts] chown zabbix.zabbix /tmp/onealert

2. 配置zabbix 報警媒介和動作:
  這里的參數只填寫{ALERT.MESSAGE} 即可


3.配置用戶通知:
  收件人 也就是Send to 隨意填寫,因為收件人信息稍后會寫到message 里面,通知時間這里,語音告警一般用於晚上,所以可以設置為00:00-07:00時間段。


4.配置動作:
  app 處填寫應用KEY ,詳細參數請參看官方文檔: http://wiki.110monitor.com/api/event_api.html 
Default subject 填寫trigger

  1. {
  2. "app": "xxxxxxxxxxxxxxxxxxxxx",
  3. "eventId": "{EVENT.ID}",
  4. "eventType": "trigger",
  5. "alarmName": "{TRIGGER.NAME}",
  6. "entityName": "{HOSTNAME}",
  7. "entityId": "{IPADDRESS}",
  8. "priority": 3,
  9. "alarmContent": "{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}"
  10. }

Recovery subject 填寫resolve

  1. {
  2. "app": "xxxxxxxxxxxxxxxxxxxxx",
  3. "eventId": "{EVENT.ID}",
  4. "eventType": "resolve",
  5. "alarmName": "{TRIGGER.NAME}",
  6. "entityName": "{HOSTNAME}",
  7. "entityId": "{IPADDRESS}",
  8. "priority": 3,
  9. "alarmContent": "{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}"
  10. }



  好了,配置完了,模擬故障測試一下看看情況,如果在onealert 的告警中已經看到告警任務,電話告警配額也已經消耗了一條(免費用戶每月50個電話通知),但是沒有電話打進來,可以換個號碼測試一下,之前一個朋友測試到電信號碼不成功,換移動號后正常了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM