设为首页 收藏本站
查看: 1180|回复: 0

[经验分享] zabbix调用telegram机器人发送报警消息

[复制链接]

尚未签到

发表于 2019-1-24 11:12:42 | 显示全部楼层 |阅读模式
  众所周知,telegram的机器人还是非常好用,而且是免费的,所以这就给监控系统发送报警消息提供了一个非常好的渠道,相信很多朋友已经垂涎三尺了,所以废话不多说,直奔主题吧!

zabbix系统基础配置部分此处就直接跳过了,如果需求请参阅 http://blog.运维网.com/183530300/category8.html
  此处我们直接从创建机器人开始,当然创建机器人的前提是你要先有一个telegram账号,接下来是在telegram客户端上的操作了

  第一步:在搜索栏里直接使用@BotFather打开和telegram官方机器人的对话框
第二步:发送/start
第三步:给自己的机器人取一个名字(需要符合官方的要求:需要以_bot结尾,前面的名字是自定义部分)
第四步:当机器人名字符合官方标准时,就会收到官方发送过来的token,此token一定要牢记,因为日后需要经常使用的
第五步:将自己的机器人添加到需要接收报警消息的telegram个人帐号里,或者telegram群组里面

使用 https://api.telegram.org/bot" 官方发过来token"/getUpdates,获取相应的chat_id,如果机器发个人的,chat是一串纯数字,如果机器人发给群组,chat_id是数据串前带一个-

  使用机器人的API向个人telegram账号发消息(提前是你已经添加此机器人为好友了)的调用格式
curl -X POST "https://api.telegram.org/bot"官方发过来token"/sendMessage" -d "chat_id=$contact&text=$message" &>/dev/null
注意:此种方式只能发送单行消息,如果需要换行,只能使用算定的连接符连接需要换行的多行文本

当然只能改善单行消息这是不完美的,那么怎么办了,有方法,那就是使用python封装一下消息请求就可以了,在这里给大家一个我自己实现的过程脚本


#!/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,并定义触发此动作的条件。
关于此部分的详细配置过程,请参阅博文http://blog.运维网.com/183530300/2089051
   
至此,zabbix调用telegram机器人发送报警消息成功实现,预祝大家配置愉快,如喜欢,请转发加点赞!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-666966-1-1.html 上篇帖子: zabbix集成MegaCli,实现监控磁盘状态 下篇帖子: lnmp+zabbix一键部署脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表