Я получаю постоянный отказ grok на скобках. Я избегал скобки с помощью '\'. Я также пытался обмануть его с помощью подстановочных знаков. Отладчик Grok выполняет синтаксический анализ правильно, но не выполняет синтаксический анализ в рабочей среде. У меня есть две другие записи, которые демонстрируют такое же поведение, в то время как другие шаблоны без скобок анализируются.
Проблема заключается в «%{WORD:type}[%{INT:pid}]».
#Jan 15 13:35:44 firewall sshd[1468]: Accepted publickey for john from 192.168.1.16 port 62529 ssh2: .....
AUTHLOG1 (%{SYSLOGTIMESTAMP:timestamp} %{WORD:src_host} %{WORD:type}\[%{INT:pid}\]: Accepted publickey for %{USERNAME:user} from %{IP:src_ip} port %{INT:port} %{WORD:protocol}*)
#Jan 15 13:35:44 firewall systemd-logind[1221]: New session 481 of user john.
AUTHLOG4 (%{SYSLOGTIMESTAMP:timestamp} %{WORD:src_host} (?<type>[a-z-]+)\[%{INT:pid}\]: Removed session %{INT:session}.)
AUTHLOG (?:%{AUTHLOG1}|%{AUTHLOG2}|%{AUTHLOG3}|%{AUTHLOG4}|%{AUTHLOG5}|%{AUTHLOG6})
if [type] == "authlog" {
grok {
match => { "message" => "%{AUTHLOG}"}
patterns_dir => ["/etc/logstash/grok"]
}
}