Предисловие
В данной статье рассматривается вариант разворачивания системы мониторинга и анализа данных сервера 1С, СУБД (MS SQL), ОС (Windows) и технологического журнала 1С. В ней не разбираются причины, по которым может понадобиться мониторинг этих систем, а также множественные варианты настройки мониторов.
Целью данной статьи является предоставление примера установки и настройки конкретного набора ПО для сбора метрик и мониторинга.
Перед прочтением этого материала рекомендую ознакомиться с опытом развертывания системы мониторинга, сборе и агрегации технологического журнала на просторах интернета.
Вводные данные
Для визуализации метрик будем использовать Grafana, а для хранения метрик будем использовать Prometheus. В Prometheus данные будут передавать различные экспортеры метрик (об этом ниже).
Тех. журнал будем получать из Grafana Loki, а передавать в него данные будет Promtail.
Все перечисленные выше инструменты абсолютно бесплатны.
Все это действо разворачивалось на Windows 10 Pro 22H2. Сервер 1С и MSSQL разворачивались на отдельной машине под той же ОС.
На момент написания статьи для доступа к некоторым сайтам или ссылкам на скачивание может потребоваться VPN.
Установка Grafana
Дистрибутив скачивается с официального сайта. Мастер установки из разряда «Далее -> Далее -> Готово».
Сразу после установки можно зайти на http://localhost:3000/ и проверить работу. При первом входе потребуется авторизация пользователем по умолчанию, как на многих роутерах:
login – admin
password – admin
Предложит смену пароля – можно пропустить по кнопке «Skip». Не сразу её заметил.
Если все прошло успешно, в итоге должны увидеть следующий экран:

NSSM
В рабочей папке Grafana (у меня это «C:Program FilesGrafanaLabs») есть утилита для создания своих служб, которую Grafana также использует — nssm.exe. Если Grafana не требует дополнительных действий при установке, то все остальное ПО потребует ручной установки в виде служб.
Полный путь по умолчанию — «C:Program FilesGrafanaLabssvc-12.3.3.0nssm.exe».
Если попытаться её запустить, то появится окно с описанием команд этой утилиты.

Для установки достаточно использоваться nssm install <имя службы>. Откроется графический интерфейс, где можно будет задать необходимые параметры для установки службы. При желании можно все действия производить через командную строку. [МК1] [c2]
Также эту утилиту можно скачать отдельно, но на текущий момент скачивание с официального сайта не работает.
Установка Prometheus
Дистрибутив скачивается с официального сайта.
Разворачиваем архив в необходимую директорию. У меня для этого отдельная папка «C:monitoring». В папке будет файл с конфигом — prometheus.yml. Внутри него содержатся, как ни странно, настройки работы Prometheus. В комментариях описан их функционал и значения по умолчанию.

На текущем этапе ничего менять не будем. По умолчанию Prometheus слушает сам себя. После установки можно будет проверить его работу по адресу http://localhost:9090/.
Далее из командной строки под администратором устанавливаем Prometheus как службу.

nssm.exe install Prometheus
В открывшемся окне в поле Path выбираем путь до prometheus.exe.
В поле Arguments вписываем —config.file=prometheus.yml. Этот параметр устанавливает файл-конфиг из Startup directory, с которым будет запускаться Prometheus. Жмем Install Service.

Если все прошло успешно, то получим сообщение «Service «prometheus» installed successfully!».
Готово. Запускаем службу и заходим на http://localhost:9090/

Чтобы посмотреть метрики, которые предоставляет Prometheus, можно зайти на http://localhost:9090/metrics.[МК3] [c4]
Установка Loki
На официальном сайте присутствует инструкция по установке, а также ссылка на дистрибутив с GitHub. Здесь важно выбрать именно дистрибутив Loki, а не Loki-canary, например. Название вида loki-windows-amd64.exe.zip.
В отличие от Prometheus файл-конфиг поставляется отдельно. Его можно получить по ссылке вида
https://raw.githubusercontent.com/grafana/loki/v3.6.0/cmd/loki/loki-local-config.yaml, где v3.6.0 – номер скачанной версии, нужно поменять на соответствующую.
Далее повторяем шаги из установки Prometheus. Разархивировали exe-шник, положили рядом config-файл, ставим как службу через nssm.exe, не забыв указать в Arguments файл-конфиг. После запуска службы можно проверить работу Loki по адресу localhost:3100/metrics.

