zabbix 配置 Zabbix-in-Telegram
加入你在香港或者其他地方,需要使用Telegram完成zabbix监控告警功能,你可以参考本章。如果在国内,推荐使用丁丁,或者微信,以及QQ等通讯工具。
先决条件
1,打开zabbix配置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
2,申请Telegram机器人
申请机器人参考: https://core.telegram.org/bots#creating-a-new-bot而后参考Zabbix-in-Telegram进行配置:https://github.com/ableev/Zabbix-in-Telegram
配置Zabbix-in-Telegram
克隆代码
[root@Linuxea_Node ~]# git clone https://github.com/ableev/Zabbix-in-Telegram.git
Cloning into 'Zabbix-in-Telegram'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 474 (delta 3), reused 1 (delta 0), pack-reused 465
Receiving objects: 100% (474/474), 169.39 KiB | 182.00 KiB/s, done.
Resolving deltas: 100% (269/269), done.
安装pip
[root@Linuxea_Node ~]# yum install python-pip
安装requirements.txt文件中的依赖
[root@Linuxea_Node ~]# cd Zabbix-in-Telegram/
[root@Linuxea_Node ~/Zabbix-in-Telegram]# pip install -r requirements.txt
复制zbxtg.py zbxtg_settings.example.py zbxtg_group.py
到/usr/lib/zabbix/alertscripts/
[root@Linuxea_Node ~/Zabbix-in-Telegram]# cp zbxtg.py /usr/lib/zabbix/alertscripts
[root@Linuxea_Node ~/Zabbix-in-Telegram]# cp zbxtg_settings.example.py /usr/lib/zabbix/alertscripts/
[root@Linuxea_Node ~/Zabbix-in-Telegram]# cp zbxtg_group.py /usr/lib/zabbix/alertscripts/
而后编辑zbxtg_settings.py,主要修改三个配置信息,如下:
tg_key = "KEY" # telegram bot api key
zbx_server = "http://www.linuxea.com/zabbix/" # zabbix server full url
zbx_api_user = "Admin"
zbx_api_pass = "zabbix"
tg_key就是申请机器人时候生成的。zabbix的用户名密码必须是能够登录的,且有权限的,可以使用Admin
你可以通过 ./zbxtg.py "group name And username" "test" --group
进行测试(你必须先创建群组,而后将bot拉入群内)
配置zabbix-server-web
创建Media types
创建必要的Media types
创建用户
创建用户为后面添加的部分,此前缺少的部分,由于环境不一样,截图有些不同。但是大致的步骤肯定是一样的
- 创建组我们创建必要的用户来进行发送报警信息,为了方便,我们理应创建一个组Administratior-> User group -> Create user group 在user group中填写创建的名字而后在Permissions中选择读权限,而后在select中选择所有,而后点击Add添加组到Permissions,最后Add创建User group
- 创建用户Administratior-> Users -> Create user 在user 中填写创建的名字。在groups中点击select,在弹出的对话框中选择刚创建的telegram_group组,如下图而后在Media中,点击Add在弹出的对话框中,在type中选择创建过的Media types。而send to在本章Telegram的案例中是指Telegram的群名(Zabbix-in-Telegram)。而后选择之发送Disaster的报警
创建 action
登录到页面中在configuration->Actions->Triggers->Create action创建一个action而后在Action的New condition中选择Trigger severity 选择High 和Disaster当发生Disaster和High 就会触发这个动作在Operations中,填写触发后的message,内容如下Default subject:告警主机: {HOST.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID}
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
而后添加用户权限和媒介,如下图Recovery operations中与Operations一样的操作Default subject:恢复主机: {HOST.NAME}
问题详情: {ITEM.NAME}:{ITEM.VALUE}
恢复时间: {EVENT.DATE} {EVENT.TIME}
事件等级: {TRIGGER.SEVERITY}
恢复项目: {TRIGGER.KEY1}
当前状态: {TRIGGER.STATUS}.{ITEM.VALUE}
事件ID: {EVENT.ID}
zbxtg;graphs
zbxtg;graphs_period=10800
zbxtg;itemid:{ITEM.ID1}
zbxtg;title:{HOST.HOST} - {TRIGGER.NAME}
而后将机器人拉入到群内,模拟一次故障成功发送图到Telegram中