Мы подготовили бандл для Docker. Проект расположен по адресу https://github.com/igtel/npg
В этой статье опишем краткую инструкцию по инсталляции бандла. Если вам необходима специфичная сборка или необходимо произвести настройки сборки для вашей среды — обращайтесь к нам по почте или через форму обратной связи
ОС: Linux x64 Docker: ver> = 1.12;
HDD: 5Gb свободно;
TCP-порты: 9090, 8080, 3000, 9093, 9115;
Для RHEL/Centos: отключите SELinux или создайте новые правила записи в директорию установки для docker.
Распакуйте архив проекта «npg» в выбранную для установки директорию. Например, пусть директория установки будет /opt
. Текущий пользователь должен иметь доступ на чтение и запись к директории установки, и процесс docker также должен иметь такой доступ, если docker у вас установлен как non-root пользователь: cd /opt tar xvfz npg.tgz
Перейдите в директорию проекта «npg»:
cd npg
(необязательно) Вы можете изменить пароль по умолчанию для пользователя-администратора grafana. Отредактируйте файл config.grafana, изменив значение пароля в строке:
GF_SECURITY_ADMIN_PASSWORD = admin
Проект «npg» может быть реализован в двух разных режимах:
Вы можете использовать вариант A, если ваша docker-инфраструктура установлена в режиме swarm, и вариант B — для отдельного docker-хоста. Для стекового развертывания ваша директория установки должна быть разделяемой для swarm-хостов.
Для сервисов развертывания используйте файл «docker-stack.yml». Вы можете предварительно отредактировать этот файл и изменить конфигурационные настройки для некоторых сервисов. Stack включает:
Все сервисы будут развернуты на локальном 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
Для развертывания сервисов используйте файл «docker-deploy.yml». Вы можете предварительно отредактировать этот файл и изменить конфигурационные настройки для некоторых сервисов. Compose включает:
Запустите все сервисы командой:
docker-compose up -build -d
Проверьте текущий статус контейнера:
docker ps
пять контейнеов с префиксом «npg_» должны иметь статус «Up» (колонка STATUS).
Войдите в веб-интерфейс 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»: «» } },
cp alertmanager/config-example.yml alertmanager/config.yml
Перезапустите контейнер npg_alertmanager. Запросите идентификатор контейнера :docker ps |grep alertmanager |cut -d » » -f1
и остановите этот контейнер:docker stop
docker start
prometheus/prometheus.yml
и раскомментируйте раздел «job_name: ‘blackbox’». В разделе «targets» добавьте URL-адреса веб-серверов. После сохранения файла перезапустите контейнер npg_prometheus.