В этом руководстве мы покажем вам процесс запуска Logstash в контейнере Docker с базовой конфигурацией.
Требования:
Прежде чем мы начнем изучать руководство, убедитесь, что у вас есть следующее:
- Установленный Docker на вашем хост-компьютере (рекомендуется версия 23 и выше)
- Установлен Docker Compose на вашем компьютере.
При соблюдении данных требований мы можем продолжить обучение.
Настройте файл конфигурации Logstash
Logstash использует файлы конфигурации, чтобы определить, как данные принимаются, фильтруются и отправляются на выход. Существует множество опций, которые вы можете настроить, о чем можно прочитать в официальной документации.
В нашем примере мы сосредоточимся на базовой конфигурации, которая принимает данные из файла журнала, фильтрует их для соответствующих записей и выводит данные в файл.
Создайте файл с именем «logstash.conf» и добавьте конфигурацию следующим образом:
вход {файл {
путь => '/var/log/apache/access.log'
начальная_позиция => 'начало'
посколькуdb_path => '/dev/ноль'
ignore_older => 0
}
}
фильтр {
если [сообщение] =~ 'ОШИБКА' {
грок {
совпадение => { 'сообщение' => '%{COMBINEDAPACHELOG}' }
}
}
}
выход {
файл {
путь => '/var/log/apache/error_logs.log'
}
}
Предыдущий файл определяет конфигурацию, как показано ниже:
- Раздел ввода. В разделе ввода используется плагин ввода файлов для чтения файла журнала Apache, расположенного в /var/log/apache/access.log.
- Затем мы устанавливаем начальную позицию в начале, что позволяет Logstash читать весь файл с начала.
- Oncedb_path — этот параметр позволяет нам отключить отслеживание couldb в Logstash, установив значение /dev/null. Это гарантирует, что Logstash всегда читает с начала файла.
- Ignore_older — установка значения этого параметра равным 0 позволяет Logstash обрабатывать все записи файла журнала.
- Раздел фильтра. В разделе фильтра мы определяем шаблон фильтра, чтобы проверить, содержит ли сообщение журнала слово ОШИБКА. Вы можете настроить условия для блоков фильтров, чтобы обеспечить более точные совпадения в файле.
- Если условие выполнено, мы используем фильтр grok для анализа строки журнала Apache с использованием шаблона COMBINEDAPACHELOG, который является встроенным шаблоном в Logstash для анализа журналов Apache.
- Раздел вывода. Этот раздел позволяет нам определить формат вывода для совпадающих записей.
- В нашем случае мы записываем их в файл /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, с помощью специального файла конфигурации. Рекомендуем ознакомиться с документацией по параметрам образа и опциям конфигурации.