Назад | Перейти на главную страницу

Syslog и Log Analyzer - как получить исходные IP-адреса и подсчитать их

Я установил централизованный сервер системного журнала (centOS + rsys), на котором работает LogAnalyzer для лучшего представления журнала. Недавно меня попросили предоставить журналы с брандмауэра всех IP-адресов для определенного оператора брандмауэра и подсчитать количество, сколько конкретных IP-адресов произошло в списке.

Пока я знаю, как отображать все журналы для определенного оператора брандмауэра, но не знаю, как получить исходный IP-адрес из столбца сообщения и подсчитать конкретное появление IP.

Есть ли какое-либо дополнительное программное обеспечение, которое может это сделать, или мне нужно создать собственный анализатор журнала, чтобы это сделать?

Спасибо

Мы используем AWK.

Feb 25 12:18:50 host.example.come kernel: LOGPREFIX: IN=eth0 OUT= MAC=00:aa:aa:bb:cc:dd:00:ee:00:aa:dc:00:aa:00 SRC=x.x.x.x DST=y.y.y.y LEN=40 TOS=0x00 PREC=0x00 TTL=95 ID=256 PROTO=TCP SPT=6000 DPT=22 WINDOW=16384 RES=0x00 SYN URGP=0
  1. Выключите адрес SRC
  2. Сортировать список по цифрам (обязательно для uniq)
  3. Используйте uniq с флагом -c, чтобы получить счетчики для каждого источника
  4. Необязательно: отсортируйте еще раз по числовому принципу, чтобы увидеть самых серьезных нарушителей

[root@host.example.com faculty]# grep LOGPREFIX /var/log/messages | \
    awk '{print $10}' | sort -n | uniq -c | sort -n

Вывод:

      5 SRC=x.174.x.x
      6 SRC=61.y.y.y
      6 SRC=z.z.z.196
     17 SRC=a.a.246.a

Наконец: Учебник по AWK: http://www.grymoire.com/Unix/Awk.html