BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Метрики Docker с помощью Prometheus и Grafana

Метрики Docker с помощью Prometheus и Grafana

 

С возвращением, мои дорогие любители мониторинга! Мы рады тому, что Вы продолжаете осваивать инструменты мониторинга.

Сегодня у нас есть увлекательное задание, которое прокачает Ваши навыками  и украсит Ваше резюме.

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

Поехали!

 

 

Дашборд Grafana

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

Дашборды состоят из панелей, каждая из которых представляет собой часть истории, которую Вы хотите рассказать.

Каждая панель состоит из запроса и визуализации. Запрос определяет, какие данные Вы хотите отобразить, а визуализация - как эти данные отображаются.

 

Что такое Prometheus..??

Prometheus - это система мониторинга и оповещения с открытым исходным кодом, разработанная для DevOps. Она собирает метрики с различных объектов, таких как серверы, контейнеры и приложения, с помощью специальной модели.

Prometheus хранит собранные метрики в базе данных временных рядов, что позволяет выполнять сложные запросы и визуализацию полученных данных. Он предоставляет гибкие возможности оповещения на основе заданных пороговых значений и поддерживает интеграцию с популярными инструментами оповещения.

 

Наше сегодняшнее задание  № 1:

- установить Docker и запустить его на Linux EC2 с помощью USER DATA.

  1. Запустите новый экземпляр Ubuntu 22.04 t2.micro EC2.
  2. Во время запуска экземпляра EC2 перейдите на страницу «Configure Instance Details».
  3. В разделе «Advanced Details» найдите поле «User data».
  4. Вставьте скрипт, приведенный ниже, в поле « User data ».
  5. Продолжите настройку экземпляра EC2 и запустите экземпляр.
#!/bin/bash
 # Update the system apt-get update apt-get upgrade -y # Install Docker dependencies apt-get install -y apt-transport-https ca-certificates curl software-properties-common # Add Docker's official GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Add Docker repository echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Update package information and install Docker apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io # Start Docker service systemctl start docker # Enable Docker to start on system boot systemctl enable docker

 

Задание № 2:

Создать 2 контейнера Docker и запустить в них любое базовое приложение (подойдет простое приложение todo).

Шаг 1

  • Для начала мы должны установить  Grafana. Для этого Вы можете использовать официальную инструкцию по установкe.

 

Шаг 2

  • Следуйте моим указаниям для того, чтобы запустить простое приложение node.js docker container
  • Выполните следующие шаги для запуска второго контейнерного приложения:
  • Мы собираемся запустить сервер apache2 на том же экземпляре ec2.
 
#Create a new file called "Dockerfile" in a directory of your choice.
 $ touch Dockerfile #Open the Dockerfile using a text editor of your choice. $ nano Dockerfile #Add the following content to the Dockerfile: FROM httpd:2.4 COPY index.html /usr/local/apache2/htdocs/ EXPOSE 80 #Save and exit the Dockerfile. #Create a new file called "index.html" in the same directory as the Dockerfile. $ touch index.html #Open the index.html file using a text editor. $ nano index.html #Add the following content to the index.html file: <!DOCTYPE html> <html> <head>     <title>Hello, World!</title> </head> <body>     <h1>Hello, World!</h1> </body> </html> #Save and exit the index.html file. #Build the Docker image using the following command: $ docker build -t my-apache-image . #Run the Docker container using the following command: $ docker run -d -p 8080:80 my-apache-image

 

  • Я установил все вышеперечисленные инструменты, вот мой скриншот:

 

 

Шаг 3

  • С помощью контейнера docker запустите Prometheus, выполнив следующие действия
  • Создайте файл prometheus.yaml и запишите в него указанный ниже код конфигурации promethues.
#create file
 sudo vi prometheus.yaml #write configuations in this file global:   scrape_interval:     15s # By default, scrape targets every 15 seconds.   # Attach these labels to any time series or alerts when communicating with   # external systems (federation, remote storage, Alertmanager).   external_labels:     monitor: 'codelab-monitor' # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs:   # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.   - job_name: 'prometheus'     # Override global default and scrape targets from this job every 5 seconds.     scrape_interval: 5s     static_configs:       - targets: ['localhost:9090'] #save this file

 

  • После успешного редактирования файла prometheus.yaml необходимо запустить контейнер docker для вышеуказанных конфигураций.
  • Выполните следующую команду:
