Logstash в Docker

Logstash V Docker



Logstash е канал за обработка на данни с отворен код, който ви позволява да събирате, обработвате и препращате регистрационните данни от различни източници.

В този урок ще ви преведем през процеса на стартиране на Logstash в Docker контейнер с основна конфигурация.

Изисквания:

Преди да започнем с урока, уверете се, че имате следното:







  1. Инсталиран Docker на вашата хост машина (препоръчва се версия 23 и по-нова)
  2. Инсталиран Docker Compose на вашата машина

Когато дадените изисквания са изпълнени, можем да продължим с урока.



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

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



За нашия пример ние се фокусираме върху основната конфигурация, която поглъща данните от лог файл, филтрира го за съответстващите записи и извежда данните във файл.





Създайте файл, наречен “logstash.conf” и добавете конфигурацията, както следва:

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

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

откакто db_path => '/dev/null'

ignore_start => 0
}
}

филтър {
ако [съобщение] =~ 'ГРЕШКА' {
grok {
мач => { 'съобщение' => „%{COMBINEDAPACHELOG}“ }
}
}
}

изход {
файл {
път => '/var/log/apache/error_logs.log'
}
}

Предишният файл дефинира конфигурацията, както е показано по-долу:

  1. Секция за въвеждане – Секцията за въвеждане използва приставката за въвеждане на файл, за да прочете регистрационния файл на Apache, намиращ се в /var/log/apache/access.log.
    • След това задаваме началната позиция в началото, което позволява на Logstash да прочете целия файл от началото.
    • Sincedb_path – Този параметър ни позволява да деактивираме проследяването на Sincedb на Logstash, като зададем стойността на /dev/null. Това гарантира, че Logstash винаги чете от началото на файла.
    • Ignore_older – Задаването на стойността на този параметър на 0 позволява на Logstash да обработва всички записи в регистрационния файл.
  2. Секция за филтриране – В секцията за филтриране ние дефинираме модела на филтъра, за да проверим дали съобщението в журнала съдържа думата ГРЕШКА. Можете да коригирате условията за филтърните блокове, за да филтрирате за по-точни съвпадения във файла.
    • Ако условието е изпълнено, ние използваме филтъра grok, за да анализираме реда на регистрационния файл на Apache, като използваме модела COMBINEDAPACHELOG, който е вграден шаблон в Logstash за анализиране на регистрационните файлове на Apache.
  3. Изходен раздел – Този раздел ни позволява да дефинираме изходния формат за съвпадащите записи.
    • В нашия случай ги записваме във файла /var/log/apache/error_logs.log, като използваме параметъра path.

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

Моля, вижте повече относно създаването и конфигурирането на тръбопроводите на Logstash в следния предоставен документационен ресурс:

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

Създайте Docker файла

След като дефинираме конфигурациите на 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. Изпълнете следната команда, за да създадете изображението:

$ изграждане на докер -T custom-logstash-image.

Стартирайте контейнера Logstash

След като създадохме изображението на Docker, можем да стартираме контейнер Logstash, като използваме командата „run“ на Docker, както следва:

$ докер изпълнение -- име logstash-сървър персонализирано-logstash-изображение

Това трябва да стартира контейнера Logstash, използвайки изображението, което създадохме в предишната стъпка.

Проверете регистрационните файлове на контейнера Logstash

За да проверите дали Logstash работи правилно, можете да проверите регистрационните файлове на контейнера, като използвате следната команда:

$ докерски дневници < име_на_контейнера >

Изход:

Заключение

В този урок научихте как можете бързо да настроите сървър Logstash, който работи като Docker, като използвате персонализиран конфигурационен файл. Препоръчваме да проверите документацията за параметрите на изображението и опциите за конфигурация.