最近在用logstash做日志分析的时候,搜集了很多资料,但大部分都是关于logstash如何将日志各个部分加以分类存储到logstash中,没有写如何分析攻击日志的东西,所以在此我简单记录一下。
首先,logstash做日志分析最重要的还是过滤器的书写,logstash的过滤器支持grok匹配,而grok又是建立在正则表达式上面的,所以我们可以从这方面入手进行分析。
需求
1.将日志进行筛选,首先将所有日志进行常规分析,各个字段进行分类,存储到es中。
2.将可能是sql注入攻击的日志单独筛选出来,存入到es中
实现
1.首先看一下过滤器的编写
input {
file {
path => ["D:/logs/logs/*.log"]
start_position => "beginning"
type=>"elasticsearch"
}
file {
path => ["D:/logs/logs/*.log"]
start_position => "beginning"
type=>"sqlattrack"
}
}
filter{
if [type] == "sqlattrack"{
grok{
match=>{"message" => ".*?[^a-zA-Z](?<tag_1>((and|or|union|select|insert|delete|count|updata|where))).*?"}
}
}
if [type] =