Мониторинг серверов
Когда приходится совмещать работу программиста и системного администратора – устаешь от постоянного контроля за какими-либо параметрами серверов, особенно когда серверов становится больше, чем два. В итоге рождаются какие-то простые идеи, для хотя бы какого-либо минимального контроля, при этом «тыж-программист» и надо как-то находить выход при помощи своих знаний. Возможно, конечно, это какой-то «велосипед», но получается интересно.
Несколько параметров, которые важны для работы любых баз 1С – это свободное место на дисках, которые иногда имеют свойство заканчиваться. Надоело постоянно отслеживать данные по свободному месту на дисках - так и родилась идея, а почему бы не получать данные с серверов и не собирать их в свою базу (конфигурацию 1С), и в случае если место начинает заканчиваться – посылать себе оповещения.
Итак - Основная база – она же конфигурация 1С, с опубликованными веб-сервисами (в данном случае http-сервис) – который принимает данные с серверов. Вторая часть – которую мы устанавливаем на серверы – это небольшая утилита(агент), написанная на языке rust, которая периодически посылает данные на наш http-сервис с данными по дискам и их свободному месту (название сервера, название диска, объем диска и объем свободного места). Также немаловажно – чтобы отправлять уведомления – базу делаем клиент-серверной, чтобы в случае чего регламентным заданием – иметь возможность отправить данные о заканчивающемся свободном месте на дисках.
Для визуального контроля - выводим на экран данные в виде диаграммы - о размере занятого и свободного места на дисках. При необходимости можно добавлять любое количество параметров.
Для своевременного оповещения о уменьшении количества дисков - отправляем на почту письма: сейчас существует два вида оповещений:
1. Оповещение о уменьшении свободного места на дисках, настраивается при помощи добавления оповещений.
Для начала настраиваем почтовый профиль - указываем только данные smtp, только для отправки оповещений. Выбираем данный профиль при создании нового оповещения.
Далее указываем кому, включено, тип - оповещения - сейчас их два - свободное место, и отсутствие показателей.
Имя компьютера, имя диска - можно не указывать - если вы хотите получать оповещения со всех серверов.
Параметр указываем free_space/total_space - и значение в 15%, то есть если свободное место на диске будет менее 15% - отправляем оповещение по адресу "Кому". Измеряется показатель в %.
2. Оповещения - при отсутствии связи с сервером.
Принцип простой - если не будет поступления данных от любого из серверов в течение [30] мин, то отправляем письмо по адресу "Кому".
Тестировалось на платформе 8.3.24.1548 ( но не используется ничего особенного из 8.3.24, что не заработало бы и на более ранних или поздних версиях платформы) без использования БСП.
Агент - написан на языке rust, и передает Json данные в 1С о имени компьютера, и данные по всем дискам - свободное место, занятое место.
Настраивается агент - через ini файл в котором указывается сервер где опубликована база и логин и пароль для авторизации. По умолчанию в конфигурации роль - Обмен - на основе этой роли можно создать пользователя - только для получения данных через веб, и записи этих данных в регистр, нет полных прав в базу.
[hosts]
url=http://192.168.1.15/InfoBase2/hs/info/set_info
login=obmen
password=1$Z
HTTP-сервис - set_info - принимает данные с агента в виде json.
В составе - файл конфигурации cf, diskinfo - агент для ОС Windows.