一、开启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