Строительство центра мониторинга визуализации контейнеров Docker

задняя часть Grafana Docker CentOS
Строительство центра мониторинга визуализации контейнеров Docker

Обзор

Хост может запускать несколько контейнерных приложений. Контейнерные приложения работают на хосте. Нам необходимо знать текущее состояние контейнера, включая ряд сведений, таких как использование ЦП, использование памяти, состояние сети и место на диске. Эта информация меняется в течение время, мы называем это данными временных рядов, и в этой статье мы будем практиковатьКак построить центр визуального мониторингаЧтобы собрать информацию о времени этих контейнеров, несущих определенные приложения, и визуализировать их для анализа и отображения!

Начинай, начинай...

Примечание:Эта статья была впервые опубликована на моем официальном аккаунтеCodeSheep,МогуНажмитеилисканированиепоследующийбудь остороженЗаходи подписывайся ↓ ↓ ↓

CodeSheep · 程序羊


Подготовьтесь к зеркалированию

  • советник: отвечает за сбор изменяющихся во времени данных о контейнере

  • influxdb: отвечает за хранение данных временных рядов

  • grafana: отвечает за анализ и отображение данных временных рядов.

镜像准备


Разверните службу Influxdb

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

Open Source Time Series DB Platform for Metrics & Events (Time Series Data)

Далее разворачиваем сервис

docker run -d -p 8086:8086 \
-v ~/influxdb:/var/lib/influxdb \
--name influxdb tutum/influxdb
  • Войдите внутрь контейнера influxdb и выполните команду influx:
docker exec -it influxdb influx

进入influxdb的shell命令行

  • Создайте тест базы данных и пользователя root для этого тестового теста.
CREATE DATABASE "test"
CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES

创建测试数据库并查看


Разверните службу cAdvisor

Кадвизор Google можно использовать для сбора информации о времени для контейнеров Docker, включая данные об использовании ресурсов и производительности во время работы контейнера.

  • Запустите службу cadvisor
docker run -d \
-v /:/rootfs -v /var/run:/var/run -v /sys:/sys \
-v /var/lib/docker:/var/lib/docker \
--link=influxdb:influxdb --name cadvisor google/cadvisor:v0.27.3 \
--storage_driver=influxdb \
--storage_driver_host=influxdb:8086 \
--storage_driver_db=test \
--storage_driver_user=root \
--storage_driver_password=root

Специальные примечания:

При запуске вышеупомянутого докера могут быть два других элемента конфигурации, которые необходимо добавить (необходимы CentOS, RHEL):

  • --privileged=true

После того, как для него установлено значение true, корень в контейнере имеет реальную привилегию root, может видеть устройства на хосте и может выполнять монтирование; в противном случае корень в контейнере — это просто внешняя привилегия обычного пользователя. Этот параметр требуется в системах CentOs и RHEL, поскольку cadvisor должен получить доступ к демону Docker через сокеты.

  • --volume=/cgroup:/cgroup:ro

Для некоторых версий систем CentOS и RHEL (например, CentOS6) иерархия cgroup висит в каталоге /cgroup, поэтому вам нужно добавить параметр --volume=/cgroup:/cgroup:ro при запуске cadvisor.


Развернуть сервис Grafana

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

docker run -d -p 5000:3000 \
-v ~/grafana:/var/lib/grafana \
--link=influxdb:influxdb \
--name grafana grafana/grafana

На данный момент запущены все три контейнера:

3个容器均已启动完成

Давайте начнем конкретный эксперимент


настоящий бой

  • доступ к сервису графана

Откройте localhost:5000 для доступа к веб-службе grafana.В это время вам будет предложено войти в систему.Обратите внимание, что имя пользователя и парольadmin

grafana登陆界面

После авторизации вы можете увидеть главную страницу grafana:

grafana的主页面

Очевидно, что на Grafana нужно сделать несколько шагов, здесьInstall GrafanaГотово, дальше нам понадобится:

  • Add data source
  • Create dashboard
  •  …

  • Add Data Source

Нажмите Добавить источник данных, чтобы ввести

Add Data Source

Затем в основном настройки вкладки «Настройки»

Setting

Нам нужно заполнить содержимое в соответствии с реальной ситуацией:

填写Setting中的内容

Если источник данных добавлен успешно, будет предложено

Data source添加成功

После добавления источника данных нам нужно добавить дашборд (Dashboard)


  • Add Dashboard

Нажмите Добавить панель управления, чтобы войти

Add dashboard

Существует множество типов информационных панелей на выбор, мы просто выбираем наиболее часто используемый график.

Graph

После ввода щелкните раскрывающийся список «Название панели», а затем выберите «Редактировать», чтобы изменить

Panel Title → Edit

Главное в Правке добавить условия запроса, продолжение смотрите ниже


  • Add Query Editor

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

Add Query Editor

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

Конечно, здесь можно отслеживать не только один индикатор, но и более одного контейнера, для большего количества комбинаций нам просто нужно добавить записи запроса по одной ниже!

Наконец, я добавил три условия мониторинга, чтобы следить за показателями использования памяти тремя контейнерами, grafana, influxdb и cadvisor, и отображать их на графике одновременно, не правда ли, это очень интуитивно понятно!

监测三个容器的memory usage指标

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


постскриптум

Другие практические статьи автора SpringBt находятся здесь:


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


CodeSheep · 程序羊