Механизм мониторинга работоспособности утилит

Описание: 
Данный механизм позволяет отслеживать состояние работы утилит установленных на сервере и позволяет в реальном времени получать e-mail оповещения о их выходе из строя.
В поставке ПО "Абонемент" данная утилита находится в каталоге (начиная с версии 1.133): \FullVersion\UTILS\ServMonitor\
 
Рис.1 Интерфейс утилиты Сервер Монитор
 
Перечень настроек:
 
1. Название файла настроек "ServMonitor.ini"
1.1 Секция [general]
 
Program       = ServMonitor  - название программы
ObjectAddress = Москва       - город
ObjectName    = WorkYYY     - Название объекта  
ObjectPhone   =  
 
1.1.1 Тема письма формируется из сочетаняи параметров "Program\ObjectName"
 
1.2 Секция [database]
 
dbname=127.0.0.1/3080:D:\_WORK\ConnectFB\BD\FITNESS.FDB - путь до базы данных для выполнения SQL запросов
 
1.3 Секция [TIMER]
 
TimerInterval=5000 - интервал проверки
Enabled=1          - "1" - включить  проверку, "0" - отключить проверку    
 
1.4 Секция [SMTP]
 
Host=smtp.yandex.ru  - хост
Port=465             - порт     
 
Username=yyyyy@yandex.ru - адрес от которого отправлять письма
Password=zzzzz           - пароль от адреса 
isPasswordCrypt=1        - "1" - пароль зашифрован через интерфейс программы, "0" - пароль не зашифрован
AddressesTo=v.abrarov@ucs.ru - адрес куда отправлять письма в случае ошибки, можно через запятую.
 
1.5 Секция [Telegram]
 
enabled=0                                              - отправлять ошибки в телеграм бот
token = 472502165:AAEVnd5dcck4ykGHf0ktdqB4GLYojA6TFnI  - бот телеграмма
token_hash=14300a6778d1859ca7f6b71d2009f66e            - код шифрования бота 
Key=123                                                - ключ администратора для парольных операций
LastMsgId=240                                          - последнее обработанное сообщение телеграмма
 
1.6 Секция [TelegramChatList]
 
364979523=1   - список id пользователей, которым необходимо отсылать телеграм сообщения.
 
2. Название файла параметров обработки "ServMonitorData.ini"
 
2.1 Категории монитора:   
 
TCP: Проверка TCP порта по принципу "TELNET". Попытка подключения к порту 5 сек.
HOST - это "Хост", на котором проверяется порт. Локальный: 127.0.0.1
PORT - это "TCP  порт" проверяемый на хосте
SQL: Запрос к базе. Результат запроса Error, ErrorText. Если необходимо что-то отправить, то Error = 1. (Для работы запроса необходимо заполнить секцию database параметр dbname - Пусть до базы данных) 
SQLTEXT - тест SQL запроса 
   
INI: проверка значения в INI файле. 
FileName - путь до ini файла  
Section  - секция файла
Field    - поля
WaitValue- ожидаемое значение
   
APP: проверка запущен ли процесс
FileName - путь до запущенного exe файла    
   
FINDTEXTINFILE: Поиск текста в файле
FINDTEXT - искомый текст
FILEDIR - папка в которой производится поиск. Включая все вложенные каталоги.
MASK - windows маска для поиска файла. По умолчанию *.*
CHARSET_ENCODING - Если "UTF-16", то указывается эта кодировка. В других случаях пусто.
 
Особенности: 
  Данный тип отсылается сообщения с учетом записи в логе.
  Если запись появилась и сообщение отправлено, то следующее сообщение оправится только после появления новой искомой записи.
 
3. Шаблоны отправки "TEMPLATE_TIMER"
 
 Name              - Название. Краткое описание
 Work_HourFrom     - Фильтр по часам. Анализировать с...  По умолчанию "0"
 Work_HourTo       - Фильтр по часам. Анализировать до...  По умолчанию "23"
 Work_DayMonthFrom - Фильтр по дням месяца. Анализировать с...  По умолчанию "1"
 Work_DayMonthTo   - Фильтр по дням месяца. Анализировать до... По умолчанию "31"
 Send_Wait_Success_Min        - ожижать востановления. по умолчанию 0 мин.
 Send_Wait_From_Last_Send_Min - ждать до отправки повторного сообщения. по умолчанию 60 мин.
 
4. После анализа каждой секции фиксируется результат
 
Last_Error - результат анализа
   "0"   - нет ошибок
   ">0"  - есть ошибки
   "-1"  - секция не анализируется. Enabled=0
   "-2"  - секция не анализируется. Согласно фильтрам дат и дней.
   "-10" - технический сбой
Last_ErrorText - текст ошибки    
Last_Success   - Дата и время последней успешной проверки
Last_Send      - Дата и время последней успешной отправки письма
   
5. Добавлена возможность зашифровать пароль
  "Настройки" - "Остановить монитор" - "Зашифровать SMTP пароль"
  
6. Добавлена возможность в интерфейсте усправлять настройками секций
 
1) Реализована возможность запуска как служба
[AppService]
DisplayName = UCS_ServMonitor
ServiceName = UCS_ServMonitor
Description    = Служба монитора процессов UCS приложений
 
2) Запуск с ключами 
-INSTALL   Установка
-UNINSTALL Удаление