Создание массива IP-адресов серверов в конфигурации Logstash?

Я хотел знать, возможно ли создать массив IP-адресов моего сервера, чтобы упростить редактирование и чтение файла конфигурации Logstash. Я помечаю наши машины с CentOS словом «linux», а наши ASA — словом «сеть». Прямо сейчас часть фильтра моей конфигурации выглядит примерно так:

filter {
    if [host] == “10.x.x.1” or [host] == “10.x.x.2” or … or [host] “10.x.x.30” {
        mutate {
            add_tag => “linux”
        }
    }

    if [host] == “10.x.x.200” or [host] == “10.x.x.201” or … or [host] “10.x.x.250” {
        mutate {
            add_tag => “networking”
        }
}

Это работает, но поскольку у меня более 30 узлов в каждой категории, линия получается очень длинной. Вместо этого я думал сделать что-то вроде этого (в псевдокоде):

array [linux_hosts] = [“10.x.x.1”,
                       “10.x.x.2”,
                       “10.x.x.3”]

if [host] in [linux_hosts] {
    mutate {
        add_tag => “linux”
    }
}

Возможно ли что-то подобное? Есть лучший способ сделать это?


person Daniel Davalos    schedule 03.07.2015    source источник
comment
Как вы отправляете журналы в logstash?   -  person Alain Collins    schedule 04.07.2015
comment
Я использую rsyslog для пересылки журналов с компьютеров CentOS и использую встроенную функцию пересылки системных журналов на ASA. Я использую плагины ввода TCP и UDP (оба прослушивают порт 514) в Logstash, потому что плагин ввода Syslog, похоже, создает ошибки синтаксического анализа grok. Дайте мне знать, если вам нужно, чтобы я что-то прояснил.   -  person Daniel Davalos    schedule 05.07.2015
comment
Если вы поставляли что-то вроде logstash или logstash-forwarder, вы могли бы установить эти поля на стороне клиента.   -  person Alain Collins    schedule 06.07.2015


Ответы (1)


Учитывая другие ваши ограничения, я бы сказал, что translate{} может быть лучшим вариантом. Не супер, но, пожалуй, лучший...

translate {
    dictionary => [
        "10.1.1.1",   "linux",
        "10.1.1.200", "networking"
    ],
    destination => "source_type"
}

Вы также можете прочитать словарь из файла, если это поможет.

person Alain Collins    schedule 06.07.2015
comment
Я попробую! Спасибо за помощь! - person Daniel Davalos; 08.07.2015