Установка Logstash на CentOS7 по официальной инструкции + видео в помощь — https://youtu.be/Tp5dI-GDerM
Нужна Java.
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
rpm -Uvh jdk-17_linux-x64_bin.rpm
Далее по инструкции публичный ключ:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Добавление репозитория nano /etc/yum.repos.d/logstash.repo
[logstash-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Установка:
yum install logstash
systemctl enable logstash.service
Описание плагинов фильтрации — https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-udp.html
Открываем рабочий порт:
firewall-cmd --add-port=5044/tcp --permanent
firewall-cmd --add-port=5044/udp --permanent
firewall-cmd --reload
firewall-cmd --list-all
Настройка конфигурации. В каталоге /etc/logstash/conf.d создаётся файл конфигурации, обычно называют input.conf. Его содержимое:
input {
beats {
port => 5044
}
}
filter {
}
output {
stdout {}
}
С текущей конфигурацией можно проверить работу logstash локально, выполнив команду:
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/input.conf
При этом кто-то уже должен отправлять логи к logstash, например filebeat. Конкретно под этот пример описана установка и настройка filebeat. Если filebeat что-то отправляет, то это должно отобразится в консоли. Вот часть моего вывода от samba:
... }, "input" => { "type" => "log" }, "host" => { "name" => "samba.host" }, "tags" => [ [0] "beats_input_codec_plain_applied" ], "agent" => { "version" => "8.6.2", "ephemeral_id" => "0154e2de-c87d-4176-9f97-3fadae2baf9c", "id" => "690d64f9-030d-47e5-80c8-bfbd11e717a5", "name" => "samba.host", "type" => "filebeat" ...
Но после такого запуска logstash и его остановки, он остаётся в работе. Поэтому надо посмотреть командой
ps axf | grep logstash
действительно ли это так и оставноить через kill -9 pid.
После отладки (убедились, что логи доставляются от какого-либо агента) запускаем logstash:
systemctl start logstash.service
Без дополнительных настроек, логи у меня писались в tail -f /var/log/messages.
Теперь можно перенаправлять логи в elasticsearch.