Версия ПО 0.5
Общая информация
Peeper — система мониторинга программных продуктов Eltex.
Архитектура Peeper состоит из двух частей:
- Клиентская. Устанавливается на одном сервере с продуктом, например ECCM, Softswitch или SoftWLC. В ее задачи входит сбор метрик и их отправка на серверную часть.
- Серверная. В ее задачи входит агрегация и хранение метрик, визуализация метрик в виде графиков, отправка алертов об авариях в Telegram.
Все ПО предоставляется в виде Docker-образов, размещенных в публичных репозиториях, и файлов compose.yml и .env для деплоя контейнеров.
Зачем необходим Peeper
Peeper нужен, чтобы:
- предотвратить появление чрезвычайной ситуации на серверах и приложениях клиента заранее;
- в случае ЧС иметь возможность постфактум распутать клубок инцидента (иметь всю необходимую информацию в одном месте для того, чтобы завершить расследование);
- иметь возможность оперативно оценить внутреннее состояние системы по ее внешним показателям, а не просто констатировать факт, что система сломалась.
Функции и свойства Peeper
Peeper прост в развертывании и эксплуатации, что крайне важно для системы мониторинга. Также 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/
Peeper Server
Требования к серверу
| ОС | Ubuntu 22.04 Server или выше |
| CPU | 2 |
| RAM | 4 ГБ |
| Disk | 100 ГБ |
| Предустановленное ПО | Docker, Docker Compose |
Для установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/cTfe9I3JyTxefjR
Пароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesk: https://servicedesk.eltex-co.ru/
Далее распакуйте из архива файлы:
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
В 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 скачайте на сервер peeper-client архив с файлами: https://cloud.eltex-co.ru/index.php/s/lEmEnAl0qnkH0JU
Пароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesk: https://servicedesk.eltex-co.ru/
Далее распакуйте из архива файлы:
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".
Сохраните token для доступа к Grafana в файле peeper-token:
echo <token> > peeper-token
После запуска Peeper Client токен из файла peeper-token будет автоматически удален
Команда установки Peeper Client:
sudo ./setup.sh -i <app>
где <app> — имя ПО Элтекс, установленное на данном сервере, например eccm или softwlc.
При установке Peeper Client на сервера с ECCM или SoftWLC необходимо распаковать архив с Peeper в дирректорию, откуда происходила установка SoftWLC или ECCM, чтобы установочные файлы Peeper оказались на одном уровне с папками "softwlc" или "eccm".
Peeper Client может быть установлен на сервер с Ubuntu без развернутых на нем приложений Элтекс для мониторинга только Linux и Docker. Тогда команда установки Peeper Client будет такой:
sudo ./setup.sh -i none
При запуске Peeper Client предложит переопределить значение Hostname сервера, под которым данный хост будет идентифицирован на стороне Peeper Server. Можно нажать Enter и тогда будет использовано имя Hostname сервера или можно ввести новое имя, удобное администратору для идентификации хоста среди остальных.
Графический интерфейс
Графический интерфейс представляет из себя GUI Grafana, доступный по адресу: https://<адрес сервера>
Логин/пароль по умолчанию: admin/admin (корректируется в файле .env)
Дашборды можно найти в меню Dashboards.
Для получения информации о каждом графике в Дашборде наведите курсор на иконку i над графиком. Отобразится текстовая подсказка с информацией по данному графику.
Настройка отправки уведомлений в Telegram
Для того, чтобы уведомления в результате срабатывания Алертов отправлялись в чат Telegram, необходимо в WEB интерфейсе Grafana перейти в раздел "Alerting" → "Contact Points". Там для Contact Point "Telegram" нажимаем "Edit", в поле Chat ID вводим ID чата Telegram, куда должны отправляться уведомления, а в поле Bot API Token нажимаем Reset и вводим token Telegram бота, который должен быть добавлен в чат. Проверить корректность введенных данных и доставку алертов в чат можно кнопкой "Test".
Далее сохраняем настройки кнопкой "Save Contact Point".
Использование модуля peeper-blackbox для мониторинга доступности сайтов
На данный момент при стандартной установке 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 |
Резервное копирование Peeper
Контейнер с бэкапами умеет записывать метрику vm_backup_status и vm_backup_timestamp. Внутри peeper есть алерт, который показывает, если последний бэкап завершился с ошибкой или не выполнился.
Снятие резервных копий
Для резервного копирования peeper-server есть отдельный контейнер, который запускается вместе со всем peeper. Данный контейнер, с помощью утилит резервного копирования Victoria Metrics осуществляет резервное копирование истории метрик. конифгурация данного контейнера происходит в .env файле:
PEEPER_BACKUP_KEEP="1" # Количество резервных копий, которые будут сохранены в системе
PEEPER_BACKUP_DIR="./backups" # Путь в системе, где будут сохраняться резервные копии (указывать полный путь до папки)
PEEPER_BACKUP_CRON="0 0 * * *" # Cron расписание по которому будут сниматься резервные копииНастройки выше конфигурируют автоматические бэкапы. В случае когда вам нужно воспользоваться снятием ручным снятием резервной копии, можно использовать данную команду:
docker exec peeper-vmbackup-toolbox sh /backup.shВосстановление резервных копий
Для восстановления из резервной копии, необходимо действовать так:
- Резервную копию необходимо положить в папку указанную в PEEPER_BACKUP_DIR и запомнить название бэкапа
- После этого необходимо выполнить команду:
docker stop peeper-metrics || docker exec -i peeper-vmbackup-toolbox sh /restore.sh **название бэкапа без tar.gz** || docker start peeper-metrics || docker restart peeper-grafana- Проверить, что в процессе восстановления не возникло проблем и контейнеры запустились:
docker ps | grep peeperВзаимодействие с сертификатами Peeper
Для работы peeper используется несколько сертификатов, которые описаны ниже:
- HTTPS сертификат. При запуске peeper должен находится по пути
certificates/crt/ваш-домен-для-peeper.pem. Название сертификата должно быть равно вашему домену, который будет использоваться для peeper. Данный сертификат должен быть в формате .pem и содержать внутри:- Приватный ключ
- Сертификат домена
- Цепочку доверия (Intermediate + Root CA)
Собрать цепочку сертификатов можно так:
- Откройте файлы сертификатов в текстовом редакторе
- Создайте новый документ
- Скопируйте в новый документ содержание каждого из файлов в последовательности: сертификат, ключ, корневой сертификат
- Сохраните файл как
ваш-домен-для-peeper.pem
В случае если вы добавляете или обновляете сертификат после запуска peeper, вам необходимо будет перезапустить peeper-haproxy командой:
docker restart peeper-haproxy- CA сертификат.
- Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно мониторить и если у вас не используется blackbox. Сертификат нужно будет положить в
certificates/ca/ca.crt. После добавления данного сертификата, может потребоваться перезапуск blackbox, это можно сделать командой:
- Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно мониторить и если у вас не используется blackbox. Сертификат нужно будет положить в
docker restart peeper-exporter-blackboxОшибка пересечения сетей
В случае возникновения подобной ошибки:
|
необходимо отредактировать .env файл и указать значение переменной PEEPER_EXTERNAL_MODE="true" и заново ввести команду установки Peeper Client
