Logstash – это еще один из инструментов ELK стэка (Elasticsearch, Logstash, Kibana). Он позволяет выполнять предварительную обработку данных (например, добавление новых полей или удаление существующих полей) перед их отправкой в Elasticksearch. Также с его помощью можно, например, выполнить загрузку данных в Elasticsearch из CSV файла. В этой публикации я напишу о том, как выполняется установка Logstash. В последующих публикациях я постараюсь привести несколько примеров использования Logstash.
Предварительные требования
В отличии от Kibana у Logstash нет каких-то определенных требований к совместимости версий с Elasticsearch. Но есть требования к Java (JVM). Хотя из коробки Logstash уже идети с необходимой версией Java.
В качестве операционной системы я буду использовать Rocky Linux 9.
Установка Logstash
Установка выполняется следующим образом:
1. Загрузите deb/rpm пакет со страницы загрузки:
Вы также можете выполнить установку используя соответствующие шаги из руководства для пакетного менеджера apt или пакетного менеджера yum.
2. Запустите установку пакета:
sudo rpm -i logstash-8.13.2-x86_64.rpm
3. Включите автоматический запуск сервиса Logstash:
sudo systemctl daemon-reload
sudo systemctl enable logstash.service
4. Запускаем сервис Logstash:
sudo systemctl start logstash.service
5. Проверяем статус сервиса:
sudo systemctl status logstash.service
[root@localhost roman]# sudo systemctl status logstash.service
● logstash.service - logstash
Loaded: loaded (/usr/lib/systemd/system/logstash.service; enabled; preset: disabled)
Active: active (running) since Wed 2024-04-17 22:17:15 +07; 10s ago
Main PID: 16248 (java)
Tasks: 25 (limit: 23168)
Memory: 413.3M
CPU: 32.731s
CGroup: /system.slice/logstash.service
└─16248 /usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.compile.invokedynamic=true -XX:+HeapDumpOnOu>
Apr 17 22:17:15 localhost.localdomain systemd[1]: Started logstash.
Apr 17 22:17:15 localhost.localdomain logstash[16248]: Using bundled JDK: /usr/share/logstash/jdk
6. Если планируется использование модуля ввода Beats (а очень часто оно используется), то нужно добавить соответствующее исключение в брандмауэр. TCP/5044 – это порт по умолчанию для модуля ввода Beats. В вашем случае может отличаться:
sudo firewall-cmd --add-port=5044/tcp --permanent
sudo firewall-cmd --reload
Примеры использования Logstash я постараюсь привести в следующих публикациях.
Если что-то пошло не так
Смотрим журналы:
sudo journalctl -u logstash.service
Смотрим дополнительные журналы вот тут:
/var/log/logstash