feat: 调度任务添加告警-UDM DB同步检查
This commit is contained in:
@@ -765,6 +765,8 @@ INSERT INTO `sys_dict_data` VALUES (2254, 2254, "job.delete_alarm_record", "删
|
||||
INSERT INTO `sys_dict_data` VALUES (2255, 2255, "job.delete_alarm_record_remark", "storeDays:表示保留最近天数的数据记录", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2256, 2256, "job.delete_ne_config_backup", "删除-过期配置文件备份", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2257, 2257, "job.delete_ne_config_backup_remark", "storeDays:表示保留最近天数的数据记录\r\nstoreNum:保留数量,默认保留7个", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2258, 2258, 'job.ne_alarm_state_check_udmdb_sync', '网元告警-UDM DB同步状态检查', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (2259, 2259, 'job.ne_alarm_state_check_udmdb_sync_remark', '检查网元UDM的DB是否同步状态是否正常,在出现过关闭时发出警报。非master模式下有效', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
-- multi-tenancy
|
||||
INSERT INTO `sys_dict_data` VALUES (11000, 11000, 'menu.security.tenant', '租户管理', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
|
||||
@@ -765,6 +765,8 @@ INSERT INTO `sys_dict_data` VALUES (4254, 4254, "job.delete_alarm_record", "Dele
|
||||
INSERT INTO `sys_dict_data` VALUES (4255, 4255, "job.delete_alarm_record_remark", "storeDays: indicates that the most recent days of data records are kept.", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4256, 4256, "job.delete_ne_config_backup", "Delete-Expired Configuration File Backups", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4257, 4257, "job.delete_ne_config_backup_remark", "storeDays: indicates that the most recent days of data records are kept.\r\nstoreNum: the number of reservations, the default reservation is 7.", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4258, 4258, 'job.ne_alarm_state_check_udmdb_sync', 'NE Alarm-UDM DB Sync Check', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (4259, 4259, 'job.ne_alarm_state_check_udmdb_sync_remark', 'Check whether the UDM network element is database is in a normal synchronized state and issue an alert if it has been shut down. Effective in non-master mode.', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
-- 多租户
|
||||
INSERT INTO `sys_dict_data` VALUES (14000, 14000, 'menu.security.tenant', 'Tenant Management', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
@@ -56,6 +56,7 @@ INSERT INTO `sys_job` VALUES (14, 'job.delete_uenb_record', 'SYSTEM', 'delete_ue
|
||||
INSERT INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
|
||||
INSERT INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
|
||||
INSERT INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
|
||||
INSERT INTO `sys_job` VALUES (23, 'job.ne_alarm_state_check_udmdb_sync', 'SYSTEM', 'ne_alarm_state_check_udmdb_sync', '{\"alarmTitle\":\"NE State Check Alarm UDM DB Sync\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: UDM DB Sync Failed\",\"specificProblemId\":\"AC10300\",\"addInfo\":\"\"}', '0 0/15 * * * ?', '3', '0', '0', '0', 'system', 1698478134839, 'admin', 1756804687256, 'job.ne_alarm_state_check_udmdb_sync_remark');
|
||||
|
||||
INSERT INTO `sys_job` VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{\"backupPath\":\"/u_auth_user\",\"storeDays\":30},{\"backupPath\":\"/u_sub_user\",\"storeDays\":30},{\"backupPath\":\"/u_voip_auth\",\"storeDays\":30},{\"backupPath\":\"/u_ims_user\",\"storeDays\":30},{\"backupPath\":\"/ims_cdr\",\"storeDays\":30},{\"backupPath\":\"/smsc_cdr\",\"storeDays\":30},{\"backupPath\":\"/smf_cdr\",\"storeDays\":30},{\"backupPath\":\"/sgwc_cdr\",\"storeDays\":30},{\"backupPath\":\"/operate_log\",\"storeDays\":30,\"storeNum\":7},{\"backupPath\":\"/log/login_log\",\"storeDays\":30,\"storeNum\":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
|
||||
INSERT INTO `sys_job` VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{\"dataType\":[\"auth\",\"sub\",\"voip\",\"volte\"],\"fileType\":\"txt\"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');
|
||||
|
||||
@@ -772,6 +772,8 @@ REPLACE INTO `sys_dict_data` VALUES (2254, 2254, "job.delete_alarm_record", "删
|
||||
REPLACE INTO `sys_dict_data` VALUES (2255, 2255, "job.delete_alarm_record_remark", "storeDays:表示保留最近天数的数据记录", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2256, 2256, "job.delete_ne_config_backup", "删除-过期配置文件备份", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2257, 2257, "job.delete_ne_config_backup_remark", "storeDays:表示保留最近天数的数据记录\r\nstoreNum:保留数量,默认保留7个", 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2258, 2258, 'job.ne_alarm_state_check_udmdb_sync', '网元告警-UDM DB同步状态检查', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (2259, 2259, 'job.ne_alarm_state_check_udmdb_sync_remark', '检查网元UDM的DB是否同步状态是否正常,在出现过关闭时发出警报。非master模式下有效', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
-- multi-tenancy
|
||||
REPLACE INTO `sys_dict_data` VALUES (11000, 11000, 'menu.security.tenant', '租户管理', 'i18n_zh', NULL, NULL, '1', 'supervisor', 1700000000000, NULL, 0, NULL);
|
||||
|
||||
@@ -773,6 +773,8 @@ REPLACE INTO `sys_dict_data` VALUES (4254, 4254, "job.delete_alarm_record", "Del
|
||||
REPLACE INTO `sys_dict_data` VALUES (4255, 4255, "job.delete_alarm_record_remark", "storeDays: indicates that the most recent days of data records are kept.", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4256, 4256, "job.delete_ne_config_backup", "Delete-Expired Configuration File Backups", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4257, 4257, "job.delete_ne_config_backup_remark", "storeDays: indicates that the most recent days of data records are kept.\r\nstoreNum: the number of reservations, the default reservation is 7.", 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4258, 4258, 'job.ne_alarm_state_check_udmdb_sync', 'NE Alarm-UDM DB Sync Check', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
REPLACE INTO `sys_dict_data` VALUES (4259, 4259, 'job.ne_alarm_state_check_udmdb_sync_remark', 'Check whether the UDM network element is database is in a normal synchronized state and issue an alert if it has been shut down. Effective in non-master mode.', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
-- 多租户
|
||||
REPLACE INTO `sys_dict_data` VALUES (14000, 14000, 'menu.security.tenant', 'Tenant Management', 'i18n_en', '', '', '1', 'supervisor', 1705550000000, '', 0, '');
|
||||
|
||||
@@ -60,6 +60,7 @@ REPLACE INTO `sys_job` VALUES (14, 'job.delete_uenb_record', 'SYSTEM', 'delete_u
|
||||
REPLACE INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
|
||||
REPLACE INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
|
||||
REPLACE INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
|
||||
REPLACE INTO `sys_job` VALUES (23, 'job.ne_alarm_state_check_udmdb_sync', 'SYSTEM', 'ne_alarm_state_check_udmdb_sync', '{\"alarmTitle\":\"NE State Check Alarm UDM DB Sync\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: UDM DB Sync Failed\",\"specificProblemId\":\"AC10300\",\"addInfo\":\"\"}', '0 0/15 * * * ?', '3', '0', '0', '0', 'system', 1698478134839, 'admin', 1756804687256, 'job.ne_alarm_state_check_udmdb_sync_remark');
|
||||
|
||||
REPLACE INTO `sys_job` VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{\"backupPath\":\"/u_auth_user\",\"storeDays\":30},{\"backupPath\":\"/u_sub_user\",\"storeDays\":30},{\"backupPath\":\"/u_voip_auth\",\"storeDays\":30},{\"backupPath\":\"/u_ims_user\",\"storeDays\":30},{\"backupPath\":\"/ims_cdr\",\"storeDays\":30},{\"backupPath\":\"/smsc_cdr\",\"storeDays\":30},{\"backupPath\":\"/smf_cdr\",\"storeDays\":30},{\"backupPath\":\"/sgwc_cdr\",\"storeDays\":30},{\"backupPath\":\"/operate_log\",\"storeDays\":30,\"storeNum\":7},{\"backupPath\":\"/log/login_log\",\"storeDays\":30,\"storeNum\":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
|
||||
REPLACE INTO `sys_job` VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{\"dataType\":[\"auth\",\"sub\",\"voip\",\"volte\"],\"fileType\":\"txt\"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');
|
||||
|
||||
@@ -10,4 +10,6 @@ const (
|
||||
ALARM_CMD_CHECK = 10001
|
||||
// ALARM_LICENSE_CHECK 告警-网元License到期检查
|
||||
ALARM_LICENSE_CHECK = 10002
|
||||
// ALARM_UDM_DB_SYNC 告警-UDM DB同步检查
|
||||
ALARM_UDM_DB_SYNC = 10003
|
||||
)
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
package ne_alarm_state_check_udmdb_sync
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"be.ems/src/framework/constants"
|
||||
"be.ems/src/framework/cron"
|
||||
"be.ems/src/framework/database/redis"
|
||||
"be.ems/src/framework/logger"
|
||||
|
||||
neDataModel "be.ems/src/modules/network_data/model"
|
||||
neDataService "be.ems/src/modules/network_data/service"
|
||||
neModel "be.ems/src/modules/network_element/model"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
wsService "be.ems/src/modules/ws/service"
|
||||
)
|
||||
|
||||
var NewProcessor = &NeAlarmStateCheckUDMDBProcessor{
|
||||
neConfigBackupService: neService.NewNeConfigBackup,
|
||||
neInfoService: neService.NewNeInfo,
|
||||
alarmService: neDataService.NewAlarm,
|
||||
wsSendService: wsService.NewWSSend,
|
||||
count: 0,
|
||||
}
|
||||
|
||||
// NeAlarmStateCheckUDMDBProcessor 告警-UDM DB同步检查
|
||||
type NeAlarmStateCheckUDMDBProcessor struct {
|
||||
neConfigBackupService *neService.NeConfigBackup // 网元配置文件备份记录服务
|
||||
neInfoService *neService.NeInfo // 网元信息服务
|
||||
alarmService *neDataService.Alarm // 告警信息服务
|
||||
wsSendService *wsService.WSSend // ws发送服务
|
||||
count int // 执行次数
|
||||
}
|
||||
|
||||
// alarmParams 告警参数
|
||||
type alarmParams struct {
|
||||
AlarmTitle string `json:"alarmTitle"` // NE State Check Alarm UDM DB Sync
|
||||
AlarmType string `json:"alarmType"` // EquipmentAlarm=2
|
||||
OrigSeverity string `json:"origSeverity"` // Major=2
|
||||
SpecificProblem string `json:"specificProblem"` // Alarm Cause: UDM DB Sync Failed
|
||||
SpecificProblemID string `json:"specificProblemId"` // AC10300
|
||||
AddInfo string `json:"addInfo"` // 告警补充信息
|
||||
|
||||
// === 非参数字段 ===
|
||||
AlarmId string // 告警ID
|
||||
}
|
||||
|
||||
func (s *NeAlarmStateCheckUDMDBProcessor) Execute(data any) (any, error) {
|
||||
s.count++ // 执行次数加一
|
||||
options := data.(cron.JobData)
|
||||
sysJob := options.SysJob
|
||||
logger.Infof("重复:%v 任务ID:%s 执行次数:%d", options.Repeat, sysJob.JobID, s.count)
|
||||
// 返回结果,用于记录执行结果
|
||||
result := map[string]any{
|
||||
"count": s.count,
|
||||
}
|
||||
|
||||
// 读取参数值
|
||||
var params alarmParams
|
||||
err := json.Unmarshal([]byte(sysJob.TargetParams), ¶ms)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("json params err: %v", err)
|
||||
}
|
||||
|
||||
neList := s.neInfoService.SelectList(neModel.NeInfo{NeType: "UDM"}, true, false)
|
||||
for _, neInfo := range neList {
|
||||
// 检查状态
|
||||
err := s.serverState(neInfo)
|
||||
if err == nil {
|
||||
continue
|
||||
}
|
||||
if params.AddInfo != "" {
|
||||
params.AddInfo = params.AddInfo + ", " + err.Error()
|
||||
} else {
|
||||
params.AddInfo = err.Error()
|
||||
}
|
||||
|
||||
neTypeAndId := fmt.Sprintf("%s_%s", neInfo.NeType, neInfo.NeId)
|
||||
// 告警ID
|
||||
params.AlarmId = fmt.Sprintf("%d%d", constants.ALARM_UDM_DB_SYNC, neInfo.CreateTime)
|
||||
// 检查网元告警ID是否唯一
|
||||
alarmIdArr := s.alarmService.Find(neDataModel.Alarm{
|
||||
NeType: neInfo.NeType,
|
||||
NeId: neInfo.RmUID,
|
||||
AlarmId: params.AlarmId,
|
||||
})
|
||||
// 告警状态, 存在的需要手动清除
|
||||
alarmStatus := ""
|
||||
if len(alarmIdArr) > 0 {
|
||||
alarmStatus = fmt.Sprint(alarmIdArr[0].AlarmStatus)
|
||||
}
|
||||
// 活动告警进行清除
|
||||
if alarmStatus == "1" {
|
||||
clearAlarm, err := s.alarmClear(neInfo, alarmIdArr[0])
|
||||
if err != nil {
|
||||
result[neTypeAndId] = err.Error()
|
||||
continue
|
||||
}
|
||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
||||
s.wsSendService.ByGroupID(groupID, clearAlarm)
|
||||
result[neTypeAndId] = "alarm clear"
|
||||
alarmStatus = "" // 标记为未记录再次发起新告警
|
||||
}
|
||||
// 未记录
|
||||
if alarmStatus == "" {
|
||||
addInfo := params.AddInfo
|
||||
if params.AddInfo != "" {
|
||||
params.AddInfo = params.AddInfo + ", " + err.Error()
|
||||
} else {
|
||||
params.AddInfo = err.Error()
|
||||
}
|
||||
// 进行新增
|
||||
newAlarm, err := s.alarmNew(neInfo, params)
|
||||
params.AddInfo = addInfo // 恢复附加信息
|
||||
if err != nil {
|
||||
result[neTypeAndId] = err.Error()
|
||||
continue
|
||||
}
|
||||
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
|
||||
s.wsSendService.ByGroupID(groupID, newAlarm)
|
||||
result[neTypeAndId] = "alarm new"
|
||||
}
|
||||
}
|
||||
|
||||
// 返回结果,用于记录执行结果
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// serverState 网元状态
|
||||
func (s NeAlarmStateCheckUDMDBProcessor) serverState(neInfo neModel.NeInfo) error {
|
||||
// 网元主机的Redis客户端
|
||||
source := fmt.Sprintf("UDM_%s", neInfo.NeId)
|
||||
redisClient, err := neService.NewNeInfo.NeRunRedisClient("UDM", neInfo.NeId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func() {
|
||||
redisClient.Close()
|
||||
redis.ConnectPush(source, nil)
|
||||
}()
|
||||
redis.ConnectPush(source, redisClient.Client)
|
||||
|
||||
// 数据源
|
||||
rdb := redis.RDB(source)
|
||||
if rdb == nil {
|
||||
return fmt.Errorf("redis not client")
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
replication, err := rdb.Info(ctx, "replication").Result()
|
||||
if err != nil {
|
||||
logger.Errorf("redis info replication err:%s", err.Error())
|
||||
return fmt.Errorf("redis info replication err")
|
||||
}
|
||||
|
||||
master_host := "master_host:"
|
||||
master_port := "master_port:"
|
||||
lines := strings.SplitSeq(replication, "\r\n")
|
||||
for line := range lines {
|
||||
if line == "role:master" {
|
||||
return nil
|
||||
}
|
||||
// "role:active-replica"
|
||||
if line == "master_link_status:up" {
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.HasPrefix(line, master_host) {
|
||||
arr := strings.Split(line, ":")
|
||||
if len(arr) == 2 {
|
||||
master_host = arr[1]
|
||||
}
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(line, master_port) {
|
||||
arr := strings.Split(line, ":")
|
||||
if len(arr) == 2 {
|
||||
master_port = arr[1]
|
||||
}
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
return fmt.Errorf("host:%s, port:%s, status down", master_host, master_port)
|
||||
}
|
||||
|
||||
// alarmClear 清除告警
|
||||
func (s NeAlarmStateCheckUDMDBProcessor) alarmClear(neInfo neModel.NeInfo, v neDataModel.Alarm) (neDataModel.Alarm, error) {
|
||||
// 变更告警ID为告警清除ID
|
||||
v.AlarmId = fmt.Sprintf("%s%d", v.AlarmCode, v.EventTime.UnixMilli())
|
||||
v.AlarmStatus = "0"
|
||||
// 告警清除
|
||||
clearTime := time.UnixMilli(neInfo.UpdateTime)
|
||||
v.ClearType = "1"
|
||||
v.ClearTime = &clearTime
|
||||
v.ClearUser = "system"
|
||||
rows := s.alarmService.Update(v)
|
||||
if rows > 0 {
|
||||
return v, nil
|
||||
}
|
||||
return neDataModel.Alarm{}, fmt.Errorf("clear alarm fail")
|
||||
}
|
||||
|
||||
// alarmNew 新增告警
|
||||
func (s NeAlarmStateCheckUDMDBProcessor) alarmNew(neInfo neModel.NeInfo, v alarmParams) (neDataModel.Alarm, error) {
|
||||
// seq 告警序号
|
||||
lastSeq := s.alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.RmUID)
|
||||
lastTime := neInfo.UpdateTime // 网元最后更新时间
|
||||
if lastTime < neInfo.CreateTime {
|
||||
lastTime = time.Now().UnixMilli()
|
||||
}
|
||||
alarm := neDataModel.Alarm{
|
||||
NeType: neInfo.NeType,
|
||||
NeId: neInfo.RmUID, // neInfo.NeId,
|
||||
NeName: neInfo.NeName,
|
||||
Province: neInfo.Province,
|
||||
PvFlag: neInfo.PvFlag,
|
||||
AlarmSeq: fmt.Sprint(lastSeq + 1),
|
||||
AlarmId: v.AlarmId,
|
||||
AlarmTitle: v.AlarmTitle,
|
||||
AlarmCode: fmt.Sprint(constants.ALARM_LICENSE_CHECK),
|
||||
EventTime: time.UnixMilli(lastTime),
|
||||
AlarmType: v.AlarmType,
|
||||
OrigSeverity: v.OrigSeverity,
|
||||
PerceivedSeverity: v.OrigSeverity,
|
||||
ObjectUid: neInfo.RmUID,
|
||||
ObjectName: "UDM DB Sync",
|
||||
ObjectType: "db_sync",
|
||||
LocationInfo: "UDM DB Sync Cheack",
|
||||
AlarmStatus: "1", // 活动告警
|
||||
SpecificProblem: v.SpecificProblem,
|
||||
SpecificProblemId: v.SpecificProblemID,
|
||||
AddInfo: v.AddInfo,
|
||||
Counter: "0",
|
||||
AckState: "0",
|
||||
ClearType: "0",
|
||||
}
|
||||
insertId := s.alarmService.InsertAndForword(alarm)
|
||||
if insertId != "" {
|
||||
alarm.ID = insertId
|
||||
return alarm, nil
|
||||
}
|
||||
return neDataModel.Alarm{}, fmt.Errorf("new alarm fail")
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
processorNeAlarmStateCheck "be.ems/src/modules/crontask/processor/ne_alarm_state_check"
|
||||
processorNeAlarmStateCheckCMD "be.ems/src/modules/crontask/processor/ne_alarm_state_check_cmd"
|
||||
processorNeAlarmStateCheckLicense "be.ems/src/modules/crontask/processor/ne_alarm_state_check_license"
|
||||
processorNeAlarmStateCheckUDMDB "be.ems/src/modules/crontask/processor/ne_alarm_state_check_udmdb_sync"
|
||||
processorNeConfigBackup "be.ems/src/modules/crontask/processor/ne_config_backup"
|
||||
processorNeDataUDM "be.ems/src/modules/crontask/processor/ne_data_udm"
|
||||
"be.ems/src/modules/crontask/processor/removeFile"
|
||||
@@ -62,6 +63,8 @@ func InitCronQueue() {
|
||||
cron.CreateQueue("ne_alarm_state_check_cmd", processorNeAlarmStateCheckCMD.NewProcessor)
|
||||
// 网元告警-License到期检查
|
||||
cron.CreateQueue("ne_alarm_state_check_license", processorNeAlarmStateCheckLicense.NewProcessor)
|
||||
// 网元告警-UDMDB同步检查
|
||||
cron.CreateQueue("ne_alarm_state_check_udmdb_sync", processorNeAlarmStateCheckUDMDB.NewProcessor)
|
||||
|
||||
// 备份-删除备份目录下文件
|
||||
cron.CreateQueue("backup_remove_file", processorBackupRemoveFile.NewProcessor)
|
||||
|
||||
Reference in New Issue
Block a user