Версия ПО 0.8 |
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, требуется в среднем около 30 МБ места в сутки. Рост базы данных будет длиться до тех пор, пока установленный вами срок хранения не истечет (например, 60 дней). После истечения срока хранения старые записи начнут автоматически удаляться, освобождая место для новых, и рост прекратится.
| Если ваши серверы активны, пишут большое количество логов или имеют много запущенных контейнеров, места может потребоваться больше. |
| Название | Описание |
|---|---|
| peeper-agent | Автоматически находит запущенные приложения и передает данные об их работе в центральное хранилище. |
| peeper-backup | Отвечает за регулярное создание резервных копий и восстановление системы из архива. |
| peeper-exporter-blackbox | Проверяет доступность веб-сайтов и сервисов, имитируя действия реального пользователя. |
| peeper-grafana | Веб-интерфейс для просмотра графиков и управления уведомлениями об авариях. |
| peeper-logs | Центральная база данных для хранения и поиска по журналам событий (логам). |
| peeper-metrics | Центральная база данных для хранения числовых метрик производительности. |
| peeper-provisioner | Автоматически загружает и настраивает графики и правила оповещений в интерфейсе системы (выполняется только при запуске, затем находится в выключенном состоянии). |
| peeper-proxy | Обеспечивает безопасный доступ к системе мониторинга через единую точку входа. |
| peeper-telegraf | Следит за состоянием самого сервера Linux и среды запуска контейнеров Docker. |
| peeper-vector | Занимается первичным сбором логов, их обработкой и отправкой в хранилище. |
Для установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-deploy.tar
mkdir peeper-server && cd peeper-server wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/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 |
Для offline установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-deploy-offline.tar
wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-deploy-offline.tar" -O peeper-deploy-offline.tar |
| После скачивания архива, его необходимо поместить на целевой хост. Сделать это можно любым доступным способом. |
Далее распакуйте из архива файлы:
tar -xvf peeper-deploy-offline.tar |
Cкорректируйте переменные в файле .env. Необходимо скорректировать минимум 1 переменную: PEEPER_HOST. В ней нужно указать IP сервера Peeper, по которому пользователи и администраторы будут открывать WEB Peeper.
При установке Peeper Server автоматически производится провиженинг дашбордов и алертов для метрик Linux, Docker, Postgres, Haproxy, входящих в состав Peeper Server. |
Команда установки Peeper Server:
sudo ./setup.sh --load sudo ./setup.sh -i |
Вся установка и дальнейшая работа с Peeper Client должна происходить через установочный скрипт setup.sh. Ниже описаны ключи для взаимодействия со скриптом:
| Длинный ключ | Короткий ключ | Описание |
|---|---|---|
| --backup | -B | Запускает систему с включенным модулем резервного копирования. |
| --blackbox-exporter | -b | Запускает модуль внешней проверки доступности сервисов. |
| --compose-v1 | -1 | Принудительно использует старую версию Docker Compose. |
| --config | -c | Выводит в консоль итоговую конфигурацию запуска. |
| --debug | -d | Запускает систему в режиме отладки с подробным выводом информации. |
| -e | Включает отправку уведомлений об авариях на электронную почту. | |
| --help | -h | Выводит справочную информацию по всем доступным командам. |
| --hostname <NAME> | -H | Позволяет вручную задать имя хоста для системы. |
| --install | -i | Запускает процесс установки системы. |
| --interactive | -I | Включает интерактивный режим работы (для отладки). |
| --load | -l | Загружает компоненты системы из локальных файлов (офлайн установка). |
| --prune | -P | Очищает неиспользуемые данные и образы для освобождения места. |
| --save | -s | Сохраняет компоненты в архив для переноса на сервера без интернета. |
| --uninstall | -u | Запускает процесс удаление системы с сохранением данных. |
| --version | -v | Отображает номер текущей версии системы. |
Пример запуска с ключами:
sudo ./setup.sh -i -B -e |
Также существует возможность включать модули без указания ключей.
Для этого необходимо установить соответствующие переменные окружения в файлах:
Например:
BACKUP_ENABLED=true |
BLACKBOX_EXPORTER_ENABLED=true |
EMAIL_ENABLED=true |
Если эти значения установлены в `true`, соответствующие модули будут запускаться автоматически при выполнении команды:
sudo ./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: все настройки будут сохранены. |
Для отправки уведомлений в чат Telegram при срабатывании алертов есть два способа настройки:
Для работы peeper используется несколько сертификатов, которые описаны ниже:
При запуске peeper должен находится по пути certificates/crt/ваш-домен-для-peeper.pem. Название сертификата должно быть равно вашему домену, который будет использоваться для peeper. Данный сертификат должен быть в формате .pem и содержать внутри:
Собрать цепочку сертификатов можно следующим образом:
ваш-домен-для-peeper.pemВ случае добавления или обновления сертификата после запуска peeper, необходимо перезапустить peeper-proxy командой:
docker restart peeper-proxy |
Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно отслеживать, и если не используется blackbox. Сертификат необходимо положить в certificates/ca/ca.crt. После добавления сертификата может потребоваться перезапуск blackbox. Перезапуск осуществляется следующей командой:
docker restart peeper-exporter-blackbox |
На данный момент при стандартной установке peeper-server устанавливает peeper-exporter-blackbox, который позволяет отслеживать необходимые сайты, следить за состоянием сертификатов и уведомлять о проблемах с доступностью.
Для настройки целей мониторинга необходимо добавить в файл http/blackbox_http.yaml или создать новый с названием http/*.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-backup sh /restore.sh logs|metrics **название архива резервной копии** docker start peeper-metrics peeper-logs |
Внутри контейнера peeper-backup есть 2 параметра восстановления. Для логов logs, для метрик metrics. |
После восстановления необходимо проверить, что контейнеры запустились:
docker ps | grep peeper |
Иногда может быть недостаточно обычных скриншотов или частей логов для полноценного анализа инцидента. В таких случаях необходимо предоставить специалистам технической поддержки актуальный дамп данных. Для этого выполните принудительное создание резервной копии командой (модуль для этого включать не обязательно). Команду необходимо выполнить в папке, где на данный момент лежат файлы Peeper Server:
docker run --rm --entrypoint sh --volumes-from peeper-metrics --volumes-from peeper-logs -v ${PWD}/backups:/backups nexus.eltex.loc:9007/peeper/peeper-backup:0.8 /backup.sh |
После завершения процедуры перейдите в директорию ${PWD}/backups, найдите архивы с самой свежей датой изменения и направьте их в техническую поддержку.
| Название | Описание |
|---|---|
| peeper-agent | Автоматически находит запущенные приложения и передает данные об их работе в центральное хранилище. |
| peeper-exporter-mysql | Отвечает за мониторинг производительности баз данных MySQL/MariaDB. |
| peeper-exporter-postgres | Отвечает за мониторинг производительности баз данных PostgreSQL. |
| peeper-exporter-sql | Собирает статистику на основе выполнения конкретных SQL-запросов к базам данных. |
| peeper-provisioner | Автоматически загружает и настраивает графики и правила оповещений в интерфейсе системы (выполняется только при запуске, затем находится в выключенном состоянии). |
| peeper-telegraf | Следит за состоянием самого сервера Linux и среды запуска контейнеров Docker. |
| peeper-vector | Занимается сбором, обработкой и передачей текстовых журналов событи. |
Для установки Peeper Client скачайте на сервер peeper-client архив с файлами: https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client.tar
mkdir peeper-client && cd peeper-client wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client.tar" -O 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 вместе с другим ПО Элтекс, вы можете найти непосредственно в документации продуктов. Peeper Client может быть установлен на сервер с Ubuntu без развернутых на нем приложений Элтекс для мониторинга только Linux и Docker. Команда для установки при этом не изменится.
Для offline установки Peeper Client скачайте на сервер peeper-client архив с файлами: https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client-offline.tar
wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client-offline.tar" -O peeper-client-offline.tar |
| После скачивания архива, его необходимо поместить на целевой хост. Сделать это можно любым доступным способом. |
Далее распакуйте из архива файлы:
tar -xvf peeper-client-offline.tar |
Команда установки Peeper Client:
sudo ./setup.sh --load sudo ./setup.sh -i |
Вся установка и дальнейшая работа с Peeper Client должна происходить через установочный скрипт setup.sh. Ниже описаны ключи для взаимодействия со скриптом:
| Длинный ключ | Короткий ключ | Описание |
|---|---|---|
| --compose-v1 | -1 | Принудительно использует старую версию Docker Compose. |
| --config | -c | Выводит в консоль итоговую конфигурацию запуска. |
| --debug | -d | Запускает систему в режиме отладки с подробным выводом информации. |
| --help | -h | Выводит справочную информацию по всем доступным командам. |
| --hostname <NAME> | -H | Позволяет вручную задать имя хоста для системы. |
| --install | -i | Запускает процесс установки системы. |
| --interactive | -I | Включает интерактивный режим работы (для отладки). |
| --load | -l | Загружает компоненты системы из локальных файлов (офлайн установка). |
| --mysql-exporter | -m | Включает модуль peeper-exporter-mysql для сбора метрик MySQL. |
| --postgres-exporter | -p | Включает модуль peeper-exporter-postgres для сбора метрик PostgreSQL. |
| --prune | -P | Очищает неиспользуемые данные и образы для освобождения места. |
| --save | -s | Сохраняет компоненты в архив для переноса на сервера без интернета. |
| --uninstall | -u | Запускает процесс удаление системы с сохранением данных. |
| --version | -v | Отображает номер текущей версии системы. |
Пример запуска с ключами:
sudo ./setup.sh -i -H eccm -m -p |
Модули можно активировать без указания ключей, если задать соответствующие переменные окружения в файлах:
Например:
MYSQL_EXPORTER_ENABLED=true |
POSTGRES_EXPORTER_ENABLED=true |
Если эти переменные установлены в `true`, соответствующие модули будут автоматически запущены при выполнении команды:
sudo ./setup.sh -i |
Для корректной работы модулей peeper-exporter-mysql и peeper-exporter-mysql недостаточно включить их только через ключи или *_ENABLED=true.
Без этих значений экспортеры не смогут подключиться к базам данных и начать сбор метрик. |
Графический интерфейс представляет из себя GUI Grafana, доступный по адресу: https://<адрес сервера>
Пользователь по умолчанию (корректируется в файле .env):
Логин: admin
Пароль: admin
Дашборды можно найти в меню Dashboards. Для получения информации о каждом графике в дашборде наведите курсор на иконку i над графиком. Отобразится текстовая подсказка с информацией по данному графику.
При стандартной установке Peeper Server, мы получаем фиксированный список дашбордов. Эти дашборды нужны для отображения общей информации по хостам, которые добавлены в Peeper. Представленные ниже дашборды можно найти в папке "General Dashboards - общие дашборды".
| Название дашборда | Описание |
|---|---|
| Docker Dashboard | Отображает статус работы контейнеров и статистику потребления ими ресурсов (CPU, RAM, сеть). |
| Docker Logs Dashboard | Предоставляет интерфейс для поиска, фильтрации и просмотра логов контейнеров в реальном времени. |
| HAProxy Dashboard | Визуализирует входящий трафик балансировщика, состояние бэкендов и количество ошибок при обработке запросов. |
| HTTP\HTTPS Probes Dashboard | Отслеживает доступность веб-сервисов, время их отклика и сроки действия SSL-сертификатов. |
| Linux System Dashboard | Показывает общую производительность хоста, включая загрузку процессора, использование памяти, дисков и сетевую активность. |
В случае возникновения ошибки, указанной ниже, необходимо отредактировать .env файл и указать значение переменной PEEPER_EXTERNAL_MODE="true", и заново ввести команду установки Peeper Client.
Error response from daemon: error while removing network: network internal has active endpoints |