Syslog 和 LogAnalyzer - 如何检索源 IP 并进行计数

Syslog 和 LogAnalyzer - 如何检索源 IP 并进行计数

我已经设置了集中式 Syslog(centOS + rsys)服务器,该服务器运行 LogAnalyzer 以便更好地呈现日志。最近有人要求我提供所有 IP 防火墙的日志,用于特定防火墙声明,并计算列表中出现的特定 IP 数量。

到目前为止,我知道如何显示特定防火墙语句的所有日志,但不知道如何从消息列中检索源 IP 并计算特定 IP 的出现次数。

是否有任何附加软件可以做到这一点,或者我需要创建自己的日志解析器来完成这一点?

谢谢

答案1

我们使用 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. awk 取出 SRC 地址
  2. 按数字排序列表(uniq 的前提条件)
  3. 使用带有 -c 标志的 uniq 来获取每个源的计数
  4. 可选:再次按数字排序以查看最严重的违规者。

[[email protected] 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

相关内容