首批通过分布式安全可靠测评,为关键业务系统打造
告警 API 接入示例
更新时间:2023-08-16 15:51:32
本页面为您介绍将 OCP 的告警接入到用户告警平台的操作。
背景信息
将 OCP 的告警接入用户告警平台时,需使用查询告警事件的 API,详情参见 查询告警事件列表 。
场景 1 查看实时告警
当您需要查看系统中的实时告警时,可参考代码示例中的内容进行操作,定时请求查询告警事件列表接口即可获取到当前正在告警的对象。
代码示例
curl 'http://OCP-IP:8080/api/v2/alarm/alarms?isSubscribedByMe=false&status=Active&page=1&size=10' \
--user username:password \
--compressed \
--insecure
其中data.page.totalPages是为实时告警的总页数,可选择查看某一页的告警:如需要查看第2页数据时,将 page 数设置为 2 即可:
curl 'http://OCP-IP:8080/api/v2/alarm/alarms?isSubscribedByMe=false&status=Active&page=2&size=10' \
--user username:password \
--compressed \
--insecure
关键信息说明:
| 参数 | 说明 |
|---|---|
| alarmType | 告警规则名。 |
| activeAt | 告警触发时间,格林尼治标准时间,使用时需转换为当地时间。 |
| updatedAt | 告警更新时间,格林尼治标准时间,使用时需转换为当地时间。 |
| target | 告警对象,如某个集群的某个租户。 |
| description | 告警描述信息。 |
| summary | 告警概述信息。 |
| level | 告警等级。 |
| labels | 其他信息,如:集群(历史版本中为 obregion 或 ob_cluster),租户(tenant_name),主机 IP(svr_ip)等;后缀为_1、_2、_3的为非标准国际化内容,如非必要请不要使用,高版本不兼容该字段。 当前可用的一些 label 说明 告警通道配置样例 。 |
场景 2 对接客户告警平台
参考场景 1 中的代码示例,需定时请求请求查询告警事件列表接口,并更新已接收到的告警对象(target)的状态。
更新信息有:
最近一次告警时间:根据告警触发时间可计算出告警持续时长。
告警状态:若每批次(多个翻页请求获取全部告警中的告警为一个批次)请求接口未返回某个 target 的告警,则该告警置为已恢复状态。
可按告警等级维度实时统计各个告警等级"告警中"的告警数量。
场景 3 验证告警可用性
为防止因告警不可用而未暴露重要风险的隐患,可参考代码示例定期主动触发一次告警,验证告警链路的可用性。
代码示例
主动触发一次告警,如触发日志告警:在某个 OBServer 节点的运行日志中写入下述 ERROR 日志。
echo '[2035-01-02 15:04:05.666666] ERROR [CLOG] update_free_quota (ob_log_file_pool.cpp:413) [1994][2072][Y0-0000000000000000] [lt=19] [dc=0] test ob error for ocp alarm, just ignore. ret=-999999' >> /home/admin/oceanbase/log/observer.log.wf输入如下命令,请求 API 验证该日志告警。
请求参数中,设置关键字(keyword)为日志内容:
系统中出现告警,则证明告警链路可用。