У меня есть сервер ELK, и я получаю журналы с удаленных серверов nginx.Я создал два файла конфигурации logstash для разных входов.Первый конфиг слушает 5140 портов`
input {
syslog {
host => "0.0.0.0"
port => 5140
timezone => "CET"
tags => "test-server-nginx"
type => "log"
}
}
filter {
grok {
match => [ "message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
overwrite => [ "message" ]
}
geoip {
source => "clientip"
}
mutate {
convert => ["response", "integer"]
convert => ["bytes", "integer"]
convert => ["responsetime", "float"]
}
date {
match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
}
useragent {
source => "agent"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "test-nginx-%{+YYYY.MM.dd}"
}
}
Конфигурация nginx:
access_log syslog:server=my-elk.com:5140,tag=nginx_front_nginx_access;
Вторая конфигурация logstash:
input {
syslog {
host => "0.0.0.0"
port => 5150
timezone => "UTC"
tags => "aws-nginx"
type => "log"
}
}
filter {
grok {
match => [ "message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
overwrite => [ "message" ]
}
geoip {
source => "clientip"
}
mutate {
convert => ["response", "integer"]
convert => ["bytes", "integer"]
convert => ["responsetime", "float"]
}
date {
match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]
}
useragent {
source => "agent"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "aws-nginx-%{+YYYY.MM.dd}"
}
}
И nginx для этого:
access_log syslog:server=my-elk.com:5150,tag=bk_nginx_access;
Я вижу входящий трафик через порт через
tcpdump 'port 5140' (and 5150)
все работает нормально, я вижу, что пакеты приходят.
Но когда я создаю индекс kibana,и переходить к первому шаблону, я вижу, что оба индекса смешаны. Первый индекс конфигурации
Второй индекс конфигурации
Пожалуйста, помогите.Я также попытался использовать плагин ввода udp, но безрезультатно.Спасибо.