因为某些特殊网络环境,告警信息往往只能流转于内网不能外发,结合公司当前告警体系,特此开发 N9E 告警转发助手。N9E 需要配置转发助手至告警回调地址,这样子在有告警通知的时候 N9E 就会自动将信息转发给转发助手。
项目地址
https://github.com/iDOKER/Hedwig
最近回顾了一下哈利波特系列全集,项目名字灵感取自哈利波特的猫头鹰,麻瓜觉得作为信使很合适,于是就定下了这个项目名字。
转发架构
告警转发助手会开放 API 回调地址提供给 N9E。在接收到 N9E 的告警信息之后,会对信息数据加密后转换成接口调用数据文件。数据文件可用于传递转发。数据在经过合规检查、通道转发后到达可连接告警平台的网络环境。之后告警转发助手会读取加密的数据文件进行请求还原并提交请求至告警平台。
程序配置
mode: "sender" # receiver 或 sender,表示程序的运行模式
receiver:
listen_address: ":8080" # 接收端的监听地址
output_dir: "./data" # 接收端生成文件的存储目录
header_key: "akIj9DVS99hSj" # 接收端用于校验身份的 header_key
header_value: "mSedMfoRmpSTitL3CBwuYFv9NR4oyfSQRmp" # 接收端用于校验身份的 header_value
encrypt_token : "D512FE7B-22F9-4BC3-8E63-11427462F8E0" # 接收端用于加密数据的 encrypt_token 值为 UUID,可自定义,需要和解密的一致
sender:
watch_dir: "./data" # 发送端监控的目录
target_url: "https://www.example.com/api/XXXXXXXX" # 发送端目标回调接口
timeout: 30 # 发送端的超时时间,单位为秒
retry_count: 2 # 发送端重试次数
retry_interval: 1 # 发送端重试间隔时间,单位为秒
ssl_verify: false # 是否对目标接口的 SSL 证书进行校验
header_key: "akIj9DVS99hSj" # 发送端用于校验身份的 header_key
header_value: "mSedMfoRmpSTitL3CBwuYFv9NR4oyfSQRmp" # 发送端用于校验身份的 header_value
encrypt_token : "D512FE7B-22F9-4BC3-8E63-11427462F8E0" # 发送端用于解密数据的 encrypt_token 值为 UUID,可自定义,需要和加密的一致
common:
file_prefix: "Alarm_" # 文件名前缀,默认为 Hedwig,可自定义
file_suffix: ".tar.gz" # 文件名后缀,默认为 .json,可自定义
log_to_file: false # 是否输出到文件,默认为 false,开启日志级别为 DEBUG 会打印出所有原始数据,可用于审计
log_level: "DEBUG" # 日志级别,可选值有 DEBUG、INFO、WARN、ERROR,默认为 INFO,大小写不敏感
log_dir: "./logs" # 日志文件目录
log_max_size: 100 # 单个日志文件的最大大小,单位为 MB,按照这个大小进行切割,默认为 100 MB
log_max_age: 7 # 保留旧日志文件的最大天数,0 表示无限制,保留多少天的文件
log_max_count: 0 # 保留旧日志文件的最大数量,0 表示无限制,保留多少个文件
data_backup_enable: true # 是否备份已操作的数据,默认为 false
data_backup_dir: "./backup" # 备份数据的目录
data_backup_max_age: 7 # 保留备份数据的最大天数,0 表示无限制
data_backup_max_interval: 10 # 备份数据清理间隔时间,单位为分钟