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


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

Архитектура Peeper состоит из двух частей:

  • Клиентская. Устанавливается пакетом ecss-peeper-client на SSW. В ее задачи входит сбор метрик и их отправка на серверную часть.
  • Серверная. В качестве такого сервера может быть использован сервер Ubuntu на котором установлен Peeper-server. В ее задачи входит агрегация и хранение метрик, визуализация метрик в виде графиков, отправка уведомлений об авариях в Telegram.

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

Зачем необходим Peeper

Peeper нужен, чтобы:

  • предотвратить появление чрезвычайной ситуации на серверах и приложениях клиента заранее;
  • в случае ЧС иметь возможность постфактум распутать клубок инцидента (иметь всю необходимую информацию в одном месте для того, чтобы завершить расследование);
  • иметь возможность оперативно оценить внутреннее состояние системы по ее внешним показателям, а не просто констатировать факт, что система сломалась.

Функции и свойства Peeper

Peeper прост в развертывании и эксплуатации, что крайне важно для системы мониторинга. Также Peeper позволяет:

  • собирать, хранить метрики и лог файлы;
  • визуализировать данные в виде графиков, диаграмм и таблиц;
  • высылать уведомления в случае срабатывания триггера по какой-либо метрике.

Архитектура Peeper

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

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

Установка Peeper-server

Для успешной установки Peeper Server на всех серверах должен быть предустановлен docker и docker compose

Установка docker

на Peeper Server

sudo apt update
CODE

на Peeper Server

 sudo apt install docker.io wget
CODE

Peeper Server

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

ОСUbuntu 22.04 Server или выше
CPU2
RAM4 ГБ
Disk100 ГБ
Предустановленное ПОDocker, Docker Compose

Для установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-deploy.tar

на Peeper Server

mkdir peeper-server && cd peeper-server
CODE

на Peeper Server

wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-deploy.tar" -O peeper-deploy.tar
CODE

Распакуйте архив:

на Peeper Server

tar -xvf peeper-deploy.tar
CODE

Cкорректируйте переменные в файле .env. Как минимум необходимо скорректировать 1 переменную: PEEPER_HOST. В ней нужно указать IP сервера Peeper, по которому пользователи и администраторы будут открывать WEB Peeper. Так же можно изменить значение логина и пароля по-умолчанию admin/admin.

на Peeper Server

nano .env
CODE

PEEPER_REGISTRY="hub.eltex-co.ru" # "hub.eltex-co.ru", "nexus.eltex.loc:9007"
PEEPER_VERSION="0.7" # Версия системы мониторинга Peeper

PEEPER_HOST="10.0.20.55" # Доменное имя или IP адрес Peeper сервера
PEEPER_PORT="443" # Сетевой порт Peeper сервера

PEEPER_USERNAME="admin" # Имя администратора Grafana (по-умолчанию)
PEEPER_PASSWORD="admin" # Пароль администратора Grafana (по-умолчанию)

PEEPER_RETENTION="100d" # Максимальное время хранения метрик в базе данных

DOCKER_SOCKET="/var/run/docker.sock" # Путь к Docker socket для получения метрик Docker
TIMEZONE="Asia/Novosibirsk" # Список часовых поясов: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

MEMORY_LIMIT_BLACKBOX="256m" # Лимит потребляемой оперативной памяти для контейнера peeper-exporter-blackbox
MEMORY_LIMIT_GRAFANA="640m" # Лимит потребляемой оперативной памяти для контейнера peeper-grafana
MEMORY_LIMIT_METRICS="2048m" # Лимит потребляемой оперативной памяти для контейнера peeper-metrics
MEMORY_LIMIT_PROXY="256m" # Лимит потребляемой оперативной памяти для контейнера peeper-proxy
MEMORY_LIMIT_TELEGRAF="256m" # Лимит потребляемой оперативной памяти для контейнера peeper-telegraf
MEMORY_LIMIT_VMBACKUP="256m" # Лимит потребляемой оперативной памяти для контейнера peeper-vmbackup-toolbox

При установке Peeper Server автоматически производится загрузка наборов метрик и уведомлений для метрик Linux, Docker, Postgres, Haproxy, входящего в состав Peeper Server.

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

на Peeper Server

sudo ./setup.sh -i
CODE

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

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

Логин/пароль по умолчанию: 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".


Включение метрик на ECSS10

Развертывание ecss-peeper-client