Я хотел бы создать два отдельных индекса для двух разных систем, которые отправляют данные на настройку сервера logstash для udp - syslog. В Elasticsearch я создал индекс CiscoASA01 и еще один индекс CiscoASA02. Как настроить Logstash для фильтрации всех событий, поступающих с первого устройства, в индекс CiscoASA01, а событий, поступающих со второго устройства, — во второй индекс? Спасибо.
Индексация Logstash
Ответы (1)
Вы можете использовать if
для разделения журналов. Предположим, ваше первое устройство — CiscoASA01, а второе — CiscoASA02.
Вот результат
output {
if [host] == "CiscoASA01"
{
elasticsearch {
host => "elasticsearch_server"
index => "CiscoASA01"
}
}
if [host] == "CiscoASA02"
{
elasticsearch {
host => "elasticsearch_server"
index => "CiscoASA02"
}
}
}
[host]
— это поле в событии logstash. Вы можете использовать его для разделения журнала на разные выходные данные.
Надеюсь, это поможет вам.
person
Ben Lim
schedule
14.01.2015
Было бы интересно попробовать: index =› %{host}
- person Alain Collins; 14.01.2015
Отлично, спасибо! Есть ли способ использовать переменную подсети вместо хоста? то есть что-нибудь из подсети 192.168.1.x › использовать index1, 192.168.2.x › использовать index2? Я подозреваю, что мне придется использовать регулярное выражение, чтобы сделать это в переменной хоста?
- person gmatteson; 15.01.2015
На самом деле, то, о чем я не могу найти информацию, находится в разделе вывода logstash, могу ли я ссылаться на любое поле из события? Я добавил новое поле в области фильтра конфигурации, т. е. Device_Type = коммутатор, маршрутизатор, брандмауэр и т. д., и в области вывода, могу ли я получить доступ к этому полю? Спасибо.
- person gmatteson; 15.01.2015
Да, вы можете делать то, что вам нужно! [host] — это поле события. Итак, если вы хотите использовать Device_Type, вы можете использовать это, если [Device_Type] == switch.
- person Ben Lim; 15.01.2015