Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Текущий »

Версия ПО 0.7.1


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

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

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

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

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

Для чего необходим Peeper

  1. Предотвращать появление чрезвычайной ситуации на серверах и приложениях клиента заранее.
  2. В случае ЧС иметь возможность разрешить инцидент (иметь всю необходимую информацию в одном месте для того, чтобы завершить расследование).
  3. Иметь возможность оперативно оценить внутреннее состояние системы по ее внешним показателям.

Функции и свойства 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 или выше
CPU2
RAM4 ГБ
Disk100 ГБ (x2 при использовании peeper-backup)
Предустановленное ПОDocker, Docker Compose

Для установки скачайте на сервер для 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

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

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

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

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

./setup.sh -i --backup --email

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

Например:

.env.backup
BACKUP_ENABLED=true
.env.blackbox
BLACKBOX_EXPORTER_ENABLED=true
.env.email
EMAIL_ENABLED=true

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

./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: все настройки будут сохранены.

Peeper Client

Для установки 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 может быть установлен на сервер с 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 -H eccm --mysql --postgres

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

Например:

.env.mysql
MYSQL_EXPORTER_ENABLED=true
.env.postgres
POSTGRES_EXPORTER_ENABLED=true

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

sudo ./setup.sh -i

Важно!

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

  1. В web-интерфейсе Grafana перейти в раздел "Alerting" → "Contact Points". Далее для Contact Point "Telegram" необходимо нажать "Edit",  в поле Chat ID ввести ID чата Telegram, куда должны отправляться уведомления, а в поле Bot API Token нажать Reset и ввести token Telegram бота, который должен быть добавлен в чат. Проверить корректность введенных данных и доставку алертов в чат можно кнопкой "Test". Далее необходимо сохранить настройки кнопкой "Save Contact Point".
  2. В файле .env, на сервере peeper указать токен в переменную TELEGRAM_BOT_TOKEN, а в переменную TELEGRAM_CHAT_ID указать chat-id. 

Использование модуля 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 расписание по которому будут сниматься резервные копии
PEEPER_COMPRESSION_LEVEL="6" # Степень сжатия архивов с резервными копиями от 1 до 9

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

docker exec peeper-backup sh /backup.sh

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

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

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

Важно!

Внутри контейнера peeper-backup есть 2 параметра восстановления. Для логов logs, для метрик metrics.

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

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

       2. CA сертификат

Данный сертификат не обязательный, если у вас нет локального домена с корневым сертификатом, который нужно отслеживать, и если не используется blackbox. Сертификат необходимо положить в certificates/ca/ca.crt. После добавления сертификата может потребоваться перезапуск blackbox. Перезапуск осуществляется следующей командой:

docker restart peeper-exporter-blackbox

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

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

Error response from daemon: error while removing network: network internal has active endpoints


  • Нет меток