sudo docker run -d --name prometheus -v $(pwd):/etc/config -p 9090:9090 prom/prometheus --config.file=/etc/config/prometheus.yaml

 

  • Давайте разберем эту команду и объясним каждую ее часть:
  • docker run: Это команда для запуска контейнера Docker.
  • d: запускает контейнер в фоновом режиме (detached mode), позволяя ему продолжать работу даже после закрытия терминальной сессии.
  • name prometheus: Присваивает контейнеру имя «prometheus».
  • v $(pwd):/etc/config: Монтирует текущий рабочий каталог ($(pwd)) как том внутри контейнера по пути /etc/config, что позволяет контейнеру получить доступ к конфигурационному файлу Prometheus, расположенному в текущем каталоге.
    • p 9090:9090: Сопоставляет порт 9090 хост-машины с портом 9090 контейнера. Это необходимо для доступа к веб-интерфейсу Prometheus, запущенному внутри контейнера.
  • prom/prometheus: Указывает образ Docker, который будет использоваться для создания контейнера. В данном случае используется официальный образ Prometheus из Docker Hub.
  • config.file=/etc/config/prometheus.yaml: Устанавливает конфигурационный файл для Prometheus внутри контейнера в /etc/config/prometheus.yaml. Это предполагает, что файл конфигурации prometheus.yaml присутствует в текущем каталоге и смонтирован как том.
  • Затем выполните команду sudo docker ps`

 

  • Все контейнеры работают.
  • Теперь в группе безопасности экземпляра в консоли aws разрешены порты для входящих правил.
  • Разрешите следующие правила входящих портов:.
  • Порт 9090 для prometheus, порт 49160 для сервера приложений node.js, порт 8080 для apache-сервера, порт 3000 для Grafana, порт 9323 для журналов docker.

 

  • После выполнения всех шагов Вы получите панель Prometheus, как показано здесь: http://<public-ip>:9090.

 

Задание № 3:

- интегрировать докер-контейнеры и поделиться журналами с Grafana.

  • Сначала нам нужно отредактировать конфигурационный файл docker daemon.json в директории etc/docker/daemon.json.
  • Если в этой директории нет ни одного файла, создайте файл daemon.json и добавьте в него следующий код:
{
         "metrics-addr" : "0.0.0.0:9323",         "experimental" : true } #if this code not working then you can try following code  {         "metrics-addr" : "127.0.0.1:9323",         "experimental" : true }

 

  • Чтобы применить это изменение, необходимо перезапустить службу docker sudo systemctl restart docker`.
  • Теперь подождите некоторое время, а затем проверьте журналы на http://<public-ip>:9323.
  • Вы должны получить логи докера на веб-странице следующего вида:

 

  • Теперь нам нужно добавить новую цель в файл prometheus.yaml следующим образом.
  • Добавьте задание Docker в файл prometheus.yaml.

- job_name: 'docker'
  scrape_interval: 5s
  static_configs:
    - targets: ['13.126.86.158:9323']

 

 

  • После этого шага необходимо перезапустить контейнер Prometheus docker docker restart <container id>`.
  • Цель docker будет добавлена в раздел prometheus targets.

 

Задание № 4:

- проверить журналы и создать дашборд docker с помощью  Grafana UI.

  • Для того,  чтобы создать дашборд в Grafana, необходимо войти в систему с именем пользователя admin и таким же паролем на сайте http://<public-ip>:3000.

 

  • После входа в систему нажмите на кнопку Add your first data source.

 

  • Затем в качестве источника данных выберите Prometheus.
  • Теперь введите url сервера Prometheus:

 

  • Теперь нажмите на кнопку Save & Test. При успешном выполнении появится диалоговое окно.
  • В Grafana мы можем создавать различные виды дашбордов в зависимости от Ваших потребностей.
  • Так, в этом уроке мы создадим дашборд с 4 панелями.
  • Первая панель будет отображать количество CPU двигателя, вторая - количество запущенных контейнеров, третья - количество приостановленных контейнеров и последняя - количество остановленных контейнеров.
  • Нажмите на Build Dashboard, а затем выберите новую панель.
  • В окне Metrics browser выберите engine_daemmon_engine_cpus_cpus`, затем выберите job и имя job - docker. Затем нажмите кнопку Run queries для того, чтобы получить количество CPU двигателя.

 

  • Для добавления второй панели нажмите  Add Panel 
  • В окне выбора браузера Metrics выберите engine_daemmon_container_states_containers`, затем выберите фильтр State и состояние - running. Затем нажмите кнопку Run queries, и Вы получите количество запущенных контейнеров, как показано ниже.

 

  • Для добавления 3 панели нажмите Add Panel.
  • В окне выбора браузера Metrics выберите engine_daemmon_container_states_containers`, затем выберите фильтр State и состояние Pause. Затем нажмите кнопку Run queries, и Вы получите количество приостановленных контейнеров, как показано ниже.

 

  • Для добавления 4 панели нажмите Add Panel.
  • В окне выбора браузера Metrics выберите engine_daemmon_container_states_containers`, затем выберите фильтр State и состояние - stopped . Затем нажмите кнопку Run queries, и Вы получите количество остановленных контейнеров, как показано ниже.

 

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

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Spring Boot c Prometheus и Grafana. Локальная установка и настройка
Следующая статья →
Мониторинг метрик Kafka с помощью Prometheus и Grafana

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • СберКорус (Группа компаний Сбербанка) – это ИТ‑компания, ИТ‑интегратор, SaaS-провайдер. Является разработчиком цифровых сервисов и услуг для автоматизации широкого диапазона бизнес-процессов юридических лиц. В 2004 году компания стала первым в России оператором электронного документооборота, а в 2012 году вошла в экосистему Сбера. 

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  •  ООО «ММК-Информсервис» создает высокотехнологичные решения для эффективной работы предприятий. Разрабатывают и внедряют телекоммуникационные и бизнес-приложения, автоматизируют производство, выстраивают и поддерживают корпоративную IT-инфраструктуру.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.