ELK实战(一)Filebeat+Logstash发送Email告警日志(1)

ELK实战(一)Filebeat+Logstash发送Email告警日志(1)

  • ELK应用案例
    • 典型ELK应用架构
    • 本次我使用的架构(Filebeat+Logstash发送Email告警日志)
    • 使用的Filebeat+Logstash版本介绍,包括jdk。
    • Filebeat配置文件讲解(filebeat.yml)
    • Logstash配置文件讲解(logstash.conf)
    • 邮件收到的具体信息如下
    • 总结
  • 目前本人使用的这套架构已经投入生产环境,总的来说使用情况只过滤ERROR级别日志,以及日志数据量不是特别大的情况下,可以满足日常告警需求,如果是日志量比较大的系统,请慎用以上架构,为了保证您的系统安全稳定,以上教程仅仅给您提供参考,具体要结合实际的生产环境进行配置和开发。

ELK应用案例

最近项目中有这样一个需求,需要搜集应用服务器的日志,并把日志中包含ERROR的错误信息采集并通过邮件的方式发送给开发人员,这个需求可以通过多种方式实现,比如说把发邮件的代码嵌入到系统中,如果 错就立马调用邮件发送的接口,还有一种就是通过日志监控的方式发邮件,在这里我使用Filebeat+Logstash来实现这么一个需求,首先我们看下目前比较经典的ELK架构 络拓扑,然后我在介绍下我自己目前使用的 络拓扑。

典型ELK应用架构

配置文件关键点讲解
1、multiline.pattern: ‘^[XY]s*(d{4}|d{2})-(d{2}|[a-zA-Z]{3})-(d{2}|d{4})’
指定匹配的表达式(匹配以[XY] 2017-11-15 08:04:23:889)开头的日志
2、multiline.negate: true # 是否匹配到,默认false
multiline.match: after # 合并到上一行的末尾
3、include_lines: [‘ERROR’] #日志中如果有”error”关键字的日志,进行多行合并
4、以上这三个是关键点,也就是匹配日志中以[JL_Loan] 2017-11-15 08:04:23:889开头,并且包含ERROR的日志,合并这些内容,知道下一个ERROR出现为止。
5、总的来说也就是三步曲,第一步匹配以什么开头的日志,第二步,把匹配到的日志中需要包含某个关键字的内容进行合并。第三步定义合并的开始和结束。最后将匹配到的日志信息output到logstash。
其他配置介绍

启动filebeat脚本

如果匹配到错入日志,则filebeat会输出如下内容

filebeat输出内容讲解

Logstash配置文件讲解(logstash.conf)

启动logstash脚本

生产logstash配置调优(logstash.yml、jvm.options)

邮件收到的具体信息如下

ELK实战(一)Filebeat+Logstash发送Email告警日志(1)

总结

目前本人使用的这套架构已经投入生产环境,总的来说使用情况只过滤ERROR级别日志,以及日志数据量不是特别大的情况下,可以满足日常告警需求,如果是日志量比较大的系统,请慎用以上架构,为了保证您的系统安全稳定,以上教程仅仅给您提供参考,具体要结合实际的生产环境进行配置和开发。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年10月7日
下一篇 2018年10月7日

相关推荐