Относительно передачи ключевого слова ELK-Logstash в zabbix trapper - PullRequest
0 голосов
/ 11 декабря 2018

Что касается фильтра ключевых слов ELK-Logstash, передаваемого в zabbix trapper, как я могу настроить фильтр logstash для отправки конкретного сообщения в zabbix trapper в соответствии с ключевым словом в каждой полученной строке сообщения?Я полностью настроил перехватчик zabbix-сервера, и отправитель сообщений zabbix отлично работает на клиентском сервере, но мне кажется, что в данный момент настройка фильтра немного сложна.Мой logstash основан на 6.4, а Zabbix сервер - на 3.4, текущая конфигурация фильтра logstash выглядит следующим образом:

filter {
  if [prospector][type] == "log" {
    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" ]
    }
  }
}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Если вы хотите получить условный вывод, вы можете сделать это следующим образом:

output {
    if [message] =~ /eek/ {
        stdout { codec => rubydebug }
    } else {
        ...
    }
}

Эта конфигурация проверяет поле message, чтобы увидеть, содержит ли оно eek.

Предполагая, что плагин вывода zabbix делает то, что вы хотите, вы можете использовать аналогичную структуру для маршрутизации данных в zabbix.

0 голосов
/ 12 декабря 2018

да, существующий фильтр grok отлично работает для обычной доставки сообщений;но если я хочу сделать определенный фильтр для ключевых слов, таких как «ОШИБКА», чтобы отправить сообщение на выход zabbix-сервера через интерфейс zabbix-trapper, что мне делать?Я провел некоторое исследование сам и несколько часов попыток, но, к сожалению, не работает.Любой совет действительно ценится.спасибо.

...