1、查询嫌疑IP记录(access以及error)便捷脚本
引言:由于需要对嫌疑IP进行实时监控,随着ip数量增多不方便监控,故借鉴生产环境的批量脚本改造命令
主要是三个文件:
嫌疑IP可在bad_iplist添加,主要执行 catIP_expect.sh ,使用方法可以直接 ./catIP_expect.sh 或 sh catIP_expect.sh 进行查看。
使用方法:
./catIP_expect.sh bad_iplist 日志文件路径
核心内容如下(可根据需要做更改):
2、以ip为维度,每小时统计一次调用核心接口(登录)的调用频次
引言:由于借鉴的其他命令,对awk的使用还不是很熟悉,所以有建议的希望提出来,改进一下命令。
同时,本命令仅针对安全平台76主机的access日志有效(日志格式相关),因为是以小时为维度统计,所以分片日志需要进行统一后再进行统计。
命令: cat tmp.log | grep unifiedLogin | awk -F "|" '{a[$1] += 1;} END {for (i in a) printf("%s |%d\n", i, a[i]);}' | sort -t "|" -k 2 -nr | head -n 10
含义:统计tmp.log日志中,以ip为维度的登录接口(unifiedLogin)调用次数,并降序排列,取前10各进行显示(可做调整)。
效果如下:
3、统计通过的请求中返回状态是503的ip和数量(主要是503的匹配)
命令:
cat tmp_access.log | grep -E "^[^\|]*\|[^\|]*\|[^\|]*\|[^\|]*\|503\|.*$" | awk -F "|" '{a[$1] += 1;} END {for (i in a) printf("%s |%d\n", i, a[i]);}' | sort -t "|" -k 2 -nr | head -n 10
内容:
主要是利用grep -E的正则匹配,匹配到第五项的状态返回码
4、统合76主机监控项命令(重点是整合半小时日志的获取时间操作)
脚本内容(部分):
执行该脚本后,可自动将半小时脚本整合成一个小时的临时日志,做后续统计。
思路是利用当前时间和当前时间的上一小时进行获取,之后利用通配符进行日志匹配和整合。
获取当前时间:
$(date +"%Y%m%d-%H:")
获取上一小时:
$(date +"%Y%m%d-%H" -d -1hour)