zabbix调用telegram机器人发送报警消息

众所周知,telegram的机器人还是非常好用,而且是免费的,所以这就给监控系统发送报警消息提供了一个非常好的渠道,相信很多朋友已经垂涎三尺了,所以废话不多说,直奔主题吧!br/>?
zabbix系统基础配置部分此处就直接跳过了,如果需求请参阅http://blog.51cto.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.51cto.com/183530300/2089051
?
至此,zabbix调用telegram机器人发送报警消息成功实现,预祝大家配置愉快,如喜欢,请转发加点赞!

原文地址:http://blog.51cto.com/183530300/2124750

时间: 2024-11-08 20:59:41

zabbix调用telegram机器人发送报警消息的相关文章

zabbix通过微信企业号发送图文消息

我有篇博客写到如何用微信发送告警消息,实现了发送文字消息,不能带图片,这样不是很直观,最近又研究了一下如何发送图片,写了脚本实现了发送文字+图片的告警. 效果如下: 先发送文字消息,下面挨着graph. 这里只提供脚本和思路,具体配置请看我的另一篇博客:(http://wuhf2015.blog.51cto.com/8213008/1688614#662543) 实现方式: 在Action中设置Default Subject的格式为"状态:#{TRIGGER.STATUS}#主机:#{HOST.

配置 ZABBIX 使用企业微信发送 Alert 消息

成功的从企业微信中收到的 Alert 消息的样子: Oracle 日志 Alert: 网络专线 Alert: 服务器 Alert: Linux 命令行使用方法: ./workweixin_send.php Usage: workweixin_send.php.php <username> <title> <content> ./workweixin_send.php <这里填写企业个人微信ID> hi 这是一条测试的企业微信消息 Windows 命令行使用方

zabbix 通过执行script发送告警消息

一.写在配置步骤前的话 可以在zabbix web前端设置自动消息告警机制,在http://afterdawn.blog.51cto.com/7503144/1923812 文档中已经介绍过了,下面介绍zabbix通过自动执行Linux主机上的script脚本来进行告警,该告警方式zabbix会传递三个参数并执行定义脚本. script:用来定义信息通道,完成信息传递的脚本: (1)脚本放置位置zabbix_server端:/etc/zabbix/zabbix_server.conf Alert

zabbix生产场景配置发送报警邮件

创建发送邮件的脚本: [[email protected] ~]# cd /usr/lib/zabbix/alertscripts/ [[email protected] alertscripts]# cat email.sh #!/bin/bash email_File=/tmp/email.log #在/tmp目录里面创建email.log文件 function main(){         echo"$3" >$email_File #把邮件内容传入到email.log文

zabbix 设置一定时间内重复发送报警

默认的步骤是1-3,也即是从1开始到3结束.一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给zabbix用户和zabbix administrator组. 假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒.如果改成1-0,0是表示不限制.无限发送 间隔就是默认持续时间60秒.那么一个小时,就会发送60封邮件. 如果需要短信报警的话,可以再创建一条新的动作,选择短信脚本. 也可以在添加新的"操作",比如上面前3次报警

[实例]JAVA调用微信接口发送图文消息,不用跳到详情页

package com.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import org.junit.Test; import net.sf.json.JSONArray;

九爷带你了解 zabbix 飞信以及机器人报警

一.安装飞信 wget http://ebook.elain.org/tools/fetion20101205.tar.gz tar -zxvf fetion20101205.tar.gz -C /usr/local 解压 fetion目录到 /usr/local/下 执行ln -s /usr/local/fetion/lib/lib* /usr/lib/ 添加要接收报警短信的手机号为飞信好友 测试  :/usr/local/fetion/fetion --mobile=1383838438 -

Zabbix用Email介质SMTP发送报警

Zabbix报警大部分使用的是脚本报警,这次我们用SMTP方式发送报警. 在zabbix上设置好了EMail账号还不行,还要在系统里装发送邮件的服务,我们这里用SendMail. 环境: CentOS Linux release 7.1.1503 (Core) 1.检查系统是否安装SendMail. #rpm -qa | grep Sendmail 返回值为空,说明没有安装过. 2.用yum list sedmail看看都需要安装哪些包 #yum list sedmail 3.安装Sendmai

zabbix调用sendsms.py脚本,无法发送短信

zabbix调用python发送短信的操作方法和配置邮件报警类似.过程参考zabbix配置部分. 下面是python的脚本: [[email protected] alertscripts]# cat sendsms.py #!/usr/bin/python import  sys,requests,time MobNum=[sys.argv[1],] of=open("smslog.log",'a') of.writelines(MobNum[0]) Subject=sys.argv