Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //log4net declaration
- private static readonly ILog log = LogManager.GetLogger(typeof(SFDC_MonitoringTool));
- //These stuff for registering service state in Event Viewer
- public enum ServiceState
- {
- SERVICE_STOPPED = 0x00000001,
- SERVICE_START_PENDING = 0x00000002,
- SERVICE_STOP_PENDING = 0x00000003,
- SERVICE_RUNNING = 0x00000004,
- SERVICE_CONTINUE_PENDING = 0x00000005,
- SERVICE_PAUSE_PENDING = 0x00000006,
- SERVICE_PAUSED = 0x00000007,
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct ServiceStatus
- {
- public long dwServiceType;
- public ServiceState dwCurrentState;
- public long dwControlsAccepted;
- public long dwWin32ExitCode;
- public long dwServiceSpecificExitCode;
- public long dwCheckPoint;
- public long dwWaitHint;
- };
- [DllImport("advapi32.dll", SetLastError = true)]
- private static extern bool SetServiceStatus(IntPtr handle, ref ServiceStatus serviceStatus);
- private static void SetBasicTimer()
- {
- System.Timers.Timer basicTimer = new System.Timers.Timer(4000); //BasicCheck repetition in milliseconds
- basicTimer.Elapsed += BasicCheck;
- basicTimer.AutoReset = true;
- basicTimer.Enabled = true;
- }
- private static void BasicCheck(Object source, ElapsedEventArgs e)
- {
- //CPU load Check
- foreach(var element in Config.globalHosts)
- {
- var cpuResult = Checks.cpuCheck(element);
- if (cpuResult.IsError == true)
- {
- log.Error("CPU load is [" + cpuResult.Value + "%] on " + cpuResult.MachineName + ".");
- //implement mail sender
- if (mailAlert.CheckLastSentMail(cpuResult.TypeOfError, cpuResult.MachineName, DateTime.Now) == true)
- {
- MailSender.SendMail(cpuResult.TypeOfError, cpuResult.MachineName, cpuResult.ErrorMessage);
- mailAlert.addToList(cpuResult.TypeOfError, cpuResult.MachineName, DateTime.Now);
- }
- }
- else
- {
- log.Debug("CPU load is [" + cpuResult.Value + "%] below the threshold on " + cpuResult.MachineName + ".");
- }
- }
- //Mem Load check
- foreach (var element in Config.globalHosts)
- {
- var memResult = Checks.memCheck(element);
- if(memResult.IsError == true)
- {
- log.Error("Memory load is " + memResult.Value + "%");
- //implement mail sender
- if (mailAlert.CheckLastSentMail(memResult.TypeOfError, memResult.MachineName, DateTime.Now) == true)
- {
- MailSender.SendMail(memResult.TypeOfError, memResult.MachineName, memResult.ErrorMessage);
- mailAlert.addToList(memResult.TypeOfError, memResult.MachineName, DateTime.Now);
- }
- }
- else
- {
- log.Debug("Memory load [" + memResult.Value + "%] is below the threshhold on " + memResult.MachineName + ".");
- }
- }
- //Free space check?
- /*
- foreach (var element in Config.globalHosts)
- {
- ReturnType driveResult = Checks.freeSpaceCheck(element);
- if (driveResult.IsError == true)
- {
- log.Error(driveResult.ErrorMessage);
- //implement mail sender
- if (mailAlert.CheckLastSentMail(driveResult.TypeOfError, driveResult.MachineName, DateTime.Now) == true)
- {
- MailSender.SendMail(driveResult.TypeOfError, driveResult.MachineName, driveResult.ErrorMessage);
- mailAlert.addToList(driveResult.TypeOfError, driveResult.MachineName, DateTime.Now);
- }
- }
- else
- {
- log.Debug(element + " check is successful. No error found.");
- }
- }
- */
- //Ping check
- foreach(var element in Config.globalHosts)
- {
- var pingResult = Checks.pingCheck(element);
- if (pingResult.IsError == true)
- {
- log.Error(pingResult.MachineName + " is not responding within [" + Config.pingTimeout +" sec].");
- //implement mail sender
- if (mailAlert.CheckLastSentMail(pingResult.TypeOfError, pingResult.MachineName, DateTime.Now) == true)
- {
- MailSender.SendMail(pingResult.TypeOfError, pingResult.MachineName, pingResult.ErrorMessage);
- mailAlert.addToList(pingResult.TypeOfError, pingResult.MachineName, DateTime.Now);
- }
- }
- else
- {
- log.Debug(pingResult.MachineName + " is responding within the timeout [" + Config.pingTimeout + " sec].");
- }
- }
- //DB Connection Check
- var dbResult = Checks.dbCheck();
- if (dbResult.IsError == true)
- {
- log.Error(dbResult.MachineName + " is not responding to SQL queries. Please check immediately!");
- if (mailAlert.CheckLastSentMail(dbResult.TypeOfError, dbResult.MachineName, DateTime.Now) == true)
- {
- MailSender.SendMail(dbResult.TypeOfError, dbResult.MachineName, dbResult.ErrorMessage);
- mailAlert.addToList(dbResult.TypeOfError, dbResult.MachineName, DateTime.Now);
- }
- }
- else
- {
- log.Debug(Config.connectionString + " responding properly to SQL queries.");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement