diff options
| author | shizhendong <[email protected]> | 2024-06-03 10:26:56 +0800 |
|---|---|---|
| committer | shizhendong <[email protected]> | 2024-06-03 10:26:56 +0800 |
| commit | d80bd3ba360c2834f194d80570dda60f69d0be57 (patch) | |
| tree | 62da1675c100756d78f7d4070aed48ec1c392dcf | |
| parent | 464894b5ea2347e78cd8fe55ce7c81f057e14fea (diff) | |
Revert "feat: NEZ-3484 新增 log setting 接口"
This reverts commit 464894b5
| -rw-r--r-- | nz-admin/src/main/java/com/nis/common/job/JobConfig.java | 33 | ||||
| -rw-r--r-- | nz-admin/src/main/java/com/nis/modules/sys/controller/SysConfController.java | 32 | ||||
| -rw-r--r-- | nz-admin/src/main/java/com/nis/modules/sys/job/CleanJob.java | 15 | ||||
| -rw-r--r-- | nz-admin/src/main/java/com/nis/modules/sys/service/SysConfService.java | 4 | ||||
| -rw-r--r-- | nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysConfServiceImpl.java | 118 | ||||
| -rw-r--r-- | nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredTerminalRecordDataJob.java (renamed from nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredAuditLogDataJob.java) | 42 | ||||
| -rw-r--r-- | nz-admin/src/main/resources/db/V2024.05.30__add sys_config operation_log_retention conf.sql | 4 |
7 files changed, 152 insertions, 96 deletions
diff --git a/nz-admin/src/main/java/com/nis/common/job/JobConfig.java b/nz-admin/src/main/java/com/nis/common/job/JobConfig.java index 9e939621..c3a1d984 100644 --- a/nz-admin/src/main/java/com/nis/common/job/JobConfig.java +++ b/nz-admin/src/main/java/com/nis/common/job/JobConfig.java @@ -17,7 +17,7 @@ import com.nis.modules.election.job.HaJob; import com.nis.modules.endpoint.job.MetricTypeEndpointStatusJob; import com.nis.modules.sys.job.*; import com.nis.modules.sys.service.SysConfService; -import com.nis.modules.terminal.job.CleanExpiredAuditLogDataJob; +import com.nis.modules.terminal.job.CleanExpiredTerminalRecordDataJob; import com.nis.modules.terminal.job.CleanNoRealUseTerminalConnJob; import org.apache.commons.lang.StringUtils; import org.quartz.*; @@ -73,8 +73,8 @@ public class JobConfig { @Value("${nezha.sessionTimeOutJobCron:0 0/5 * * * ? *}") private String sessionTimeOutJobCron; - @Value("${nezha.cleanJobCron:0 0 1 * * ?}") - private String cleanJobCron; + @Value("${nezha.terminalCleanJobCron:0 0 1 * * ?}") + private String terminalCleanJobCron; @Value("${nezha.sysComponentJobCron:0/30 * * * * ?}") private String sysComponentJobCron; @@ -94,8 +94,8 @@ public class JobConfig { @Value("${nezha.cleanNoRealUseTerminalConnJobCron:0 0/5 * * * ? *}") private String cleanNoRealUseTerminalConnJobCron; - @Value("${nezha.cleanExpiredAuditLogDataJobCron:0 0 1 * * ?}") - private String cleanExpiredAuditLogDataJobCron; + @Value("${nezha.cleanExpiredTerminalRecordDataJobCron:0 0 1 * * ?}") + private String cleanExpiredTerminalRecordDataJobCron; @Value("${nezha.sysBackFileSyncJobCron:0 0 3 * * ?}") private String sysBackFileSyncJobCron; @@ -116,8 +116,9 @@ public class JobConfig { private Scheduler scheduler; @Autowired private SysConfService sysConfService; - - private static final String JOB_NAME = "NZJOB_"; +// @Qualifier("costomSchedulerFactoryBean") + //private SchedulerFactoryBean schedulerFactoryBean; + private static final String JOB_NAME = "NZJOB"; private String agentJobName = "AGENT_JOB"; private String agentHealthCheckJobName = "AGENTHEALTHY_JOB"; private String alertSilenceStatusJobName = "ALERTSILENCESTATUS_JOB"; @@ -136,7 +137,7 @@ public class JobConfig { private String alertMessageHistoryPartManJobName = "ALERTMESSAGEHISTORYPARTMAN_JOB"; private String recordtRuleManagerJobName = "RECORDTRULEMANAGER_JOB"; private String cleanNoRealUseTerminalConnJobName = "CLEANNOREALUSETERMINALCONN_JOB"; - private String cleanExpiredAuditLogDataJobDetail = "CLEAN_EXPIRED_AUDIT_LOG_DATA_JOB"; + private String cleanExpiredTerminalRecordDataJob = "CLEAN_EXPIRED_TERMINAL_RECORD_DATA_JOB"; private String sysBackFileSyncJob = "SYS_BACKUP_SYNC_JOB"; private String sysLoginSessionCleanJob = "SYS_LOGIN_SESSION_CLEAN_JOB"; private String softwareLicenseStatusJobName = "SOFTWARE_LICENSE_STATUS_JOB"; @@ -234,8 +235,8 @@ public class JobConfig { } @Bean - public JobDetail cleanExpiredAuditLogDataJobDetail() { - return JobBuilder.newJob(CleanExpiredAuditLogDataJob.class).withIdentity(JOB_NAME + cleanExpiredAuditLogDataJobDetail).storeDurably().build(); + public JobDetail cleanExpiredTerminalRecordDataJobDetail() { + return JobBuilder.newJob(CleanExpiredTerminalRecordDataJob.class).withIdentity(JOB_NAME + cleanExpiredTerminalRecordDataJob).storeDurably().build(); } @Bean @@ -299,6 +300,9 @@ public class JobConfig { // session time out job 如果配置文件没有配置定时周期 默认为5分钟执行一次 createCronScheduleJob(sessionTimeOutJobName, sessionTimeOutJobDetail(), StringUtils.isEmpty(sessionTimeOutJobCron) ? "0 0/5 * * * ? *" : sessionTimeOutJobCron); + // terminal clean job 如果配置文件没有配置定时周期 每天凌晨1点执行一次 + createCronScheduleJob(cleanJobCronName, cleanJobDetail(), StringUtils.isEmpty(terminalCleanJobCron) ? "0 0 1 * * ?" : terminalCleanJobCron); + //sys component 状态更新线程 createCronScheduleJob(sysComponentJobName, sysComponentJobDetail(), StringUtils.isEmpty(sysComponentJobCron) ? "0/30 * * * * ?" : sysComponentJobCron); @@ -317,6 +321,9 @@ public class JobConfig { // 清理没有真实使用的 terminal ssh/telnet 连接,以超过最后数据交互时间 30 分钟为准 (sys_config.session_timeout) createCronScheduleJob(cleanNoRealUseTerminalConnJobName, cleanNoRealUseTerminalConnJobDetail(), StringUtils.isEmpty(cleanNoRealUseTerminalConnJobCron) ? "0 0/5 * * * ? *" : cleanNoRealUseTerminalConnJobCron); + // terminal record expired data clean job + createCronScheduleJob(cleanExpiredTerminalRecordDataJob, cleanExpiredTerminalRecordDataJobDetail(), Tool.StrUtil.emptyToDefault(cleanExpiredTerminalRecordDataJobCron, "0 0 1 * * ?")); + // SysBackFileSyncJob createCronScheduleJob(sysBackFileSyncJob, sysBackFileSyncJobDetail(), Tool.StrUtil.emptyToDefault(sysBackFileSyncJobCron, "0 0 3 * * ?")); @@ -330,12 +337,6 @@ public class JobConfig { // nz_agent_status metrics 定时更新任务 createCronScheduleJob(agentStatusMetricsUpdaterJobName, agentStatusMetricsUpdaterJobDetail(), Tool.StrUtil.emptyToDefault(agentStatusMetricsUpdaterJobCron, "0 0/1 * * * ? *")); - - // system clean job - createCronScheduleJob(cleanJobCronName, cleanJobDetail(), Tool.StrUtil.emptyToDefault(cleanJobCron, "0 0 1 * * ?")); - - // 清理过期的审计日志数据任务 - createCronScheduleJob(cleanExpiredAuditLogDataJobDetail, cleanExpiredAuditLogDataJobDetail(), Tool.StrUtil.emptyToDefault(cleanExpiredAuditLogDataJobCron, "0 0 1 * * ?")); } /** diff --git a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysConfController.java b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysConfController.java index e2807766..c68d79f2 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/controller/SysConfController.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/controller/SysConfController.java @@ -101,6 +101,23 @@ public class SysConfController { return R.ok(); } + /** + * 系统重置 + * @param param + * @return + */ + /*@PutMapping("/reset") + @SysLog(operation = OperationEnum.RESET,type = TypeEnum.SYS_CONF) + @RequiresPermissions({"sys:config:reset"}) + public R resetConfig(@RequestBody Map<String, Object> param) throws IOException,RuntimeException{ + try { + sysConfService.resetConfig(param); + }catch (IOException | RuntimeException e){ + throw e; + } + return R.ok(); + }*/ + @GetMapping("/key/{configKey}") @SysLog(operation = OperationEnum.QUERY,type = TypeEnum.SYS_CONF) public R querySysConfig(@PathVariable("configKey") String configKey){ @@ -108,19 +125,4 @@ public class SysConfController { return R.ok(result); } - @GetMapping("/auditlog") - @SysLog(operation = OperationEnum.QUERY, type = TypeEnum.SYS_CONF) - public R auditlog() { - Map<String, String> result = sysConfService.batchQuery(SysConfServiceImpl.AUDITLOG_KEYS); - return R.ok(result); - } - - @PutMapping("/auditlog") - @SysLog(operation = OperationEnum.UPDATE, type = TypeEnum.SYS_CONF) - @RequiresPermissions({"sys:config:update"}) - public R auditlog(@RequestBody Map<String, String> params) { - sysConfService.saveAuditlog(params); - return R.ok(); - } - } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/job/CleanJob.java b/nz-admin/src/main/java/com/nis/modules/sys/job/CleanJob.java index 0ebdb6d4..8b85a0c1 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/job/CleanJob.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/job/CleanJob.java @@ -61,6 +61,21 @@ public class CleanJob extends QuartzJobBean { DateTime now = Tool.DateUtil.date(); StopWatch sw = new StopWatch(); + // terminal_* +// String terminalRecordLocalRetention = sysConfService.getValue("terminal_record_local_retention"); +// terminalRecordLocalRetention = Tool.StrUtil.emptyToDefault(terminalRecordLocalRetention, "365"); +// DateTime startCleanTerminalTime = Tool.DateUtil.offsetDay(now, -Integer.valueOf(terminalRecordLocalRetention)); +// sw.start(); +// try { +// log.info("start clean terminal data"); +// terminalSessionService.cleanExpiredDataByTime(startCleanTerminalTime); +// } catch (Exception e) { +// log.error("clean terminal data error", e); +// } finally { +// sw.stop(); +// } +// log.info("clean terminal data Run Time: {}", sw.toString()); + // alert_rule_eval_log String ruleEvalLogLocalRetention = sysConfService.getValue("alert_rule_eval_log_local_retention"); ruleEvalLogLocalRetention = Tool.StrUtil.emptyToDefault(ruleEvalLogLocalRetention, "30"); diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/SysConfService.java b/nz-admin/src/main/java/com/nis/modules/sys/service/SysConfService.java index 3c5d212f..e7b44165 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/SysConfService.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/SysConfService.java @@ -33,6 +33,8 @@ public interface SysConfService extends IService<SysConfigEntity> { void saveLdap(Map<String, String> params); + // void resetConfig(Map<String, Object> param) throws IOException; + void saveMonitor(Map<String, String> params); Map<String, Object> querySysConfig(String configKey); @@ -48,6 +50,4 @@ public interface SysConfService extends IService<SysConfigEntity> { void reloadSysConfigToCache(); - void saveAuditlog(Map<String, String> params); - } diff --git a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysConfServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysConfServiceImpl.java index 0150c678..f3690ce9 100644 --- a/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysConfServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/sys/service/impl/SysConfServiceImpl.java @@ -88,19 +88,6 @@ public class SysConfServiceImpl extends ServiceImpl<SysConfDao, SysConfigEntity> public static final String[] LDAP_REQUIRED={"ldap_address","ldap_dn","ldap_user_filter","ldap_mapping","ldap_enable","ldap_timeout"}; - public static final String[] AUDITLOG_KEYS = {"operation_log_retention", "terminal_record_local_retention", "terminal_storage_type", "terminal_storage_s3_endpoint", "terminal_storage_s3_bucket", "terminal_storage_s3_access_key", "terminal_storage_s3_secret_access_key"}; - - public static final String[] AUDITLOG_REQUIRED = {"operation_log_retention", "terminal_record_local_retention", "terminal_storage_type"}; - - public static final String[] AUDITLOG_INTEGER = {"operation_log_retention", "terminal_record_local_retention", "terminal_storage_type"}; - - public static final String[][] AUDITLOG_DEPEND = { - {"terminal_storage_s3_endpoint", "terminal_storage_type", "2"}, - {"terminal_storage_s3_bucket", "terminal_storage_type", "2"}, - {"terminal_storage_s3_access_key", "terminal_storage_type", "2"}, - {"terminal_storage_s3_secret_access_key", "terminal_storage_type", "2"} - }; - private static final Log logger = Log.get(); @Autowired @@ -282,6 +269,100 @@ public class SysConfServiceImpl extends ServiceImpl<SysConfDao, SysConfigEntity> } } + /** + * 系统设置重置 + * @param param + */ + /*@Override + @Transactional(rollbackFor = Exception.class) + public void resetConfig(Map<String, Object> param) throws IOException,RuntimeException{ + String pin = StrUtil.str(param.get(Constant.PIN).toString()); + List<String> types = (List<String>)param.get("type"); + try { + if(ToolUtil.isEmpty(pin)||ToolUtil.isEmpty(types)){ + throw new NZException(RCode.SYS_CONFIG_PASSWORDORTYPE_INVALID); + } + // 当前登录用户 + SysUserEntity userEntity = ShiroUtils.getUserEntity(); + // 原加密密码 + String oriPassword = userEntity.getPin(); + // 加密盐值 + String salt = userEntity.getSalt(); + // 现加密密码 + String currentPassword = ShiroUtils.sha256(pin,salt); + if(!StrUtil.equals(oriPassword,currentPassword)){ + // 密码不对,禁止重置 + throw new NZException(RCode.SYS_CONFIG_PASSWORD_ERROR); + } + for (String type: types){ + if(!ArrayUtils.contains(Constant.SYSCONFIG_RESET_TYPE,type)){ + throw new NZException(RCode.SYS_CONFIG_PASSWORDORTYPE_INVALID); + } + if("metric".equals(type)){ + resetMetric(); + }else if("alert".equals(type)){ + resetAlert(); + }else { + resetEnterData(); + } + } + }catch (IOException | RuntimeException e){ + throw e; + } + }*/ + /** + * 重置metric + */ + /*private void resetMetric() throws IOException{ + String seriesUri = "/api/v1/admin/tsdb/delete_series"; + String tombstonesUri = "/api/v1/admin/tsdb/clean_tombstones"; + // 获取正常的监控服务列表 + List<Agent> agentList = agentService.list( + new LambdaQueryWrapper<Agent>().eq(Agent::getStatus,1)); + if(ToolUtil.isNotEmpty(agentList)){ + final String key= URLEncoder.encode("{__name__=~'.+'}","UTF-8"); + agentList.forEach(agent -> { + String result = AgentUtil.request(agent, HttpMethod.POST, seriesUri, String.format("match[]=%s", key), null, String.class); + logger.info("request result: {}",result); + result = AgentUtil.request(agent, HttpMethod.POST, tombstonesUri, null, null, String.class); + logger.info("request result: {}",result); + }); + } + }*/ + + /** + * 重置alert + */ + /*private void resetAlert() throws RuntimeException{ + alertMessageService.remove(new LambdaQueryWrapper<AlertMessageEntity>()); + }*/ + + /** + * 清除用户输入数据 + */ + /*@Transactional(rollbackFor = Exception.class) + public void resetEnterData() { + try { + // cache 写入当前用户id + Long userId = ShiroUtils.getUserId(); + cache.set("reset",String.valueOf(userId),expire, TimeUnit.SECONDS); + // 删除用户输入的数据 + String jsonTables = this.getValue(Constant.RESET_TABLE_INFOS); + if(StringUtils.isNotEmpty(jsonTables)) { + List<String> tables = (List<String>) JSONArray.parse(jsonTables); + Arrays.stream(tables.toArray()).forEach(table->{ + this.baseMapper.clearData((String)table); + }); + } + // 删除cache中key=reset的数据 + cache.delete("reset"); + logger.info("nezha reset success"); + } catch (RuntimeException e) { + logger.error("nezha reset fail",e); + throw new NZException(RCode.SYS_CONFIG_RESET_FAIL); + } + }*/ + @Override public String getValue(String key) { TimedCache<String, Object> cache = LocalCacheManager.getNeverExpireTimedCache(Constant.SYS_CACHE_PREFIX, Constant.SYS_CONFIG_CACHE_KEY); @@ -732,15 +813,4 @@ public class SysConfServiceImpl extends ServiceImpl<SysConfDao, SysConfigEntity> logger.info("[reloadSysConfigToCache] [finshed]"); } - @Override - public void saveAuditlog(Map<String, String> params) { - Map<String, String> result = this.validateKeys(AUDITLOG_KEYS, params); - - this.validateRequired(result, AUDITLOG_REQUIRED, AUDITLOG_DEPEND); - - this.validateInteger(AUDITLOG_INTEGER, result); - - this.saveOrUpdateConfsBatch(result); - } - } diff --git a/nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredAuditLogDataJob.java b/nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredTerminalRecordDataJob.java index 79593982..e2faad30 100644 --- a/nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredAuditLogDataJob.java +++ b/nz-admin/src/main/java/com/nis/modules/terminal/job/CleanExpiredTerminalRecordDataJob.java @@ -9,13 +9,10 @@ import cn.hutool.log.Log; import com.amazonaws.SDKGlobalConfiguration; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.BucketLifecycleConfiguration; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.nis.common.utils.Constant; import com.nis.common.utils.Tool; import com.nis.modules.election.dao.LeaderElectionDao; -import com.nis.modules.sys.entity.SysLogEntity; import com.nis.modules.sys.service.SysConfService; -import com.nis.modules.sys.service.SysLogService; import com.nis.modules.terminal.service.TerminalRecordService; import com.nis.modules.terminal.service.TerminalSessionService; import com.nis.modules.terminal.utils.TerminalConstant; @@ -30,7 +27,7 @@ import java.util.Arrays; import java.util.List; @DisallowConcurrentExecution -public class CleanExpiredAuditLogDataJob extends QuartzJobBean { +public class CleanExpiredTerminalRecordDataJob extends QuartzJobBean { private static final Log log = Log.get(); @@ -39,9 +36,6 @@ public class CleanExpiredAuditLogDataJob extends QuartzJobBean { } @Autowired - private SysLogService sysLogService; - - @Autowired private SysConfService sysConfService; @Autowired @@ -52,24 +46,21 @@ public class CleanExpiredAuditLogDataJob extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { - Thread.currentThread().setName("CleanExpiredAuditLogDataJob"); + Thread.currentThread().setName("CleanExpiredTerminalRecordDataJob"); // 检查 HA_LOCK LeaderElectionDao dao = LeaderElectionDao.getInstance(); boolean isLeader = dao.isLeader(Constant.SYS_HA_LOCK, Constant.SERVER_ID); - log.info("[CleanExpiredAuditLogDataJob] [Get HA_LOCK] [isLeader: {}]", isLeader); + log.info("[CleanExpiredTerminalRecordDataJob] [Get HA_LOCK] [isLeader: {}]", isLeader); if (BooleanUtil.negate(isLeader)) return; - log.info("[CleanExpiredAuditLogDataJob] [start cleaning expired data]"); + log.info("[CleanExpiredTerminalRecordDataJob] [start cleaning expired data]"); - StopWatch sw = StopWatch.create("CleanExpiredAuditLogDataJob"); + StopWatch sw = StopWatch.create("CleanExpiredTerminalRecordDataJob"); sw.start(); try { - // sys_log - this.cleanExpiredOperationLogData(); - - // terminal + // clean Expired Terminal Record Data this.cleanExpiredTerminalRecordData(); } catch (Exception e) { log.error(e, "[CleanExpiredTerminalRecordDataJob] [failed to clean data]"); @@ -77,26 +68,7 @@ public class CleanExpiredAuditLogDataJob extends QuartzJobBean { sw.stop(); } - log.info("[CleanExpiredAuditLogDataJob] [clean data complete] [Run Time: {}]", sw.prettyPrint()); - } - - private void cleanExpiredOperationLogData() { - // 操作日志保留天数 - String operationLogRetention = sysConfService.getValueOrDefault("operation_log_retention", "0"); - log.info("[cleanExpiredOperationLogData] [operation_log_retention] [value: {}]", operationLogRetention); - - if (StrUtil.equals("0", operationLogRetention)) { - log.warn("[cleanExpiredOperationLogData] [no clean operation logs]"); - } else { - DateTime now = Tool.DateUtil.date(); - - // 过期时间 - DateTime expireDate = Tool.DateUtil.offsetDay(now, -Integer.valueOf(operationLogRetention)); - log.info("[cleanExpiredOperationLogData] [clear expired sys_log date in db] [now: {}] [retention days: {}] [expire date: {}]", now, operationLogRetention, expireDate); - - int deleteNum = sysLogService.getBaseMapper().delete(new LambdaQueryWrapper<SysLogEntity>().le(SysLogEntity::getCreateDate, expireDate)); - log.info("[cleanExpiredOperationLogData] [finshed] [delete num: {}]", deleteNum); - } + log.info("[CleanExpiredTerminalRecordDataJob] [clean data complete] [Run Time: {}]", sw.prettyPrint()); } @Transactional(rollbackFor = Exception.class) diff --git a/nz-admin/src/main/resources/db/V2024.05.30__add sys_config operation_log_retention conf.sql b/nz-admin/src/main/resources/db/V2024.05.30__add sys_config operation_log_retention conf.sql deleted file mode 100644 index a6db12b1..00000000 --- a/nz-admin/src/main/resources/db/V2024.05.30__add sys_config operation_log_retention conf.sql +++ /dev/null @@ -1,4 +0,0 @@ -/** - * 1. 新增 operation_log_retention 配置,操作日志保留天数, 默认:0 - */ -INSERT IGNORE INTO `sys_config`(`id`, `param_key`, `param_value`, `status`, `remark`) VALUES (NULL, 'operation_log_retention', '0', 1, '操作日志保留天数'); |
