开放告警接入Zabbix-阿里云开发者社区

开发者社区> 1704048249035724> 正文

开放告警接入Zabbix

简介: Zabbix作为常用的开源监控系统,提供了丰富的告警规则用于系统监控,同时支持多种告警通知渠道。您可以将日志服务告警系统设为Zabbix的一个通知渠道,由日志服务告警系统完成告警降噪、通知等处理,并且通过包括短信、电话、微信、钉钉、邮箱在内的10多种通知渠道发送给用户。
+关注继续查看

背景

Zabbix作为常用的开源监控系统,提供了丰富的告警规则用于系统监控,同时支持多种告警通知渠道。您可以将日志服务告警系统设为Zabbix的一个通知渠道,由日志服务告警系统完成告警降噪、通知等处理,并且通过包括短信、电话、微信、钉钉、邮箱在内的10多种通知渠道发送给用户

Zabbix接入SLS

要将zabbix的告警消息接入SLS,主要分为两个步骤:在SLS中创建开放告警应用;将SLS开放告警作为新的MediaType接入zabbix。创建开放告警应用的具体步骤,可以参考文章SLS开放告警简介。下面介绍下如何将zabbix的告警消息接入到SLS中。

获取回调地址

在创建开放告警应用之后,通过点击接口按钮,打开如下图所示的回调地址查看窗口。

image.png

回调地址由两部分构成:域名部分和子路径部分。其中域名部分属于SLS的接入地址,和地域相关,每个地域都有各自不同的接入地址;子路径部分包括用于发送消息的Access Key Id和开放告警应用。如下所示为一个完整的SLS回调地址:

cn-heyuan-intranet.log.aliyuncs.com/event/webhook/RAMAK_{ACCESS_KEY_ID}/a123_asdad


其中"cn-heyuan-intranet.log.aliyuncs.com"为域名部分,属于SLS通用的接入地址(endpoint);event/webhook/RAMAK_{ACCESS_KEY_ID}/a123_asdad 则为子路径部分。需要注意的是,用户需要将子路径部分中的{ACCESS_KEY_ID}替换为具体阿里云RAM账户的Access Key Id,并且将权限策略AliyunLogOpenEventWrite赋予该账户;a123_asdad则为该开放告警应用的id,用于唯一区别不同的开放告警应用。

Zabbix接入配置

配置全局变量ZABBIX.SERVER.URL

全局变量{$ZABBIX.SERVER.URL}用来指定zabbix页面的跳转地址,在告警消息中生成跳转链接。如果不设置,使用默认值127.0.0.1。

配置步骤

  1. 在左侧导航栏中,选择Administration > General > Macros
  2. Macros页面中,单击Add
  3. 添加全局变量ZABBIX.SERVER.URL,值为Zabbix控制台的访问地址。

image.png

添加通知渠道Alibaba Cloud SLS (Log Service)

通过导入文件alibaba_cloud_sls.yml将Alibaba Cloud SLS作为新的通知渠道添加到zabbix的media types中。

配置步骤

  1. 在左侧导航栏中,选择Administration > Media types
  2. Media types页面的右上角,单击Import
  3. Import对话框中,选择您已下载的alibaba_cloud_sls.yml文件,选中Update existing,然后单击Import

image.png

  1. Media types页面中,单击Alibaba Cloud SLS (Log Service)
  2. Parameters配置项中,修改hook_url字段的值,然后单击Update

hook_url字段的值修改为您在日志服务中创建开放告警服务和应用后生成的接口信息(完整URL)。如何获取,请参见获取接口信息

image.png

为用户设置通知渠道

添加完新的通知渠道,还需要为用户添加通知刚刚创建的SLS通知渠道。这样发送给该用户的通知消息才能够发送到SLS中。

配置步骤

  1. 在左侧导航栏中,选择Administration > Users
  2. 在用户列表中,单击目标用户。您也可以单击Create user,创建一个新用户。
  3. Media页签中,单击其中一个Media对应的Edit。您也可以单击Add,创建一个新的Media。
  4. Media面板中,选择Type为Alibaba Cloud SLS (Log Service),然后单击Update

image.png

配置触发器

如果您对触发器的通知渠道进行了限制,才需要变更触发器配置,否则保持之前配置即可。

