Назад | Перейти на главную страницу

Logstash для агрегирования журналов в ElasticSearch

Я пытаюсь объединить журналы Linux, используя rsyslog в Logstash / ElasticSearch, работающий в EKS.

filebeat уже работает в EKS для агрегирования логов контейнеров Kubernetes.

Я настроил rsyslog клиент с:

#/etc/rsyslog.d/50-default.conf
*.*;syslog;auth,authpriv.none   /var/log/syslog

# /etc/rsyslog.d/49-ship-syslog.conf
*.*;syslog;auth,authpriv.none action(
  type="omfwd"
  Target="logstash.dev.domain.com"
  Port="5000"
  Protocol="tcp"
)

и logstash с участием :

input {
  tcp {
    port => 5000
    type => syslog
  }
}

filter {
    grok {
        match => {
            "message" => "%{SYSLOGLINE}"
        }
    }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
  }
  stdout { codec => rubydebug }
}

Я умею:

$nc -vz -u logstash.dev.domain.com 5000
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
    outif (null)
    src 10.24.11.90 port 58291
    dst 47.176.158.158 port 5000
    rank info not available

Connection to logstash.dev.domain.com port 5000 [udp/commplex-main] succeeded!

также может отправить тестовое сообщение:

echo -n "test message" | nc -4u -w1 logstash.dev.domain.com 5000

Но ничего не вижу tcpdump port 5000 в logstash ИЛИ в интерфейсе Kibana под Logstash показывает Получено событий 0

Но когда я вхожу в систему logstash контейнер и тип echo -n "test message" | nc -4u -w1 logstash.dev.domain.com 5000 тогда я вижу это сообщение, появляющееся для tcpdump port 5000.

Что мне здесь не хватает?

Версия: logstash:7.2.1 rsyslog 3.5