Версия ПО 0.7.1 |
Peeper — система мониторинга программных продуктов Eltex.
Архитектура Peeper состоит из двух частей:
Все ПО предоставляется в виде Docker-образов, размещенных в публичных репозиториях, и файлов compose.yml и .env для деплоя контейнеров.
Peeper прост в развертывании и эксплуатации, что имеет важность для системы мониторинга.
Peeper позволяет:
В архитектуре Peeper предусмотрено, что для получения метрик со стороны Peeper Client не требуется открывать никаких дополнительных портов на стороне сервера с программным продуктом Eltex. Отправка метрик с этого сервера производится методом Push.
Все входящие запросы в Peeper Server идут по HTTPs через Peeper Proxy по 443 порту.

Для успешной установки Peeper Server и Peeper Client на всех серверах должен быть предустановлен docker и docker compose https://docs.docker.com/engine/install/ubuntu/ |
| ОС | Ubuntu 22.04 Server или выше |
| CPU | 2 |
| RAM | 4 ГБ |
| Disk | 100 ГБ (x2 при использовании peeper-backup) |
| Предустановленное ПО | Docker, Docker Compose |
Для установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/YqUw3ZWt8Kf2b9a/download?path=%2F&files=peeper-deploy.tar
mkdir peeper-server && cd peeper-server wget "https://cloud.eltex-co.ru/index.php/s/YqUw3ZWt8Kf2b9a/download?path=%2F&files=peeper-deploy.tar" -O peeper-deploy.tar |
Далее распакуйте из архива файлы:
tar -xvf peeper-deploy.tar |
Cкорректируйте переменные в файле .env. Необходимо скорректировать минимум 1 переменную: PEEPER_HOST. В ней нужно указать IP сервера Peeper, по которому пользователи и администраторы будут открывать WEB Peeper.
При установке Peeper Server автоматически производится провиженинг дашбордов и алертов для метрик Linux, Docker, Postgres, Haproxy, входящего в состав Peeper Server. |
Команда установки Peeper Server:
sudo ./setup.sh -i |
Начиная с версии 0.7, скрипт установки поддерживает дополнительные параметры запуска, которые позволяют включать отдельные модули. Параметры могут вызываться как длинными, так и короткими ключами.
| Модуль | Длинный ключ | Короткий ключ | Описание |
|---|---|---|---|
| backup | --backup | -B | Включает модуль резервного копирования. |
| blackbox | --blackbox | -b | Включает модуль мониторинга через Blackbox Exporter. |
| -e | Включает модуль отправки уведомлений по email. |
Пример запуска с ключами:
./setup.sh -i --backup --email |
Также существует возможность включать модули без указания ключей.
Для этого необходимо установить соответствующие переменные окружения в файлах:
Например:
BACKUP_ENABLED=true |
BLACKBOX_EXPORTER_ENABLED=true |
EMAIL_ENABLED=true |
Если эти значения установлены в `true`, соответствующие модули будут запускаться автоматически при выполнении команды:
./setup.sh -i |
У модулей в .env файлах, могут содержаться переменные, которые необходимо заполнять при использовании модуля. Информация об этих переменных лежит в тех же .env файлах. |
В compose.yml Peeper Server для сервиса peeper-grafana используется volume "peeper-grafana-config", который монтируется в директорию /etc/grafana в контейнере. Часто при настройке LDAP в Grafana или других функций через WEB вручную конфигурация сохраняется в /etc/grafana, например, в таких файлах как grafana.ini Таким образом, чтобы при переустановке Peeper не потерять эти данные, достаточно не удалять volume, а примонтировать его к новой инсталляции Peeper: все настройки будут сохранены. |
Для установки Peeper Client скачайте на сервер peeper-client архив с файлами: https://cloud.eltex-co.ru/index.php/s/YqUw3ZWt8Kf2b9a/download?path=%2F&files=peeper-client.tar
Далее распакуйте из архива файлы:
tar -xvf peeper-client.tar |
Cкорректируйте переменные в файле .env. Необходимо скорректировать минимум 2 переменные: PEEPER_HOST, PEEPER_IP. В них необходимо указать доменное имя и IP-хоста Peeper Server, чтобы клиент знал, куда отправлять метрики.
Если вы не используете доменное имя для доступа к Peeper Server, то укажите IP Peeper Server в обеих переменных PEEPER_HOST, PEEPER_IP |
Сгенерируйте token в WEB Grafana (https://<адрес Peeper Server>:443). Зайдите в меню "Administration" → "Users and access" → "Service accounts" → "Add service account" → "Add service account token" → "Generate token".
| Токен необходимо записать в переменную PEEPER_TOKEN в .env файле. |
Команда установки Peeper Client:
sudo ./setup.sh -i |
При установке Peeper Client на серверы с ECCM или SoftWLC необходимо распаковать архив с Peeper в дирректорию, откуда происходила установка SoftWLC или ECCM, чтобы установочные файлы Peeper оказались на одном уровне с папкой "provisioning".
Peeper Client может быть установлен на сервер с Ubuntu без развернутых на нем приложений Элтекс для мониторинга только Linux и Docker. Команда для установки при этом не изменится.
Начиная с версии 0.7, установка peeper-client поддерживает дополнительные параметры запуска для включения модулей экспортеров.
Параметры можно вызывать как длинными, так и короткими ключами.
| Модуль | Длинный ключ | Короткий ключ | Описание |
|---|---|---|---|
| mysql | --mysql | -m | Включает модуль peeper-exporter-mysql для сбора метрик MySQL. |
| postgres | --postgres | -o | Включает модуль peeper-exporter-postgres для сбора метрик PostgreSQL. |
Пример запуска с ключами:
sudo ./setup.sh -i -H eccm --mysql --postgres |
Модули можно активировать без указания ключей, если задать соответствующие переменные окружения в файлах:
Например:
MYSQL_EXPORTER_ENABLED=true |
POSTGRES_EXPORTER_ENABLED=true |
Если эти переменные установлены в `true`, соответствующие модули будут автоматически запущены при выполнении команды:
sudo ./setup.sh -i |
Для корректной работы модулей peeper-exporter-mysql и peeper-exporter-mysql недостаточно включить их только через ключи или *_ENABLED=true.
Без этих значений экспортеры не смогут подключиться к базам данных и начать сбор метрик. |
Графический интерфейс представляет из себя GUI Grafana, доступный по адресу: https://<адрес сервера>
Логин/пароль по умолчанию: admin/admin (корректируется в файле .env)
Дашборды можно найти в меню Dashboards.
Для получения информации о каждом графике в Дашборде наведите курсор на иконку i над графиком. Отобразится текстовая подсказка с информацией по данному графику.
Для отправки уведомлений в чат Telegram при срабатывании алертов есть два способа настройки:
На данный момент при стандартной установке peeper-server устанавливает peeper-exporter-blackbox, который позволяет отслеживать необходимые сайты, следить за состоянием сертификатов и уведомлять о проблемах с доступностью.
Для настройки целей мониторинга необходимо добавить в файл http/blackbox_http.yaml или создать новый с названием http/blackbox_*.yaml, где вместо * — ваше название. Внутри файла необходимо добавить цели:
- targets:
- https://eltex-co.ru
- ... # ваши сайты
labels:
group: eltex # название группы сайтов
module: http_2xx # модуль для опроса сайта |
После добавления необходимо сохранить файл на сервере, подождать 2-3 минуты, и цель внесённая в конфигурацию, появится в дашборде.
Есть 6 видов скрейп модулей для мониторинга разных по функциональности сайтов:
| Название модуля | Описание | Протокол | Особенности |
|---|---|---|---|
http_2xx | Стандартный модуль для мониторинга большинства сайтов | HTTP/HTTPS | Проверка доступности и получения кода ответа 2xx |
http_2xx_custom_ca | Стандартный модуль для мониторинга сайтов с кастомным CA | HTTPS | Требует CA сертификат по пути certificates/ca/ca.crt |
http_2xx_tls_strict | Модуль для мониторинга только HTTPS сайтов | HTTPS | Строгая проверка TLS/SSL соединения |
http_tls_expiry | Модуль для мониторинга SSL сертификатов | HTTPS | Проверяет срок действия сертификата без загрузки контента |
http_post_json_2xx | Модуль для мониторинга POST JSON endpoints | HTTP/HTTPS | Отправка POST запросов с JSON данными, проверка кода 2xx |
icmp | Модуль для проверки доступности по IP | ICMP | Проверка доступности узла через ping |
Контейнер с бэкапами имеет возможность записывать метрику vm_backup_status и vm_backup_timestamp. Внутри peeper содержится алерт, который показывает, завершился последний бэкап с ошибкой или не выполнился.
Для резервного копирования peeper-server существует отдельный контейнер, который запускается вместе с peeper. Данный контейнер осуществляет резервное копирование истории метрик с помощью утилит резервного копирования Victoria Metrics. Конифгурация данного контейнера происходит в .env.backup файле:
PEEPER_BACKUP_KEEP="1" # Количество резервных копий, которые будут сохранены в системе PEEPER_BACKUP_DIR="./backups" # Путь в системе, где будут сохраняться резервные копии (указывать полный путь до папки) PEEPER_BACKUP_CRON="0 0 * * *" # Cron расписание по которому будут сниматься резервные копии PEEPER_COMPRESSION_LEVEL="6" # Степень сжатия архивов с резервными копиями от 1 до 9 |
Настройки выше конфигурируют автоматические бэкапы. При необходимости воспользоваться ручным снятием резервной копии, используйте следующую команду:
docker exec peeper-backup sh /backup.sh |
Для восстановления из резервной копии, необходимо выполнить следующие действия:
docker stop peeper-metrics peeper-logs docker exec -i peeper-vmbackup-toolbox sh /restore.sh logs|metrics **название архива резервной копии** docker start peeper-metrics peeper-logs |
Внутри контейнера peeper-backup есть 2 параметра восстановления. Для логов logs, для метрик metrics. |
После восстановления необходимо проверить, что контейнеры запустились:
docker ps | grep peeper |
Для работы peeper используется несколько сертификатов, которые описаны ниже:
При запуске peeper должен находится по пути certificates/crt/ваш-домен-для-peeper.pem. Название сертификата должно быть равно вашему домену, который будет использоваться для peeper. Данный сертификат должен быть в формате .pem и содержать внутри:
Собрать цепочку сертификатов можно следующим образом:
ваш-домен-для-peeper.pemВ случае добавления или обновления сертификата после запуска peeper, необходимо перезапустить peeper-haproxy командой:
docker restart peeper-haproxy |
2. CA сертификат
Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно отслеживать, и если не используется blackbox. Сертификат необходимо положить в certificates/ca/ca.crt. После добавления сертификата может потребоваться перезапуск blackbox. Перезапуск осуществляется следующей командой:
docker restart peeper-exporter-blackbox |
В случае возникновения ошибки, указанной ниже, необходимо отредактировать .env файл и указать значение переменной PEEPER_EXTERNAL_MODE="true", и заново ввести команду установки Peeper Client.
Error response from daemon: error while removing network: network internal has active endpoints |