GaussDB-HTTPS告警对接配置常用案例
示例一
| 字段 | 名称 | 是否必填 | 说明 |
|---|---|---|---|
| appKey | - | 是 | - |
| name | 告警名称 | 是 | - |
| entity_name | 告警对象 | 是 | - |
| appname | 系统中文名 | 是 | GaussDB数据库 |
| appenname | 系统英文名 | 是 | GaussDB |
| entity_addr | IP地址 | 是 | - |
| description | 告警信息描述 | 是 | - |
| occur_time | 告警发生时间 | 否 | 时间戳格式,精度到毫秒,13位 |
| serverity | 告警级别 | 是 | 码值如下:0:告警恢复1:通知2:预警3:告警4:严重告警 |
| properties | 扩展属性 | 否 | 扩展字段,存放自定义参数;name,code,val的结构,json格式,样例如下:``` |
| "properties": [ { "val": "001", "code": "test1", "name": "测试1" }, { "val": "002", "code": "test2", "name": "测试2" }] |
**示例说明:**

**白名单内容:**
org.apache.commons.codec.binary.Hex, java.nio.charset.StandardCharsets, java.security.MessageDigest,java.security.NoSuchAlgorithmException, java.text.SimpleDateFormat, java.text.DateFormat,java.text.ParseException, java.lang.Object, java.lang.String, java.lang.StringBuilder,java.lang.Integer, java.lang.Float, java.lang.Long, java.lang.Number, java.lang.Math,java.lang.Double, java.lang.Boolean, org.json.JSONObject,com.alibaba.fastjson.*, java.time.*, java.util.*, java.time.format.*
**默认导入的jar包:**
org.apache.commons.codec.binary.Hex, java.nio.charset.StandardCharsets, java.security.MessageDigest,java.security.NoSuchAlgorithmException, java.text.SimpleDateFormat, java.text.DateFormat,java.text.ParseException, java.lang.Object, java.lang.String, java.lang.StringBuilder,java.lang.Integer, java.lang.Float, java.lang.Long, java.lang.Number, java.lang.Math,java.lang.Double, java.lang.Boolean, java.time.*, java.util.*, java.time.format.*
**若业务场景需要导入其他jar包,可以通过以下步骤修改配置,添加白名单。**
1. 以root用户登录服务器。
1. 执行命令查询告警服务容器ID。
**docker ps -a | grep luban**

1. 执行命令进入告警服务容器。
**docker exec -it a236f5ef56d1 /bin/bash**
1. 执行以下命令,进入配置文件。
**vi /opt/cloud/luban/webapps/DBS-luban/WEB-INF/classes/config.properties**
1. 在配置文件末尾追加白名单配置。
修改alert.service.notification.import.allowed(允许单包加入白名单)、alert.service.notification.import.stat.allowed(允许路径下jar包加入白名单,仅支持一级目录引入)字段,值之间用“,”隔开。
例如:
**alert.service.notification.import.allowed=java.lang.Boolean,java.lang.Boolean.Integer**
**alert.service.notification.import.stat.allowed=java.time.*, java.util.***
1. 按“Esc”键后执行以下命令,保存并退出文件。
**:wq** **!**
1. 修改完成后执行以下命令,重启服务。
**su - service**
**sh /opt/cloud/luban/bin/shutdown.sh**
**sh /opt/cloud/luban/bin/start.sh**
**代码块如下:**
import com.alibaba.fastjson.*;
JSONObject mes = JSON.parseObject(message); body.put("name", mes.getOrDefault("alarmName", "")); body.put("entity_name", mes.getOrDefault("ClusterName", "")); body.put("entity_addr", mes.getOrDefault("HostIP", "")); body.put("description", mes.getOrDefault("Details", ""));
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = mes.getOrDefault("alarmRaisedTime", "").toString(); try { Date parse = df.parse(time); body.put("occur_tim", parse.getTime()); } catch (ParseException ex) { body.put("occur_tim", new Date().getTime()); } String status = mes.getOrDefault("Status", "RAISED").toString(); int levelPar = 0; if (status.equals("RAISED")) { String level = mes.getOrDefault("Level", "INFO").toString(); if (level.equals("FAULT")) { levelPar = 4; } else if (level.equals("CRITICAL")) { levelPar = 3; } else if (level.equals("WARNING")) { levelPar = 2; } else { levelPar = 1; } } body.put("severity", levelPar);
JSONArray properties = new JSONArray(); JSONObject object = new JSONObject(); object.put("val",mes.getOrDefault("ALARMID","")); object.put("code","alert id"); object.put("name","告警 id"); properties.add(object); body.put("properties",properties);
list.add(body);
更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>