/alarm

Primary LanguageGo

EagleEyes-alarm

介绍

EagleEyes-alarm是EagleEyes的报警模块,主要负责将来自BackEnd的报警信息通过邮件的方式(暂定)发送至处理人的邮箱。发送时可根据报警的优先级进行延迟打包发送邮件。

工作流程

程序在进程开始时会进行一些初始化工作,包括读取配置的目的IP,初始化接受队列线程,创建管道,读取发件人的信息,然后会监听一个HTTP端口,只接受配置文件中的IP发来的消息。当BackEnd发来报警消息时,HTTP服务端会解析发来的JSON,打包成结构,根据其中的优先级信息将包发给不同的队列,每个队列之上有一个每隔N秒的取包线程,这个秒数根据报警级别而定,该线程会在计时器到后将队列中所有现有的包拿出,如果目标是同一收件人,就将消息打包后发送Email。

消息格式

消息类型是JSON格式,以HTTP形式传输

消息的总体结构
消息格式 类型 说明
alarmmsg 数组 存储报警信息
host 对象 存储发送主机信息
alarmmsg的结构
消息格式 类型 说明
alarmname 字符串 报警项名字
alarmvalue 字符串 报警项指标
host的结构
消息格式 类型 说明
srcip 字符串 主机IP
hostname 字符串 主机名
destemail 字符串 收件人Email
grade 整型 报警级别
示例
{
    "alarmmsg":[{"alarmname":"cpu", "alarmvalue":"50"},{"alarmname":"mem", "alarmvalue":"70"}],
    "host":{"srcip":"1.2.3.4", "hostname":"bj01", "dest":"xxx@xxx.com", "grade":3}
}

表示本次报警内容是cpumem报警,值分别是5070,报警主机IP是1.2.3.4, 主机名为bj01, 收件人邮箱为xxx@xxx.com, 报警级别为3