private void CreateOrCloseServerMpAlarm(bool isHaveOldAlarm, ServerCollection currentState) { if (currentState.Health != Health.OK) { if (!isHaveOldAlarm) { OnLog("Insert Event:Server ManagementPack Missing"); var alarm = new ApplianceAlarm { OptType = "1", AlarmName = "Server ManagementPack Missing", AlarmType = EnumAlarmType.ServerMpMissing, PossibleCause = "The Management Pack of the plug-in is uninstalled.", Suggstion = "import the Huawei.FusionDirector.Server.Library.mpb", Additional = currentState.ErrorMsg }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent); } } else { if (isHaveOldAlarm) { OnLog("Close Event:Server ManagementPack Missing"); var alarm = new ApplianceAlarm { OptType = "2", AlarmType = EnumAlarmType.ServerMpMissing, }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent); } } }
private void CreateOrCloseEventServiceAlarm(bool isHaveOldAlarm, EventCollection currentState) { if (currentState.Health != Health.OK) { if (!isHaveOldAlarm) { OnLog("Insert Event:Webserver unavailable"); var alarm = new ApplianceAlarm { OptType = "1", AlarmName = "Webserver unavailable ", AlarmType = EnumAlarmType.WebServerUnavailable, PossibleCause = "IIS express service is stopped or uninstalled.", Suggstion = "Check the website", Additional = currentState.ErrorMsg }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent); } } else { if (isHaveOldAlarm) { OnLog("Close Event:Webserver unavailable"); var alarm = new ApplianceAlarm { OptType = "2", AlarmType = EnumAlarmType.WebServerUnavailable, }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent); } } }
private void CreateOrCloseFusionDirectorAlarm(List <MonitoringAlert> existAlarmData, FusionDirectorCollection currentState) { var fdStatuses = JsonConvert.DeserializeObject <Dictionary <string, string> >(currentState.ErrorMsg); foreach (var fdStatus in fdStatuses) { var fdIp = fdStatus.Key; var error = fdStatus.Value; bool isHaveOldAlarm = existAlarmData.Any(x => x.CustomField1 == EnumAlarmType.FdConnectError.ToString() && x.CustomField4.Contains(fdIp)); if (fdStatus.Value != "OK")//本次有告警,则插入或更新告警 { OnLog($"[{fdIp}] Insert Or Update Event:FusionDirector connect Error"); var alarm = new ApplianceAlarm { OptType = "1", AlarmName = "FusionDirector Connect Error", AlarmType = EnumAlarmType.FdConnectError, PossibleCause = $"{error}", Suggstion = "check whether the FusionDirector server is shut down or whether the network is abnormal.", Additional = error }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent, fdIp); } else { //本次没有告警 且有旧的告警,则关闭 if (isHaveOldAlarm) { OnLog($"[{fdIp}] Close Event:FusionDirector Connect Error"); var alarm = new ApplianceAlarm { OptType = "2", AlarmType = EnumAlarmType.FdConnectError, }; var applianceEvent = new ApplianceEvent(alarm); ApplianceConnector.Instance.InsertEvent(applianceEvent, fdIp); } } } }