У меня есть файл ниже logstash-syslog.conf
, где он имеет два разных типа ввода, один из которых type => "syslog"
, а другой - type => "APIC"
.Итак, мне нужны два отдельных выходных индекса, созданных как syslog-2018.08.25
и APIC-2018.08.05
.
Я хочу, чтобы эти индексы создавались динамически, я попытался что-то index => "%{[type]}-%{+YYYY.MM.dd}"
, но это не сработало и убило logstash.
Не могли бы вы подсказать, что я делаю не так в приведенной ниже конфигурации, которую необходимо исправить как для конфигурации, так и для типа индекса.
Ниже приведен файл журнала конфигурации:
logstash Версия: 6.2
$ vi logstash-syslog.conf
input {
file {
path => [ "/scratch/rsyslog/*/messages.log" ]
type => "syslog"
}
file {
path => [ "/scratch/rsyslog/Aug/messages.log" ]
type => "APIC"
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp } %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
if [type] == "APIC" {
grok {
match => { "message" => "%{CISCOTIMESTAMP:syslog_timestamp} %{CISCOTIMESTAMP} %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
}
}
output {
elasticsearch {
hosts => "noida-elk:9200"
index => "syslog-%{+YYYY.MM.dd}"
#index => "%{[type]}-%{+YYYY.MM.dd}"
document_type => "messages"
}
}