Логсташ в Докере

Logstas V Dokere



Logstash — это конвейер обработки данных с открытым исходным кодом, который позволяет собирать, обрабатывать и пересылать данные журналов из различных источников.

В этом руководстве мы покажем вам процесс запуска Logstash в контейнере Docker с базовой конфигурацией.

Требования:

Прежде чем мы начнем изучать руководство, убедитесь, что у вас есть следующее:







  1. Установленный Docker на вашем хост-компьютере (рекомендуется версия 23 и выше)
  2. Установлен Docker Compose на вашем компьютере.

При соблюдении данных требований мы можем продолжить обучение.



Настройте файл конфигурации Logstash

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



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





Создайте файл с именем «logstash.conf» и добавьте конфигурацию следующим образом:

вход {
файл {
путь => '/var/log/apache/access.log'

начальная_позиция => 'начало'

посколькуdb_path => '/dev/ноль'

ignore_older => 0
}
}

фильтр {
если [сообщение] =~ 'ОШИБКА' {
грок {
совпадение => { 'сообщение' => '%{COMBINEDAPACHELOG}' }
}
}
}

выход {
файл {
путь => '/var/log/apache/error_logs.log'
}
}

Предыдущий файл определяет конфигурацию, как показано ниже:

  1. Раздел ввода. В разделе ввода используется плагин ввода файлов для чтения файла журнала Apache, расположенного в /var/log/apache/access.log.
    • Затем мы устанавливаем начальную позицию в начале, что позволяет Logstash читать весь файл с начала.
    • Oncedb_path — этот параметр позволяет нам отключить отслеживание couldb в Logstash, установив значение /dev/null. Это гарантирует, что Logstash всегда читает с начала файла.
    • Ignore_older — установка значения этого параметра равным 0 позволяет Logstash обрабатывать все записи файла журнала.
  2. Раздел фильтра. В разделе фильтра мы определяем шаблон фильтра, чтобы проверить, содержит ли сообщение журнала слово ОШИБКА. Вы можете настроить условия для блоков фильтров, чтобы обеспечить более точные совпадения в файле.
    • Если условие выполнено, мы используем фильтр grok для анализа строки журнала Apache с использованием шаблона COMBINEDAPACHELOG, который является встроенным шаблоном в Logstash для анализа журналов Apache.
  3. Раздел вывода. Этот раздел позволяет нам определить формат вывода для совпадающих записей.
    • В нашем случае мы записываем их в файл /var/log/apache/error_logs.log, используя параметр пути.

Это должно предоставить нам базовую конфигурацию Logstash, которая позволит нам продемонстрировать некоторые основные принципы работы Logstash.

Дополнительную информацию о создании и настройке конвейеров Logstash можно найти в следующем ресурсе документации:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Создайте файл Dockerfile

Определив конфигурации Logstash, мы можем продолжить и научиться запускать контейнер. В том же каталоге, что и файл «logstash.conf», создайте новый файл с именем «Dockerfile».

Отредактируйте этот файл и добавьте записи следующим образом:

ИЗ docker.elastic.co/logstash/logstash:8.9.2

КОПИРУЙТЕ logstash.conf /usr/share/logstash/pipeline/logstash.conf.

В данном примере мы определяем базовый образ как официальный образ Logstash, используя версию 8.9.2.

Затем мы копируем созданный нами файл «logstash.conf» в /usr/share/logstash/pipeline/logstash.conf в образе.

Создайте образ Docker

Затем перейдите в каталог, содержащий файлы конфигурации Dockerfile и Logstash. Запустите следующую команду для создания образа:

$ сборка докера пользовательское-logstash-изображение.

Запустите контейнер Logstash

Теперь, когда мы создали образ Docker, мы можем запустить контейнер Logstash с помощью команды «run» Docker следующим образом:

$ запуск докера --имя пользовательское изображение logstash-сервера logstash

Это должно запустить контейнер Logstash с использованием образа, который мы создали на предыдущем шаге.

Проверьте журналы контейнера Logstash.

Чтобы убедиться, что Logstash работает правильно, вы можете проверить журналы контейнера с помощью следующей команды:

$ журналы докера < имя_контейнера >

Выход:

Заключение

В этом руководстве вы узнали, как быстро настроить сервер Logstash, работающий как Docker, с помощью специального файла конфигурации. Рекомендуем ознакомиться с документацией по параметрам образа и опциям конфигурации.