Общая информация.

Peeper - система мониторинга программных продуктов Eltex.

Архитектурно она представляет из себя 2 части:

  1. Клиентская. Устанавливается на одном сервере с продуктом, например ECCM, Softswitch или EVI. В ее задачи входит сбор метрик и отправка метрик в серверную часть.
  2. Серверная. В ее задачи входит агрегация и хранение метрик, визуализация метрик в виде графиков, отправка алертов об авариях в Telegram.

Все ПО предоставляется в виде Docker контейнеров, размещенных в публичных репозиториях, docker-compose.yml и .env файлов для деплоя контейнеров.

Зачем вам нужен Peeper

Функции Peeper

  1. Первая и самая важная функция системы мониторинга - БЫТЬ ПРОСТОЙ в развертывании и эксплуатации;
  2. Собирать, хранить метрики и логи;
  3. Визуализировать данные в виде дашбордов, графиков, диаграмм, таблиц;
  4. Высылать Алерты в случае срабатывания триггера по какой-то метрике;

Архитектура

В архитектуре Peeper предусмотрено, что для получения метрик со стороны Peeper Client не требуется открывать никаких дополнительных портов на стороне сервера с программным продуктом Eltex. Отправка метрик с этого сервера производится методом Push.

Все входящие запросы в Peeper Server идут по HTTPs через Peeper Proxy по 443 порту.

Системные метрики.

Клиентская часть собирает следующие метрики.

Linux.

Docker

Алерты

Linux

Установка

Для установки нужно запросить установочные файлы у Коммерческого Отдела Элтекс или создать запрос в https://servicedesk.eltex-co.ru/

Для успешной установки Peeper Server и Peeper Client на всех серверах должен быть предустановлен docker и docker compose! https://docs.docker.com/engine/install/ubuntu/

Peeper Server

Для установки необходимо скачать на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/rdr8UScgPVQrpQh

Пароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesc

Далее нужно распаковать файлы из архива:

tar -xvzf peeper-server.tar.gz

cd peeper-server

Cкорректировать в .env файле переменные. Как минимум нужно скорректировать 3 переменные: PEEPER_HOST, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID

Команда установки 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/OXIq2ZPTDQBjcMD

Пароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesc

tar -xvzf peeper-client.tar.gz 

cd peeper-client

Cкорректировать в .env файле переменные. Как минимум нужно скорректировать 2 переменные: PEEPER_HOST, PEEPER_IP

Генерируем token в WEB Grafana: заходим в меню "Users and access" → "Service accounts" → "Add service account" → "Add service account token" → "Generate token"

Кладем token для доступа к Grafana в файл peeper-token

echo <token> > peeper-token

Команда установки Peeper Client:

sudo ./setup.sh -i <app>

где <app> - имя ПО Элтекс, установленное на данном сервере, например, eccm или softswitch

Особенности установки Peeper Client для Softswitch 3.14.15.17.

Версия Softswitch 3.14.15.17 может быть совместима с Peeper-Client при выполнении следующих требований:

Особенности установки Peeper Client для SoftWLC

Для корректного получения метрик от сервисов SoftWLC необходимо перезапустить SoftWLC с дополнительным compose.yml файлом.

Скопируйте compose.yml файл в дирректорию с docker-compose.yml, из которого вы устанавливали SoftWLC

docker compose -f docker-compose.yml stop

sudo docker -f docker-compose.yml -f compose.yml up -d

Особенности установки Peeper Client для ECCM

Требования к серверу

OC: Ubuntu 22.04 Server или выше

CPU: 2

RAM: 4Gb

Disk: 50Gb

Предустановленное ПО: Docker, Docker compose

Графический интерфейс

Графический интерфейс представляет из себя GUI Grafana, доступный по адресу: https://<адрес сервера>

Логин / пароль по умолчанию: admin /admin (корректируется в .env файле)

Дашборды можно найти в меню Dashboards

Для получения информации о каждом графике в Дашборде нужно навести курсор на значек i над графиком. Отобразится текстовая подсказка, содержащая информацию по данному графику

Troubleshooting Peeper

Проверяем, что контейнеру peeper-agent доступны метрики приложения

cat <<EOF | sudo docker exec -i peeper-agent sh
printf "GET /metrics HTTP/1.1\r\nHost: eltex-ems-core\r\nConnection: close\r\n\r\n" | nc eltex-ems-core 9091
EOF

где 

eltex-ems-core - имя docker контейнера приложения, отдающего метрики
9091 - порт, на котором отдаются метрики (должен быть указан в Labels контейнера приложения)
metrics - путь, на котором отдаются метрики (должен быть указан в Labels контейнера приложения)

WEB интерфейс peeper-agent для траблшутинга 

WEB интерфейс доступен на порту контейнера  peeper-agent :8429

:8429/targets - показывает состояние доступных источников метрик
:8429/service-discovery - показывает все docker контейнеры, обнаруженные Autodiscovery
:8429/config - конфигурация peeper-agent

WEB интерфейс peeper-metrics для траблшутинга 

WEB интерфейс доступен по URL:  https://<IP Peeper Server>/metrics/ (обратите внимание на последний / !)

/metrics/vmui/ - предоставляет аналог Prometheus WEB. Меню Explore Prometheus Metrics позволяет просмотреть все полученные метрики. Чтобы посмотреть метрики, полученные от конкретного приложения контейнера, можно отфильтровать их по имени job, указанной в Labels контейнеров

Ошибка пересечения сетей

В случае возникновения подобной ошибки:

failed to create network external: Error response from daemon: cannot create network c898e71330f9caded9b0f9368236923694bc0bfb2f4ccc3c359500f2500e4d8e (external): conflicts with network 682ecfbe4d4b1173729b2a264aa2f0b38703dd78603788d507e2fc9b63f2b404 (br-682ecfbe4d4b): networks have overlapping IPv4

необходимо отредактировать в compose.yml Peeper-а номер подсети, т.к. он пересекается с одной из подсетей уже запущенного контейнера на сервере