Promethus与BMC TrueSight集成实现(第一篇)

整个实现步骤分为四篇:

第一篇:TrueSight接口调试

第二篇:golang HTTP程序编写

第三篇:Promethus Webhook配置

第四篇:docker镜像打包和部署


一、背景

国内几乎没有Promethus与TrueSight集成实现的资料,原因主要还是因为TrueSight比较小众,过去大多是金融行业用得比较多,随后因为微服务架构、K8S、Docker这些的盛行,TrueSight已经很难体现出优势,为此BMC官方也推出了BMC Helix的产品,只是目前国内还未有完整的案例,大多是在实施中。

二、目的

本人使用和运维BMC TrueSight是在2016年,还包括了BMC Remedy、CMDB、ADDM等相关产品,希望通过此次Promethus与TrueSight集成案例,带大家去实现Promethus的事件集成,此方案也可用于需要与Promethus告警事件集成的其他的事件平台,后续也将会更多的带来相关的一些讲解和案例,帮助可能使用或正在使用BMC产品的同学更全面的了解其产品的功能,当然目前我也在着手对BMC相关产品进行技术替换,也将分享给大家。

三、实现方案

实现方案思路为通过GO或python启动HTTP服务,文章里我将以Go为例,实现Prometheus webhook的监听,处理接收到的告警事件,并将事件转发到TrueSight或者其他事件平台上,方法是通用的,大家可以自行尝试。

四、实现步骤及完整代码

1.TrueSight(版本:11.3.05.001)

1.1 TrueSight本身提供了丰富的集成方式,可以将第三方监控工具和业务系统的告警事件集成到BMC Truesight中进行统一处理和展示,包括调用BMC Truesight Restful API、BMC MSEND命令行脚本、SNMP TRAP等方式。

1.2 首先进行本地调用测试,分为2步,第一步:调用truesight认证API接口获取token(24小时有效),第二步:获取token后,再调用发送告警事件API发送事件。(本地用postman等api工具先行进行验证)

1.3 POST获取token请求地址:https://XXXX:8043/tsws/10.0/api/authenticate/login,调用时添加Header:


1.4 请求body参数:

{

"username":"账号",

"password":"密码",

"tenantName":"*"

}

1.5 收到如下返回说明获取token成功


1.6 根据拿到的token进行模拟事件发送,POST接口请求地址:https://XXXX/bppmws/api/Event/create?routingId=这里是pncell的名字&routingIdType=CELL_NAME

1.7 请求header参数(注意:authtoken后面是“空格”+token)


1.8 请求Body参数样例

[

{

"attributes": {

"CLASS": "DIAODU_EV",

"itsm_category": "firing",

"itsm_company": "",

"itsm_location": "",

"itsm_manufacturer": "",

"itsm_product_name": "",

"itsm_item": "cluster.pod.status.phase.not.running-y1k00-6bed5db83e16c8ab82b6668afddbc0c0",

"itsm_operational_category1": "2023-03-01T07:02:27.334013278Z",

"itsm_operational_category2": "0001-01-01T00:00:00Z",

"itsm_operational_category3": "APPLICATION",

"mc_host": "gjtest",

"mc_host_address": "",

"mc_object": "global",

"mc_object_class": "Cluster",

"mc_origin_sev": "Critical",

"mc_parameter": "cluster.memory.utilization",

"mc_parameter_threshold": "0.01",

"mc_parameter_value": "0.27842724083472054",

"msg": "集群的实际内存使用率2 > 0.01 "

}

}

]

1.9 返回成功样例

{

"responseList": [

{

"mc_ueid": "mc.pncell_GDVUTSIMAP01.207ea691.0",

"statusMsg": "OK",

"statusCode": "200"

}

],

"responseTimeStamp": "2023-03-01T10:01:53",

"statusMsg": "OK",

"statusCode": "200"

}

1.10 返回失败样例(例如token失效,token值不对)

{

"responseTimeStamp": "2023-03-01T09:50:34",

"statusMsg": "Authentication failed. Invalid Username/Password OR Invalid/Expired Token",

"statusCode": "401"

}

进行到这步,说明truesight的接口已经调通,下一步将带大家完整实现通过go监听promethus webhook,同时发送到truesight事件平台。

--------------------------------------------

本人录制的微服务与分布式系统实战课程(连载中):https://study.163.com/course/introduction/1213354804.htm?inLoc=ss_ssjg_qblb_%E5%BE%AE%E6%9C%8D%E5%8A%A1

展开阅读全文

页面更新:2024-05-04

标签:步骤   接口   完整   参数   案例   事件   方式   地址   方案   产品

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top