Мы подготовили бандл для Docker. Проект расположен по адресу https://github.com/igtel/npg

В этой статье опишем краткую инструкцию по инсталляции бандла.

Другие статью о нашей сборке будем публиковать в нашем блоге

Если вам необходима специфичная сборка или необходимо произвести настройки  сборки для вашей  среды — обращайтесь к нам по почте или через форму обратной связи

Системные требования:

ОС: Linux x64 Docker: ver> = 1.12;
HDD: 5Gb свободно;
TCP-порты: 9090, 8080, 3000, 9093, 9115;
Для RHEL/Centos: отключите SELinux или создайте новые правила записи в директорию установки для docker.
1. Распакуйте архив проекта «npg» в выбранную для установки директорию. Например, пусть директория установки будет /opt. Текущий пользователь должен иметь доступ на чтение и запись к директории установки, и процесс docker также должен иметь такой доступ, если docker у вас установлен как non-root пользователь: cd /opt tar xvfz npg.tgz
2. Перейдите в директорию проекта «npg»:
cd npg
3. (необязательно) Вы можете изменить пароль по умолчанию для пользователя-администратора grafana. Отредактируйте файл config.grafana, изменив значение пароля в строке:
GF_SECURITY_ADMIN_PASSWORD = admin
4. Проект «npg» может быть реализован в двух разных режимах:

    • Как сервисы docker stack (вариант A)
    • как сервисы docker compose (вариант B).

Вы можете использовать вариант A, если ваша docker-инфраструктура установлена в режиме swarm, и вариант B — для отдельного docker-хоста. Для стекового развертывания ваша директория установки должна быть разделяемой для swarm-хостов.

Установка. Вариант А)

Для сервисов развертывания используйте файл «docker-stack.yml». Вы можете предварительно отредактировать этот файл и изменить конфигурационные настройки для некоторых сервисов. Stack включает:

    • prometheus – сервис мониторинга и база данных,
    • alertmanager — сервис уведомлений,
    • grafana — сервис веб-панели,
    • cadvisor — (необязательный) агент мониторинга для docker-контейнеров,
    • blackbox — (необязательный) агент мониторинга URL.

Все сервисы будут развернуты на локальном docker-хосте, по умолчанию с 1 работающей репликой. Если вы хотите также осуществлять мониторинг всех swarm-контейнеров, необходимо развернуть сервис cadvisor на всех хостах. Раскомментируйте строку:
mode: global
в разделе «deploy» для сервиса «cadvisor» и удалите раздел «placement». Также вы можете раскомментировать сервис «netdata», если хотите развернуть его как docker-контейнер, а не устанавливать netdata непосредственно как сервис ОС. Запустите все сервисы стека командой:
docker stack deploy —compose-file docker-stack.yml npg
Проверьте статус сервисов стека:
docker service ls |grep npg_
Пример вывода:
ID NAME MODE REPLICAS IMAGE PORTS
ID NAME MODE REPLICAS IMAGE PORTS
5re3frstseem npg_blackbox replicated 1/1 prom/blackbox-exporter:latest *:9115->9115/tcp
9zlgb1ojah4h npg_prometheus replicated 1/1 prom/prometheus:latest *:9090->9090/tcp
gzp7pn1bo4pn npg_cadvisor replicated 1/1 google/cadvisor:latest *:8080->8080/tcp
r33g0ayg3c1u npg_grafana replicated 1/1 grafana/grafana:latest *:3000->3000/tcp
rqbtfvln7qeg npg_alertmanager replicated 1/1 prom/alertmanager:latest *:9093->9093/tcp
Каждый сервис с префиксом «npg_» должен иметь по крайней мере одну работающую реплику (первое число в колонке REPLICAS).

Установка. Вариант B)

Для развертывания сервисов используйте файл «docker-deploy.yml». Вы можете предварительно отредактировать этот файл и изменить конфигурационные настройки для некоторых сервисов. Compose включает:

    • prometheus – сервис мониторинга и база данных,
    • alertmanager — сервис уведомлений,
    • grafana — сервис веб-панели,
    • cadvisor — (необязательный) агент мониторинга для docker-контейнеров,
    • blackbox — (необязательно) агент мониторинга URL.

Запустите все сервисы командой:
docker-compose up -build -d
Проверьте текущий статус контейнера:
docker ps
пять контейнеов с префиксом «npg_» должны иметь статус «Up» (колонка STATUS).
5. После запуска сервисы будут доступны по URL-адресам:

  • prometheus — http://:9090
  • alertmanager — http://:9093
  • grafana — http://:3000
  • cadvisor — http://:8080
  • blackbox — http: //:9115

Войдите в веб-интерфейс grafana, используя учетную запись администратора по умолчанию: admin/admin
6. Установите агент Netdata на хосты, мониторинг которых вы хотите осуществлять. Вы можете установить netdata из бинарных пакетов для ОС Linux. Подробные инструкции по установке netdata приведены здесь: https://github.com/firehol/binary-packages
7. Добавьте хосты netdata к серверу prometheus. Для текущей конфигурации prometheus агенты netdata должны быть статически добавлены в файл prometheus/ targets.json. В случае инсталляции с значительным количеством агентов вы можете использовать методы обнаружения сервисов для автоматического обнаружения агентов (подробнее см. https://prometheus.io/docs/prometheus/latest/configuration/configuration/).
Скопируйте файл примера в target.json:
cp prometheus/tasks.json prometheus/target-example.json
Отредактируйте файл, изменив значение и на свои значения. Вы можете копировать и вставлять новый раздел «target» для каждого хоста netdata:
{
«targets»: [ «:19999» ],
«labels»: {
«env»: «prod»,
«job»: «»
}
},
После сохранения файла prometheus автоматически перечитает файл и начнет собирать метрики netdata для новых хостов. Вы можете проверить графическую консоль prometheus: http://:9090. Выберите какую-нибудь метрику с префиксом netdata_ и выполните запрос метрики из базы. Имя задания будет соответствовать имени хоста netdata.
8. Grafana уже имеет предварительно сконфигурированный источник данных для базы данных prometheus и панели мониторинга «Netdata Host» с графиками для основных метрик ОС. На этой панели вы можете выбрать хост (по имени задания).
9. Для получения оповещений по электронной почте отредактируйте настройки почты для вашей среды в файле alertmanager/config-example.yml и скопируйте:
cp alertmanager/config-example.yml alertmanager/config.yml
Перезапустите контейнер npg_alertmanager. Запросите идентификатор контейнера :
docker ps |grep alertmanager |cut -d » » -f1
и остановите этот контейнер:
docker stop
Если контейнер стека не будет перезапущен автоматически, вам нужно запустить контейнер командой:
docker start
10. Для выполнения мониторинга URL-адресов отредактируйте файл prometheus/prometheus.yml и раскомментируйте раздел «job_name: ‘blackbox’». В разделе «targets» добавьте URL-адреса веб-серверов. После сохранения файла перезапустите контейнер npg_prometheus.

Netdata, Prometeus, Grafana (NPG) Инструкция по инсталляции