Сравните массив IP-адресов с rsyslog - PullRequest
0 голосов
/ 03 января 2019

В лог-файле хранится список IP-адресов (их количество меняется каждые несколько минут).Файл журнала содержит только уникальные IP-адреса (sort -u):

IP-Pool.log [Example]:
192.168.1.1
192.168.1.2
10.1.1.0
.
.

Я бы хотел отфильтровать происходящие события соединения с помощью rsyslog и отсортировать их по:

  • Событиям, в которых содержится $ msgодин IP-адрес массива [IP-Pool-List]
  • События, в которых $ msg не содержит IP-адрес массива [IP-Pool-List]

Поэтому мне придетсяпоместите IP-адреса в массив, чтобы их можно было сравнить, но я не нашел способа сделать это.

if $msg contains 'connection-event-id' then {

  if $msg contains 'Array[IP-Pool-List] then {
    -/var/log/event_contains_ip.log      
    STOP
  }
  else{
   -/var/log/event_doesnt_contain_ip.log
   STOP
  }

}

Мне бы также пришлось перезапустить службу rsyslogd, чтобы обновить массив [IP-Pool-List], так как файл меняется каждые несколько минут?

Есть ли способ решить эту проблему с помощью rsyslog, или есть более простой / лучший способ сделать это?

EDIT

Я использовал crontab и inotifywait для обновления IP-пула-файла.

@reboot inotifywait -q -m -e modify /var/log/client-ips.log | 
while read -r filename events; do sort -u /var/log/client-ips.log 
-o /var/log/ips-unique.log ;done

Я также задавал этот вопрос по почте в "rsyslog-community"«их контактная почта указана внизу документации rsyslog (https://lists.adiscon.net/mailman/listinfo/rsyslog)) Они дали мне советSE "Lookup-таблицы", чтобы решить эту проблему.Сейчас читаю, как правильно их использовать.Поскольку я учусь медленно, это должно занять некоторое время.

РЕДАКТИРОВАТЬ 2

Новый план начинает формироваться:

  • Чтобы запустить Lookup-Table, мне нужно создать JSON-файл, который содержит значения, с которыми я собираюсь построить свой фильтр с
  • Обновлять JSON-файл с помощью «reload_lookup_table» или «JQ» всякий раз, когда новыйIP добавлен в список IP-пулов.
  • Используйте RSYSLOG Lookup-Table для фильтрации по заданным IP-адресам и разделения результатов на два отдельных файла журнала |Match.log |NoMatch.log

Надеюсь, что так и будет.

С Новым годом миротворец

...