衆所周知,telegram的機器人仍是很是好用,並且是免費的,因此這就給監控系統發送報警消息提供了一個很是好的渠道,相信不少朋友已經垂涎三尺了,因此廢話很少說,直奔主題吧!
zabbix系統基礎配置部分此處就直接跳過了,若是需求請參閱 https://blog.51cto.com/183530300/category8.htmlhtml
此處咱們直接從建立機器人開始,固然建立機器人的前提是你要先有一個telegram帳號,接下來是在telegram客戶端上的操做了python
第一步:在搜索欄裏直接使用@BotFather打開和telegram官方機器人的對話框
第二步:發送/start
第三步:給本身的機器人取一個名字(須要符合官方的要求:須要以_bot結尾,前面的名字是自定義部分)
第四步:當機器人名字符合官方標準時,就會收到官方發送過來的token,此token必定要牢記,由於往後須要常常使用的
第五步:將本身的機器人添加到須要接收報警消息的telegram我的賬號裏,或者telegram羣組裏面
使用 https://api.telegram.org/bot" 官方發過來token"/getUpdates,獲取相應的chat_id,若是機器發我的的,chat是一串純數字,若是機器人發給羣組,chat_id是數據串前帶一個-centos
使用機器人的API向我的telegram帳號發消息(提早是你已經添加此機器人爲好友了)的調用格式curl -X POST "https://api.telegram.org/bot"官方發過來token"/sendMessage" -d "chat_id=$contact&text=$message" &>/dev/null
注意:此種方式只能發送單行消息,若是須要換行,只能使用算定的鏈接符鏈接須要換行的多行文本
固然只能改善單行消息這是不完美的,那麼怎麼辦了,有方法,那就是使用python封裝一下消息請求就能夠了,在這裏給你們一個我本身實現的過程腳本
api
#!/usr/bin/env python -*- coding: utf-8 -*-* @Author: lucker @Date: 2018-06-01 18:59:26 @Last Modified by: lucker @Last Modified time: 2018-06-01 19:09:47 @Description:Zabbix use telegram bot to send message to group** import telegram import sys contact = sys.argv[1] subject = sys.argv[2] content = sys.argv[3] bot = telegram.Bot(token='官方發過來token') chat_id = contact bot.send_message(chat_id=chat_id, text=subject+'\n'+content)
從代碼中能夠看出,須要安裝python庫中的一個telegram調用庫,才能夠實現python調用telegram接口發送消息
只要有了這個可以發送多行內容的python腳本,剩下的也就好辦了:
服務器
第一步:將此腳本放到zabbix服務器上,並受權zabbix帳戶有執行權限。
第二步:確保你的zabbix服務器python版本是2.7以上,CentOS默認沒有這麼高的版本,須要手工升級python版本
若有須要,請參閱此博文https://blog.fazero.me/2016/10/13/centos-update-python/
第三步:手動測試使用此腳本發送多行消息,測試示例:python telegram_send_message.py -123456789 主題:測試信息 $'first line\nsecond line\nthird line'
第四步:zabbix的Administration(管理)->Media types(媒介類型)建立一個新的媒介類型,好比:telegram_send_message
第五步:配置須要接收telegram報警消息的運維人員帳戶Administration->Users->Media->add->telegram_send_message,添加並啓用telegram_send_message這個Media
第六步:建立一個使用telegram發送消息的active(動做),Configuration->Actions->Create action,選擇使用對應媒介方式,如剛纔建立的telegram_send_message,並定義觸發此動做的條件。
關於此部分的詳細配置過程,請參閱博文https://blog.51cto.com/183530300/2089051運維
至此,zabbix調用telegram機器人發送報警消息成功實現,預祝你們配置愉快,如喜歡,請轉發加點贊!curl