Что такое Journalbeat?
Journalbeat — это легкий агент для отправки логов из systemd journal в Elasticsearch или Logstash для анализа и визуализации. Он предназначен для работы в системах, использующих systemd, и позволяет централизовать управление логами.
Для чего используется Journalbeat?
Journalbeat используется для сбора и отправки логов из systemd journal в централизованное хранилище. Он помогает:
- Автоматически собирать логи из systemd journal
- Отправлять логи в Elasticsearch или Logstash
- Упрощать анализ логов и мониторинг приложений
- Централизовать управление логами
Установка и настройка Journalbeat
Установка и настройка Journalbeat включают следующие шаги:
Установка Journalbeat
Вы можете установить Journalbeat, используя пакеты, доступные для вашей операционной системы, или скомпилировать его из исходного кода. Ниже приведены шаги для установки Journalbeat на Debian/Ubuntu и RHEL/CentOS:
Debian/Ubuntu
curl -L -O https://artifacts.elastic.co/downloads/beats/journalbeat/journalbeat-7.15.2-amd64.deb
sudo dpkg -i journalbeat-7.15.2-amd64.deb
RHEL/CentOS
curl -L -O https://artifacts.elastic.co/downloads/beats/journalbeat/journalbeat-7.15.2-x86_64.rpm
sudo rpm -vi journalbeat-7.15.2-x86_64.rpm
Конфигурация Journalbeat
Файл конфигурации Journalbeat по умолчанию находится в /etc/journalbeat/journalbeat.yml
. Вот пример файла конфигурации:
journalbeat.inputs:
- paths:
- /var/log/journal
output.elasticsearch:
hosts: ["http://elasticsearch:9200"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
Пояснение конфигурации:
journalbeat.inputs
: определяет пути к журналам, которые Journalbeat должен собирать.output.elasticsearch
: указывает на отправку данных в Elasticsearch.processors
: добавляет метаданные о хосте и облаке к логам.
Запуск Journalbeat
Для запуска Journalbeat используйте следующую команду:
sudo service journalbeat start
Запуск Journalbeat в Docker
Вы можете запустить Journalbeat с использованием Docker для упрощения его развертывания и управления. Пример команды для запуска контейнера Journalbeat:
docker run \
--name=journalbeat \
--user=root \
--volume="/path/to/journalbeat.yml:/usr/share/journalbeat/journalbeat.yml:ro" \
--volume="/var/log/journal:/var/log/journal:ro" \
docker.elastic.co/beats/journalbeat:7.15.2
Пояснение параметров:
--name=journalbeat
: имя контейнера.--user=root
: запуск контейнера от имени root пользователя.--volume="/path/to/journalbeat.yml:/usr/share/journalbeat/journalbeat.yml:ro"
: монтирует файл конфигурацииjournalbeat.yml
в контейнер. Замените/path/to/journalbeat.yml
на путь к вашему файлу конфигурации.--volume="/var/log/journal:/var/log/journal:ro"
: монтирует каталоги журналов systemd для доступа к логам.
Пример файла конфигурации journalbeat.yml для Docker
journalbeat.inputs:
- paths:
- /var/log/journal
output.elasticsearch:
hosts: ["http://elasticsearch:9200"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
Использование Docker Compose для Journalbeat
Вы также можете использовать Docker Compose для управления контейнерами Journalbeat. Пример файла docker-compose.yml
:
version: '2.2'
services:
journalbeat:
image: docker.elastic.co/beats/journalbeat:7.15.2
container_name: journalbeat
user: root
volumes:
- ./journalbeat.yml:/usr/share/journalbeat/journalbeat.yml:ro
- /var/log/journal:/var/log/journal:ro
Запуск контейнеров с помощью Docker Compose:
docker-compose up -d
Заключение
Journalbeat является мощным инструментом для централизованного управления логами из systemd journal. Использование Docker упрощает его развертывание и управление. Следуя приведенным инструкциям и руководствам, вы сможете легко настроить и запустить Journalbeat в своей инфраструктуре.