配置步骤

  1. 在左侧导航栏中,选择Configuration > Actions > Trigger actions
  2. Trigger actions页面中,单击您已创建的触发器。
  3. 查看Send only to 选项是否限制了通知渠道(无限制为All),如果没有选择All或者Alibaba Cloud SLS,则该触发器发送的告警消息不会发送到SLS中。所以需要配置为All或者Alibaba Cloud SLS。

image.png

告警消息解析

Zabbix告警消息中包含100多种变量。更多信息,请参见Zabbix官方文档。日志服务只选取其中几十个消息变量组成告警消息。Alibaba Cloud SLS (Log Service)通知渠道发往SLS的告警消息示例,如下所示:

{
    "status": "firing",
    "starts_at": "2021.06.10 19:23:01 +0800",
    "fires_at": "2021.06.11 15:30:32 +0800",
    "resolved_at": "",
    "severity": "medium",
    "alert_name": "test used",
    "alert_id": "19006",
    "alert_instance_id": "1036",
    "drill_down_query": "127.0.0.1/tr_events.php?triggerid=19006&eventid=1036",
    "labels": {
        "host_name": "zabbix-agent"
    },
    "annotations": {
        "event_tags": "Application:Memory",
        "action_id": "3",
        "action_name": "Report problems to Zabbix administrators",
        "event_ack_status": "No",
        "event_age": "20h 7m 31s",
        "event_duration": "20h 7m 31s",
        "event_opdata": "73.34 %",
        "event_status": "PROBLEM",
        "trigger_description": "The system is running out of free memory.",
        "trigger_events_ack": "4",
        "trigger_events_problem_ack": "4",
        "trigger_events_problem_unack": "7",
        "trigger_events_unack": "17",
        "trigger_hostgroup_name": "Linux servers",
        "trigger_expression": "min(/zabbix-agent/vm.memory.utilization,1m)>10",
        "trigger_status": "PROBLEM",
        "trigger_url": "",
        "trigger_value": "1",
        "host_ip": "172.20.240.4",
        "title": "test used",
        "desc": "Trigger test used AT 2021.06.10 19:23:01: The system is running out of free memory."
    }
}

可以看出,大部分的字段名称和zabbix的变量名称是一一对应的,例如event_status字段对应zabbix变量{EVENT_STATUS}。上面的告警消息示例,则会转换为SLS的告警消息:

{
    "aliuid": "aliuid1",
    "alert_instance_id": "1036",
    "alert_id": "19006",
    "alert_type": "sls_pub",
    "alert_name": "test used",
    "region": "",
    "project": "",
    "project_id": 0,
    "next_eval_interval": 0,
    "alert_time": 1626408294,
    "fire_time": 1623324181,
    "fire_results": null,
    "fire_results_count": 0,
    "resolve_time": 0,
    "status": "firing",
    "results": null,
    "labels": {
        "host_name": "zabbix-agent"
    },
    "annotations": {
        "Application": "Memory",
        "__config_app__": "sls_pub_alert",
        "__host_group_name__": "Linux servers",
        "__host_ip__": "172.20.240.4",
        "__pub_alert_app__": "appid1",
        "__pub_alert_protocol__": "zabbix",
        "__pub_alert_region__": "e",
        "__pub_alert_service__": "serverid1",
        "desc": "Trigger test used AT 2021.06.10 19:23:01: The system is running out of free memory.",
        "event_duration": "20h 7m 31s",
        "event_opdata": "73.34 %",
        "title": "test used",
        "trigger_expression": "min(/zabbix-agent/vm.memory.utilization,1m)\\u003e10"
    },
    "severity": 6,
    "policy": {
        "alert_policy_id": "",
        "action_policy_id": "",
        "use_default": false,
        "repeat_interval": "0s"
    },
    "template": null,
    "drill_down_query": "http://127.0.0.1/tr_events.php?triggerid=19006\\u0026eventid=1036"
}

具体的转换规则,请参考官方文档接入Zabbix告警

总结

通过将zabbix告警消息接入到SLS,可以不再受限于zabbix提供的告警功能,从而更为高效的了解以及处理服务出现的问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9905 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2484 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9127 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13645 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4417 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7285 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22311 0
10
文章
0
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载