public static void SendMessage(string message, string subject, ServiceMonitorConfiguration config) { Logger = LogManager.GetCurrentClassLogger(); //set up mail client SmtpClient client = new SmtpClient(config.SmtpAddress, config.SmtpPort); //setup ssl if (config.UseSSL) { client.Credentials = new NetworkCredential(config.SmtpUsername, config.SmtpPassword); client.EnableSsl = true; client.Port = config.SslPort; } //for every mail recipiant in the list send message for (int i = 0; i < config.ToMailAddress.Length; i++) { MailMessage msg = new MailMessage(config.FromMailAddress, config.ToMailAddress[i]); msg.Subject = subject; msg.Body = message; try { Logger.Info($"sending email to {config.ToMailAddress[i]} : {msg.Body} "); client.Send(msg); Logger.Debug("Mail message Sent successfully!"); } catch (Exception ex) { Logger.Error($"Error Sendig mail message , error was : {ex.Message}"); } } }
public ServicesMonitor() { logger = LogManager.GetCurrentClassLogger(); confManager = new ConfManager(); config = confManager.GetConfiguration(); serviceMonitorController = new ServiceMonitorController(config); InitializeComponent(); }
public ServiceMonitorController(ServiceMonitorConfiguration config) { checker = new ServicesChecker(); configuration = config; originalConfig = CreateCopy(config); timer = new Timer(config.CheckInterval); MasterTimer = new Timer(5 * 60 * 1000); MasterTimer.Elapsed += MasterTimer_Elapsed; timer.Elapsed += Timer_Elapsed; logger = NLog.LogManager.GetCurrentClassLogger(); }
private ServiceMonitorConfiguration CreateCopy(ServiceMonitorConfiguration config) { ServiceMonitorConfiguration newConfig = new ServiceMonitorConfiguration(); newConfig.CheckInterval = config.CheckInterval; newConfig.FromMailAddress = config.FromMailAddress; Array.Copy(config.KeywordsForLogMonitor, newConfig.KeywordsForLogMonitor, config.KeywordsForLogMonitor.Length); Array.Copy(config.ServicesToMonitor, newConfig.ServicesToMonitor, config.ServicesToMonitor.Length); newConfig.SmtpAddress = config.SmtpAddress; newConfig.SmtpPort = config.SmtpPort; Array.Copy(config.SourcesForLogMonitor, newConfig.SourcesForLogMonitor, config.SourcesForLogMonitor.Length); Array.Copy(config.ToMailAddress, newConfig.ToMailAddress, config.ToMailAddress.Length); return(newConfig); }
public ServiceMonitorConfiguration GetConfiguration() { ServiceMonitorConfiguration config = new ServiceMonitorConfiguration(); config.UseSSL = bool.Parse(ConfigurationManager.AppSettings["usessl"]); config.SmtpUsername = ConfigurationManager.AppSettings["SmtpUsername"]; config.SmtpPassword = ConfigurationManager.AppSettings["SmtpPassword"]; config.ServicesToMonitor = ConfigurationManager.AppSettings["ServiceList"].Split(','); config.KeywordsForLogMonitor = ConfigurationManager.AppSettings["Keywords"].Split(','); config.SourcesForLogMonitor = ConfigurationManager.AppSettings["Sources"].Split(','); config.CheckInterval = ParseNumber(ConfigurationManager.AppSettings["Timeout"], 10) * 1000; config.SmtpAddress = ConfigurationManager.AppSettings["SMTP"]; config.SmtpPort = ParseNumber(ConfigurationManager.AppSettings["SMTPport"], 25); config.FromMailAddress = ConfigurationManager.AppSettings["FromMail"]; config.ToMailAddress = ConfigurationManager.AppSettings["ToMail"].Split(','); config.ResetDataInterval = ParseNumber(ConfigurationManager.AppSettings["ResetDataInterval"], 5) * 60000; config.SslPort = ParseNumber(ConfigurationManager.AppSettings["SslPort"], 443); return(config); }
/// <summary> /// This will reset all changes done when services were stopped effectevilly creatint a reapeating /// e-mail message every x minutes ( /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MasterTimer_Elapsed(object sender, ElapsedEventArgs e) { ConfManager cnfman = new ConfManager(); configuration = cnfman.GetConfiguration(); }