Zabbix4.0通过Telegram发送告警

2023年 7月 15日 114.9k 0

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 types0.png

创建用户

创建用户为后面添加的部分,此前缺少的部分,由于环境不一样,截图有些不同。但是大致的步骤肯定是一样的

  • 创建组我们创建必要的用户来进行发送报警信息,为了方便,我们理应创建一个组Administratior-> User group -> Create user group 在user group中填写创建的名字202003301-1.png而后在Permissions中选择读权限,而后在select中选择所有,而后点击Add添加组到Permissions,最后Add创建User group202003301-2.png
  • 创建用户Administratior-> Users -> Create user 在user 中填写创建的名字。在groups中点击select,在弹出的对话框中选择刚创建的telegram_group组,如下图202003301-3.png而后在Media中,点击Add在弹出的对话框中,在type中选择创建过的Media types。而send to在本章Telegram的案例中是指Telegram的群名(Zabbix-in-Telegram)。而后选择之发送Disaster的报警 202003301-4.png

创建 action

登录到页面中在configuration->Actions->Triggers->Create action创建一个action1.png而后在Action的New condition中选择Trigger severity 选择High 和Disaster1-1.png当发生Disaster和High 就会触发这个动作2.png在Operations中,填写触发后的message,内容如下3.pngDefault 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}

而后添加用户权限和媒介,如下图202003301-5.pngRecovery operations中与Operations一样的操作5.pngDefault 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}

而后将机器人拉入到群内,模拟一次故障202003301-6.png成功发送图到Telegram中7.png

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论