2.9 KiB
HTTP告警推送
http-server-demo 分为三个文件夹。
- headers :http请求头的demo代码
- http-server :http服务端,接收告警推送(无token版本)
- http-server-token :http服务端,接收告警推送(有token版本)
headers
如果需要将盒子产生的告警推送到您自建平台,并且你的平台需要验证token,则需要用到该文件夹下的headers_demo.py文件。
你可自行修改headers_demo.py文件,并将此文件上传到盒子平台的【数据推送】-【告警】-【HTTP】-【配置token】。
headers_demo.py文件说明:
-
类名必须为
Headers,继承BaseHeaders类。BaseHeaders类通过api.http导入from api.http import Headers as BaseHeaders -
定义三个实例变量:
get_headers_url、timeout、interval。
get_headers_url:指定获取token的URL地址。
timeout:指定获取token的超时时间(单位:秒)。
interval:定时刷新headers的时间间隔(单位:秒)。class Headers(BaseHeaders): def __init__(self): self.get_headers_url = None self.timeout = 5 interval = 60 * 10 super().__init__(interval) -
必须实现
_generate_headers方法。返回请求头字典headers。返回示例:{'authorization': 'Bearer abcdefghijklmnopqrstuvwxyz'} -
完整实例如下:
import requests from api.http import Headers as BaseHeaders from logger import LOGGER class Headers(BaseHeaders): def __init__(self): self.get_headers_url = None self.timeout = 5 interval = 60 * 10 super().__init__(interval) def _generate_headers(self): try: headers = { 'authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkXXX' } return headers except: LOGGER.exception('_generate_headers') return None
http-server
该文件夹为http服务端代码,提供python和java代码。它主要用于接收盒子的http告警推送。如果您需要验证盒子的http推送功能是否正常,可使用此文件夹进行测试。 运行该文件夹下的代码,即可开启一个http服务端。在盒子平台的【数据推送】-【告警】-【HTTP】中启用推送管理,并填写http服务端地址,即可开启推送功能。
http-server-token
此文件夹同http-server文件夹,只是增加了token验证功能。
你首先需把其下的headers_demo1.py或headers_demo2.py文件上传到盒子平台的【数据推送】-【告警】-【HTTP】-【配置TOKEN】。
headers_demo1.py:通过调用url接口获取token。(盒子必须可以ping通该url,文件中的get_headers_url变量为http服务端URL)
headers_demo2.py:固定token。