OpsAny Event智能告警-zabbix-st2 配置
1. st2服务器 准备zabbix包
# 登录st2
st2 login st2admin -p 'Ch@ngeMe'
# 下载zabbix包
st2 pack install zabbix
# 配置zabbix服务
/opt/stackstorm/virtualenvs/zabbix/bin/python /opt/stackstorm/packs/zabbix/tools/register_st2_config_to_zabbix.py -z http://zabbix_host/zabbix/zabbix -u Admin -p zabbix
2. zabbix服务器 报警媒介
-
选择管理报警媒介管理创建媒体类型
-
输入st2相关信息以及固定参数,类型选择Script 脚本名选择st2_dispatch.py
Name: StackStorm Type: Script Script name: st2_dispatch.py Script parameters: https://st2_host/api/v1 https://st2_host/auth/v1 st2admin 'Ch@ngeMe' {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
-
选择Message Templates Add
Subject: Problem: {EVENT.NAME} Message: {"alert_message": "Problem has been resolved at {EVENT.TIME} on {EVENT.DATE} Problem name: {EVENT.NAME} Problem duration: {EVENT.DURATION} Host: {HOST.NAME} Severity: {EVENT.SEVERITY} Original problem ID: {EVENT.ID}", "event_id": "{EVENT.ID}", "host_id": "{HOST.ID}", "name": "{HOST.NAME}", "hostname": "{HOSTNAME}", "event_duration": "{EVENT.DURATION}", "item_name": "{ITEM.NAME}", "item_value": "{ITEM.VALUE}", "trigger_status": "{TRIGGER.STATUS}", "event_date": "{EVENT.DATE}", "event_time": "{EVENT.TIME}", "trigger_severity": "{TRIGGER.SEVERITY}"}
3. zabbix服务器 部署警报脚本
- 该脚本
st2_dispatch.py
将 Zabbix 事件发送到 StackStorm 服务器。将此脚本复制到 Zabbix MediaType 引用的目录中。该目录由AlertScriptsPath
安装zabbix的节点上的zabbix配置文件中的参数指定。
$ grep ' AlertScriptsPath ' /etc/zabbix/zabbix_server.conf
# ## 选项:AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
-
拷贝脚本到zabbix目录
cp /opt/stackstorm/packs/zabbix/tools/scripts/st2_dispatch.py /usr/lib/zabbix/alertscripts/
4. zabbix服务器 配置Action
- 配置动作基本信息
- 配置执行详情
- 选择发送频率
- 选择发送用户
- 选择发送媒介
5. zabbix服务器 配置用户媒介
- 配置用户报警媒介
- 报警等级发送时间段媒介类型
6. st2查看告警
https://st2_host/#/triggers/zabbix.event_handler/instances
查看告警日志: TRIGGERS --> ZABBIX --> event_handler --> INSTANCES