Что такое Metricbeat?
Metricbeat — это легкий агент для отправки метрик из ваших систем и сервисов в Elasticsearch. Он собирает метрики из операционных систем и сервисов, таких как Apache, Redis, Docker и других, и отправляет их в Elasticsearch для анализа и визуализации.
Для чего используется Metricbeat?
Metricbeat используется для мониторинга производительности и состояния ваших систем и сервисов. Он помогает:
- Отслеживать использование CPU, памяти и других системных ресурсов
- Собирать метрики из контейнеров Docker
- Мониторить производительность баз данных и веб-серверов
- Отправлять метрики в Elasticsearch для последующего анализа и визуализации
Запуск Metricbeat в Docker
Запуск Metricbeat в Docker упрощает его развертывание и управление. Ниже приведены шаги по установке и настройке Metricbeat в контейнере Docker.
Предварительные требования
- Установленный Docker
- Базовые знания о работе с Docker
Запуск контейнера Metricbeat
Для запуска контейнера Metricbeat, выполните следующую команду:
docker run \
--name=metricbeat \
--user=root \
--volume="$(pwd)/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro" \
--volume="/proc:/hostfs/proc:ro" \
--volume="/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro" \
--volume="/:/hostfs:ro" \
docker.elastic.co/beats/metricbeat:8.0.0 \
-e \
-system.hostfs=/hostfs
Пояснение параметров:
--name=metricbeat
: имя контейнера.--user=root
: запуск контейнера от имени root пользователя.--volume="$(pwd)/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro"
: монтирует файл конфигурацииmetricbeat.yml
в контейнер. Замените$(pwd)/metricbeat.yml
на путь к вашему файлу конфигурации.--volume="/proc:/hostfs/proc:ro"
: монтирует файловую систему /proc контейнера.--volume="/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro"
: монтирует файловую систему /sys/fs/cgroup контейнера.--volume="/:/hostfs:ro"
: монтирует корневую файловую систему контейнера.-e
: запускает Metricbeat в режиме окружения.-system.hostfs=/hostfs
: указывает путь к файловой системе хоста.
Пример файла конфигурации metricbeat.yml
metricbeat.modules:
- module: system
metricsets:
- cpu
- load
- memory
- network
- process
- process_summary
- uptime
period: 10s
processes: ['.*']
process.include_top_n:
by_cpu: 5
by_memory: 5
output.elasticsearch:
hosts: ["http://elasticsearch:9200"]
Пояснение конфигурации:
metricbeat.modules
: определяет модули и метрики, которые Metricbeat должен собирать.output.elasticsearch
: указывает на отправку данных в Elasticsearch.
Запуск Metricbeat с использованием Docker Compose
Также вы можете использовать Docker Compose для управления контейнером Metricbeat. Пример файла docker-compose.yml
:
version: '2.2'
services:
metricbeat:
image: docker.elastic.co/beats/metricbeat:8.0.0
container_name: metricbeat
user: root
volumes:
- ./metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro
- /proc:/hostfs/proc:ro
- /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
- /:/hostfs:ro
command: ["-e", "-system.hostfs=/hostfs"]
Запуск контейнера с помощью Docker Compose:
docker-compose up -d
Заключение
Metricbeat является мощным инструментом для мониторинга производительности и состояния систем и сервисов. Использование Docker упрощает его развертывание и управление. Следуя приведенным инструкциям, вы сможете легко настроить и запустить Metricbeat в своей инфраструктуре.