Я установил централизованный сервер системного журнала (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
[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