Я пытаюсь объединить журналы 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