Установка Promtail
ВАЖНО! Т.к. Promtail собирает данные логов с диска, то для чтения этих файлов его можно установить на машину, где пишутся логи, чтобы не организовывать сетевой доступ к файлам. В моем случае я так и поступил.
Установка полностью аналогична установке Loki. Инструкция и ссылка на дистрибутив присутствует на официальном сайте. Выбираем файл вида promtail-windows-amd64.exe.zip.
Ссылка на файл конфиг — https://raw.githubusercontent.com/grafana/loki/v3.6.0/cmd/loki/loki-local-config.yaml, где нужно заменить версию на свою.
Ставим службу, запускаем, проверяем работу http://localhost:9080/.

Теперь все сервисы готовы принимать метрики. Можно переходить к установке экспортеров метрик.
Установка экспортеров
Установка экспортеров ничем принципиально не отличается, например, от установки Promtail. Все тот же exe-шник + файл-конфиг. Разница только в корректировке файла-конфига. Для каждого экспортера свои параметры, установленные разработчиком. Ниже приведены примеры нескольких сервисов:
- windows_exporter – собирает метрики работы оборудования (процессор, оперативная память и т.п.) с ОС Windows. Релизы можно скачать здесь, а пример конфига — здесь.
- sql_exporter – собирает метрики работы (например, использование памяти) различных СУБД, в том числе MSSQL. Релизы можно скачать здесь, а пример конфига – здесь, в разделе Configuration.
- prometheus_1C_exporter — экспортер метрик сервера 1С (клиентские лицензии, статус регламентных заданий и т.п.). Релизы можно скачать здесь, а пример конфига – здесь.
Для перечисленных экспортеров присутствуют готовые Dashboard-ы для Grafana. Их можно найти как простым поиском на сайте Grafana, а также на страничках GitHub самих экспортеров.
После разворачивания сборщика метрик нужно в конфиг-файл Prometheus отредактировать список слушаемых адресов. Ниже пример.

Сохранили файл, перезапустили службу – готово! Теперь можно заходить в Grafana и конструировать свой дашборд или взять уже готовый и настроить под себя. Ниже простой пример визуализации метрики mssql_connections.

Сбор данных технологического журнала 1С
Для сбора данных необходимо настроить конфиг-файл для Promtail. Пример этого файла также рекомендую найти в описании опыта развертывания системы мониторинга. На какие параметры стоит обратить внимание и отредактировать по своим данным, отмечено ниже.

postions:filename: — директория для файла positions.yaml. Файл генерируется автоматически, главное — указать существующую директорию.
clients: —url: — адрес для отправки post запроса и записи данных в loki.
Static_config: —targets: — адрес сервера с логами.
Static_config: labels: job: _path_: — путь до log-файлов ТЖ.
Сохраняем, перезапускаем службу Promtail – profit! Можно идти в Grafana обрабатывать логи и строить дашборды. Ниже пример реализации.


Заключение
К сожалению, в одной статье невозможно охватить все подробности настроек каждого сервиса, а уж тем более невозможно включить сюда подробное описание оформления дашбордов из полученных метрик. Для этого понадобится целый цикл статьей по каждому инструменту отдельно.
Описанного в статье достаточно, чтобы без особого труда организовать сбор данных для анализа работы системы. А какой график выбрать для той или иной метрики? Каждый выберет себе сам 🙂
Все комментарии
Чтобы оставить комментарий, необходимо войти или зарегистрироваться.
Пока нет комментариев. Будьте первым!