zabbix报警发送到telegram

一、开启telegram机器人

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

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

例如:https://api.telegram.org/bot638034504:AAE-X52syUsH1ytu9FlbVEHrglYKNa-bBYM/getUpdates

二、提前安装telegram模块

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install telegram
pip install python-telegram-bot

三、写好python脚本,放到脚本目录

cat  /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath

AlertScriptsPath=/usr/lib/zabbix/alertscripts

vim  /usr/lib/zabbix/alertscripts/telegram_send_message.py

#!/usr/bin/python
# -*- coding: utf-8 -*-*

#Author: john
#Date:   2018-11-01 18:59:26
#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)

 

第一步:将此脚本放到zabbix服务器上,并授权zabbix账户有执行权限。
第二步:确保你的zabbix服务器python版本是2.7以上,CentOS7默认版本即可
第三步:手动测试使用此脚本发送多行消息,测试示例:python telegram_send_message.py ‘’群组id‘’ 主题:测试信息 $'first line\nsecond line\nthird line'
第四步:zabbix的Administration(管理)->Media types(媒介类型)创建一个新的媒介类型,比如:telegram_send_message

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.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/2124750

 

 

发送到qq邮箱脚本写法

#!/usr/bin/python
import sys
import smtplib
from email.mime.text import MIMEText

_user = "邮箱账号"
_pwd  = "第三方授权码"
_to = sys.argv[1]

msg = MIMEText(sys.argv[3], 'plain', 'utf-8')
msg["Subject"] = sys.argv[2]
msg["From"]    = _user
msg["To"]      = _to

try:
    s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    s.login(_user, _pwd)
    s.sendmail(_user, _to, msg.as_string())
    s.quit()
    print "Success!"
except smtplib.SMTPException,e:
    print "Falied,%s"%e

 

开启各邮箱第三方授权码教程:http://www.91ymb.com/docs/articles/25/ru-he-she-zhi-shou-jian-you-xiang-he-shou-quan-ma

qq:hupqnxuftigfbeei 

你可能感兴趣的:(zabbix报警发送到telegram)