Найти в Дзене
Sovenok IT hard soft ware

Начало знакомства с Docker на примере работающего сайта (часть 3)

В предыдущих публикациях мы рассмотрели, как создавать контейнеры с сайтами и веб-сервером nginx, а также научились балансировать их с помощью nginx. В этой статье мы познакомимся с Portainer — графическим интерфейсом для управления и мониторинга контейнеров. Portainer — это мощная и универсальная платформа для управления контейнерами. Благодаря поддержке нескольких кластеров и устройств, вы можете управлять средами любого типа и в любом месте: от Docker и Kubernetes на ноутбуках разработчиков, в доменных контроллерах, облаках и пограничных устройств между ними. Чтобы он начал работать, необходимо установить соответствующий контейнер. Для этого в файле docker-compose.yml в разделе service следует добавить следующие строки: Перезапускаем контейнеры docker-compose restart Давайте проверим работу системы, посетив следующий адрес: http://127.0.0.1:9000. Если всё в порядке, то сайт предложит вам создать учетную запись, после чего вы сможете авторизоваться. В моем случае список выглядит так

В предыдущих публикациях мы рассмотрели, как создавать контейнеры с сайтами и веб-сервером nginx, а также научились балансировать их с помощью nginx. В этой статье мы познакомимся с Portainer — графическим интерфейсом для управления и мониторинга контейнеров.

Portainer — это мощная и универсальная платформа для управления контейнерами. Благодаря поддержке нескольких кластеров и устройств, вы можете управлять средами любого типа и в любом месте: от Docker и Kubernetes на ноутбуках разработчиков, в доменных контроллерах, облаках и пограничных устройств между ними.

Доступные сервисы в portainer
Доступные сервисы в portainer

Чтобы он начал работать, необходимо установить соответствующий контейнер. Для этого в файле docker-compose.yml в разделе service следует добавить следующие строки:

portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: always
    networks:
      - mynetwork
portainer: image: portainer/portainer-ce container_name: portainer restart: always ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data restart: always networks: - mynetwork

Перезапускаем контейнеры docker-compose restart

Давайте проверим работу системы, посетив следующий адрес: http://127.0.0.1:9000. Если всё в порядке, то сайт предложит вам создать учетную запись, после чего вы сможете авторизоваться.

В моем случае список выглядит так
В моем случае список выглядит так

В моем случае список выглядит так

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

1. **cAdvisor** — этот контейнер собирает различные метрики, такие как загрузка процессора, объем оперативной памяти, использование сети и дисков.

2. **Prometheus** — система, предназначенная для сбора и хранения собранных метрик.

3. **Grafana** — инструмент для визуализации собранных метрик.

Запуск cAdvisor , в терминале вводим docker run -d --name=cadvisor --restart always -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -p 8081:8080 --network dockersite_mynetwork google/cadvisor , проверяем в Portainer , что контейнер успешно запущен.

Запуск Prometheus , создадим файл prometheus.yml со следующим содержимым . У меня путь до него /home/adminu/dockersite/prometheus/

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8081']
global: scrape_interval: 15s scrape_configs: - job_name: 'cadvisor' static_configs: - targets: ['cadvisor:8081']

Если cAdvisor уже был установлен на другом порту, укажите его.

В терминале вводим docker run -d --name=prometheus --restart always -p 9091:9090 -v $(pwd)/prometheus.yml:/home/adminu/dockersite/prometheus/prometheus.yml --network dockersite_mynetwork prom/prometheus . Смотрим в Portainer видим его там.

Запуск Grafana

В терминале вводим команду docker run -d --name=grafana --restart always -p 3001:3000 --network dockersite_mynetwork grafana/grafana

В Portainer видим , что успешно запущен , проверяем по адресу http://127.0.0.1:3001 , при первом входе логин пароль, admin/admin

Если что-то не работает, стоит проверить, находятся ли все контейнеры в одной сети.

-5

Добавляем в grafana , Prometheus

-6

Если тест пройден успешно, значит подключение удалось

Добавим метрики в дашборд, увидим , что данные идут

-7
  1. Создать новую панель на дашборде.  
  2. Выбрать источник данных Prometheus. Это можно сделать при создании панели в окне Select data source или в нижней части экрана, в выпадающем списке Data source.
  3. Выбрать тип визуализации Time series из выпадающего списка в правом верхнем углу экрана.  
  4. В панели настроек запроса (по умолчанию A) выбрать метрику из выпадающего списка Metric
  5. После создания панелей нужно сохранить дашборд, нажав на кнопку Save dashboard (save) в верхней панели инструментов

Как пример возьмем готовый dushboard с страницы grafana - Docker Registry. Вам необходимо скачать файл в формате JSON и импортировать его в панель с дашбордами в Grafana.

-8

Заключение

В этой статье мы настроили графический интерфейс для управления контейнерами и отслеживания логов.

Другие части

Часть 1

Часть 2

Мой канал