logstash 监控海量日志并报警

公司近期对maidian服务进行了日志告警,接到这个需求直接头皮发麻,后来看资料发现logstash不光可以收集日志进elasticsearch,还可以做到告警,瞬间思路来了,在爽歪歪的同时又跨越几个坑

监控说明:

1,首先是key等于deleteMsg
2,并且elapsedTime要大于99%的平均值

邮件本机配置postfix或者sendmail,这里不做过多赘述

监控脚本

input {
        redis {
                host => "127.0.0.1"
                port => port
                password => "password"
                data_type => "list"
                key => "logstash:maidian_monit"
                type => "redis-input"
        }
}

filter {
        json {
                source => "message"
        }
        mutate {
           convert => [ "[elapsedTime]", "float" ]
           #为了输出编码一致,我们这里将字节转成float
        }
}

output {
   #key等于deleteMsg并且elapsedTime大于60000MS
   if [key] == "deleteMsg" and [elapsedTime] > 60000 {
       exec {
              command => "/home/zqlx/ELK/logstash/etc/shell/deleteMsg_mail.sh '%{@timestamp}: %{message}'"
            }
        }
}

#这里有个小坑,发现使用echo ‘内容’ |mail -s ‘标题‘ $mail无法发送也不报错,很是奇怪,怀疑是不能传参数,后来写了发送脚本,发现传一个参数可以,超过就会失败,悲了个剧具体原因也没深究

#启动如果超出设置阈值即可触发告警,并且会发送问题日志

logstash/bin/logstash -f longstash.conf >/dev/null 2>&1 &
此条目发表在ELK日志服务器分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注