Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmltrue

Версия ПО 0.57


Оглавление

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка
Якорь
Установка
Установка

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

Примечание

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

Peeper Server

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

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

Для установки скачайте на сервер для peeper-server архив с файлами: https://cloud.eltex-co.ru/index.php/s/cTfe9I3JyTxefjRПароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesk.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 -xvzfxvf peeper-serverdeploy.tar.gz

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

Информация
titleВажно!

При установке Peeper Server автоматически производится провиженинг дашбордов и алертов для метрик Linux и Docker. Также производится провиженинг Contact Points, для того, чтобы алерты отправлялись в определенный Telegram чат с помощью определенного Telegram bot-а. Чтобы указать Telegram chat ID  и Telegram bot token, необходимо отредактировать файл provisioning/alert-contact-points/contactPoint-telegram.json: скорректировать "bottoken" и "chatid". Тогда алерты, возникающие при работе Peeper Server, будут отправляться в указанный Telegram чат.

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

, Docker, Postgres, Haproxy, входящего в состав Peeper Server.

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

Блок кода
sudo ./setup.sh -i

Параметры запуска и модули:

Начиная с версии 0.7, скрипт установки поддерживает дополнительные параметры запуска, которые позволяют включать отдельные модули. Параметры могут вызываться как длинными, так и короткими ключами.

МодульДлинный ключКороткий ключОписание
backup--backup-BВключает модуль резервного копирования.
blackbox--blackbox-bВключает модуль мониторинга через Blackbox Exporter.
email--email-eВключает модуль отправки уведомлений по email.

Пример запуска с ключами:

Блок кода
languagebash
./setup.sh -i --backup --email

Также существует возможность включать модули без указания ключей.
Для этого необходимо установить соответствующие переменные окружения в файлах:

Например:

Блок кода
title.env.backup
BACKUP_ENABLED=true
Блок кода
title.env.blackbox
BLACKBOX_EXPORTER_ENABLED=true
Блок кода
title.env.email
EMAIL_ENABLED=true

Если эти значения установлены в `true`, соответствующие модули будут запускаться автоматически при выполнении команды:

Блок кода
Блок кода
sudo ./setup.sh -i  
Информация
titleВажно!

У модулей в .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 скачайте на сервер peeper-client архив с файлами: https://cloud.eltex-co.ru/index.php/s/lEmEnAl0qnkH0JUПароль для скачивания можно запросить в Коммерческом Отделе Eltex или в ServiceDesk.n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client.tar

Информация

Для продукта ECSS-10 не требуется установка Peeper Client на сервер с ECSS-10. ECSS-10 содержит внутреннюю реализацию функционала Peeper Client в своем составе.

Информация

Для установки Peeper Client на сервере с SoftWLC архив peeper-client.tar нужно скачать в дирректорию /opt/eltex-softwlc/data/peeper/

Блок кода
wget "https://cloud.eltex-co.ru/index.php/s/n4RRd4rgx9pgxUO/download?path=%2F&files=peeper-client.tar" -O peeper-client.tar

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

Блок кода
tar -xvzfxvf peeper-client.tar.gz 

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 или softswitch.

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

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

...

Блок кода
ports:
  - "3000:3000"

...

Блок кода
ports:
  - "8429:8429"

...

Блок кода
[[outputs.http]]
  url = "http://localhost:8429/api/v1/import/prometheus"
  data_format = "prometheus"

...

Блок кода
sudo docker compose down peeper-telegraf

Особенности установки 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

Для запуска необходимо:

Подготовка:

Блок кода
languagebash
# Создайте директорию peeper внутри eccm и скопируйте в нее файл compose.yml:
mkdir eccm/2.1/eccm/peeper
cp ~/Downloads/compose.yml eccm/2.1/eccm/peeper

# Сделайте бэкап предыдущей версии compose-tools.sh:
cp eccm/2.1/compose-tools.sh eccm/2.1/compose-tools.sh.bak

# Заменить файл compose-tools.sh его обновленной версией:
cp ~/Downloads/compose-tools.sh eccm/2.1/compose-tools.sh

Запуск:

Примечание

Обратите внимание на расположение ключей: ключ `--peeper` должен быть перед ключом `--start`

Блок кода
languagebash
cd eccm/2.1
sudo ./compose-tools.sh --peeper --start <ECCM ADDRESS>  # а также ваши дополнительные опции

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

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

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

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

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

Troubleshooting

Проверка доступности метрик приложения для контейнера 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/ (обратите внимание на последний / !)

...

Информация

