0

Я пытаюсь заменить 10.100.251.98 другим IP 10.100.240.199 в моей конфигурации logstash, я пробовал использовать фильтр с функцией mutate, но я не могу получить синтаксис wrtielogstash mutate для замены значения поля на выходе

Sep 25 15:50:57 10.100.251.98 mail_logs: Info: New SMTP DCID 13417989 interface 172.30.75.10 address 172.30.75.12 port 25 
Sep 25 15:50:57 10.100.251.98 local_mail_logs: Info: New SMTP DCID 13417989 interface 172.30.75.10 address 172.30.75.12 port 25 
Sep 25 15:51:04 10.100.251.98 cli_logs: Info: PID 35559: User smaduser login from 10.217.3.22 on 172.30.75.10 
Sep 25 15:51:22 10.100.251.98 cli_logs: Info: PID 35596: User smaduser login from 10.217.3.22 on 172.30.75.10 

Вот мой код:

input { file { path => "/data/collected" } } 

filter { 
    if [type] == "syslog" { 
     mutate { 
     replace => [ "@source_host", "10.100.251.99" ] 
     } 
    } 
} 

output { 

    syslog { 
     facility => "kernel" 
     host => "10.100.250.199" 
     port => 514 
    } 
} 

ответ

1

Я заметил кое-что о вашей конфигурации. Во-первых, у вас нет разбора журнала. Вы не сможете заменить поле, если оно еще не существует. Для этого вы можете использовать codec в своем блоке ввода или grok filter. Я добавил простой фильтр grok.

Вы также проверяете if [type] == "syslog". Вы никогда не устанавливаете тип, чтобы проверка всегда прерывалась. Если вы хотите установить тип, вы можете сделать это в своем блоке ввода input { file { path => "/data/collected" type => "syslog} }

Вот образец конфигурации, который я использовал для проверки шаблона grok и замены IP.

input { tcp { port => 5544 } } 

filter { 
    grok { match => { "message" => "%{CISCOTIMESTAMP:log_time} %{IP:@source_host} %{DATA:log_type}: %{DATA:log_level}: %{GREEDYDATA:log_message}" } } 
    mutate { 
     replace => [ "@source_host", "10.100.251.199" ] 
    } 
} 

output { 
    stdout { codec => rubydebug } 
} 

, который выводит это:

{ 
     "message" => "Sep 25 15:50:57 10.100.251.98 mail_logs: Info: New SMTP DCID 13417989 interface 172.30.75.10 address 172.30.75.12 port 25", 
     "@version" => "1", 
     "@timestamp" => "2016-09-25T14:03:20.332Z", 
      "host" => "0:0:0:0:0:0:0:1", 
      "port" => 52175, 
     "log_time" => "Sep 25 15:50:57", 
    "@source_host" => "10.100.251.199", 
     "log_type" => "mail_logs", 
     "log_level" => "Info", 
    "log_message" => "New SMTP DCID 13417989 interface 172.30.75.10 address 172.30.75.12 port 25" 
}