Я работаю с Logsta sh и плагином Kv для анализа и идентификации полей файла журнала, который генерируется устройством Fortigate UTM, однако я не могу заставить его работать,
РЕДАКТИРОВАТЬ - С тех пор я получил конфигурацию для работы, приведенный ниже код работает для журналов Fortigate OS
#Begin Input
input {
udp {
type => "syslogrrr"
port => 514
}
}
#End Input
#Begin Filter
filter {
#Begin If Statement
if [type] == "syslogrrr" {
#Begin Grok
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{GREEDYDATA:syslog_message}" }
}
#End Grok
#Begin KV Plugin
kv {
source => "syslog_message"
value_split => "="
}
#End KV Plugin
#Begin Mutate
mutate {
convert => {
"sentbyte" => "integer"
"craction" => "integer"
"crscore" => "integer"
"dstport" => "integer"
"duration" => "integer"
"eventtime" => "integer"
"logid" => "integer"
"policyid" => "integer"
"proto" => "integer"
"rcvdbyte" => "integer"
"rcvdpkt" => "integer"
"sentpkt" => "integer"
"sessionid" => "integer"
"srcport" => "integer"
"transport" => "integer"
}
remove_field => [ "message","syslog_message","path","@version","_id","_index","_score","_type" ]
add_field => ["logTimestamp", "%{date} %{time}"]
}
#End Mutate
#Begin Date
date {
locale => "en"
match => ["logTimestamp", "YYYY-MM-dd HH:mm:ss"]
remove_field => ["logTimestamp", "year", "month", "day", "time", "date"]
timezone=> "America/Guyana"
}
#End Date
}
#End If Statement
}
#End Filter
#Begin Output
output {
elasticsearch { hosts => ["localhost:9200"]
index => "logstash-%{+yyyy.MM.dd}-001"
}
}
#End Output
Надеюсь, это поможет всем, кто ищет