В случае, если при установке Peeper Client командой ./setup.sh -i появилась ошибка "Error response from daemon: error while removing network", то необходимо в .env файле изменить значение опции PEEPER_EXTERNAL_MODE на "true" и запустить скрипт инсталляции еще раз

При установке 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 eccm --mysql --postgres

Модули можно активировать без указания ключей, если задать соответствующие переменные окружения в файлах:

Например:

Блок кода
title.env.mysql
MYSQL_EXPORTER_ENABLED=true
Блок кода
title.env.postgres
POSTGRES_EXPORTER_ENABLED=true

Если эти переменные установлены в `true`, соответствующие модули будут автоматически запущены при выполнении команды:

Блок кода
sudo ./setup.sh -i
Информация
titleВажно!

Для корректной работы модулей peeper-exporter-mysql и peeper-exporter-mysql недостаточно только включить их через ключи или *_ENABLED=true.
Необходимо также заполнить дополнительные переменные в соответствующих .env-файлах:

  •  .env.mysql — параметры подключения к MySQL (хост, порт, пользователь, пароль)
  •  .env.postgres — параметры подключения к PostgreSQL (хост, порт, пользователь, пароль)

Без этих значений экспортеры не смогут подключиться к базам данных и начать сбор метрик.

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

Графический интерфейс представляет из себя 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Стандартный модуль для мониторинга сайтов с кастомным CAHTTPSТребует CA сертификат по пути certificates/ca/ca.crt
http_2xx_tls_strictМодуль для мониторинга только HTTPS сайтовHTTPSСтрогая проверка TLS/SSL соединения
http_tls_expiryМодуль для мониторинга SSL сертификатовHTTPSПроверяет срок действия сертификата без загрузки контента
http_post_json_2xxМодуль для мониторинга POST JSON endpointsHTTP/HTTPSОтправка POST запросов с JSON данными, проверка кода 2xx
icmpМодуль для проверки доступности по IPICMPПроверка доступности узла через ping

Резервное копирование Peeper

Контейнер с бэкапами умеет записывать метрику 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 расписание по которому будут сниматься резервные копии

Настройки выше конфигурируют автоматические бэкапы. В случае когда вам нужно воспользоваться снятием ручным снятием резервной копии, можно использовать данную команду:

Блок кода
languagebash
docker exec peeper-vmbackup-toolbox sh /backup.sh

Восстановление резервных копий

Для восстановления из резервной копии, необходимо действовать так:

  1. Резервную копию необходимо положить в папку указанную в PEEPER_BACKUP_DIR и запомнить название бэкапа
  2. После этого необходимо выполнить команду:
Блок кода
languagebash
docker stop peeper-metrics || docker exec -i peeper-vmbackup-toolbox sh /restore.sh **название бэкапа без tar.gz** || docker start peeper-metrics || docker restart peeper-grafana
  1. Проверить, что в процессе восстановления не возникло проблем и контейнеры запустились:
Блок кода
languagebash
docker ps | grep peeper

Взаимодействие с сертификатами Peeper

Для работы peeper используется несколько сертификатов, которые описаны ниже:

  1. HTTPS сертификат. При запуске peeper должен находится по пути certificates/crt/ваш-домен-для-peeper.pem. Название сертификата должно быть равно вашему домену, который будет использоваться для peeper. Данный сертификат должен быть в формате .pem и содержать внутри:
    1. Приватный ключ
    2. Сертификат домена
    3. Цепочку доверия (Intermediate + Root CA)

Собрать цепочку сертификатов можно так:

  1. Откройте файлы сертификатов в текстовом редакторе
  2. Создайте новый документ
  3. Скопируйте в новый документ содержание каждого из файлов в последовательности: сертификат, ключ, корневой сертификат
  4. Сохраните файл как ваш-домен-для-peeper.pem

В случае если вы добавляете или обновляете сертификат после запуска peeper, вам необходимо будет перезапустить peeper-haproxy командой:

Блок кода
docker restart peeper-haproxy
  1. CA сертификат.
    • Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно мониторить и если у вас не используется blackbox. Сертификат нужно будет положить в certificates/ca/ca.crt. После добавления данного сертификата, может потребоваться перезапуск blackbox, это можно сделать командой:
Блок кода
docker restart peeper-exporter-blackbox

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

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

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

...

Блок кода
Error response from daemon: error while removing network: network internal has active endpoints

необходимо отредактировать .env файл и указать значение переменной PEEPER_EXTERNAL_MODE="true" и заново ввести команду установки Peeper Client