コード例 #1
0
        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}");
                }
            }
        }
コード例 #2
0
 public ServicesMonitor()
 {
     logger      = LogManager.GetCurrentClassLogger();
     confManager = new ConfManager();
     config      = confManager.GetConfiguration();
     serviceMonitorController = new ServiceMonitorController(config);
     InitializeComponent();
 }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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();
        }