zoukankan      html  css  js  c++  java
  • Filebeat简介

    原文地址:http://blog.51cto.com/seekerwolf/2110174

    收集日志的目的是有效的利用日志,有效利用日志的前提是日志经过格式化符合我们的要求,这样才能真正的高效利用收集到elasticsearch平台的日志。默认的日志到达elasticsearch 是原始格式,乱的让人抓狂,这个时候你会发现Logstash filter的可爱之处,它很像一块橡皮泥,如果我们手巧的话就会塑造出来让自己舒舒服服的作品,but 如果你没搞好的话那就另说了,本文的宗旨就是带你一起飞,搞定这块橡皮泥。当你搞定之后你会觉得kibana 的世界瞬间清爽了很多!
    FIlebeat 的4大金刚
    Filebeat 有4个非常重要的概念需要我们知道,
    Prospector(矿工);
    Harvest (收割者);
    libeat (汇聚层);
    registry(注册记录者);
    Prospector 负责探索日志所在地,就如矿工一样要找矿,而Harvest如矿主一样的收割者矿工们的劳动成果,哎,世界无处不剥削啊!每个Prospector 都有一个对应的Harvest,然后他们有一个共同的老大叫做Libbeat,这个家伙会汇总所有的东西,然后把所有的日志传送给指定的客户,这其中还有个非常重要的角色”registry“,这个家伙相当于一个会计,它会记录Harvest 都收割了些啥,收割到哪里了,这样一但有问题了之后,harvest就会跑到会计哪里问:“上次老子的活干到那块了”?Registry 会告诉Harvest 你Y的上次干到哪里了,去哪里接着干就行了。这样就避免了数据重复收集的问题!

    FIlebeat 详细配置:

    filebeat.prospectors:
    - input_type: log
      enabled: True
      paths:
        - /var/log/mysql-slow-*
    #这个地方是关键,我们给上边日志加上了tags,方便在logstash里边通过这个tags 过滤并格式化自己想要的内容;
      tags: ["mysql_slow_logs"]
    #有的时候日志不是一行输出的,如果不用multiline的话,会导致一条日志被分割成多条收集过来,形成不完整日志,这样的日志对于我们来说是没有用的!通过正则匹配语句开头,这样multiline 会在匹配开头
    之后,一直到下一个这样开通的语句合并成一条语句。
    #pattern:多行日志开始的那一行匹配的pattern
    #negate:是否需要对pattern条件转置使用,不翻转设为true,反转设置为false
    #match:匹配pattern后,与前面(before)还是后面(after)的内容合并为一条日志
    #max_lines:合并的最多行数(包含匹配pattern的那一行 默认值是500行
    #timeout:到了timeout之后,即使没有匹配一个新的pattern(发生一个新的事件),也把已经匹配的日志事件发送出去
      multiline.pattern: '^d{4}/d{2}/d{2}'  (201851  我的匹配是已这样的日期开头的)
      multiline.negate: true
      multiline.match: after
      multiline.Max_lines:20
      multiline.timeout: 10s
    - input_type: log
      paths:
        - /var/log/mysql-sql-*
      tags: ["mysql_sql_logs"]
      multiline.pattern: '^d{4}/d{2}/d{2}'
      multiline.negate: true
      multiline.match: after
      multiline.timeout: 10s
      encoding: utf-8
      document_type: mysql-proxy
      scan_frequency: 20s
      harverster_buffer_size: 16384
      max_bytes: 10485760
      tail_files: true
     #tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。默认是false;
  • 相关阅读:
    Python 常用集合类型的增删改查分合 list tuple dict set
    C# Protobuf如何做到0分配内存的序列化/反序列化(2)
    用java springboot 下载无水印抖音快手视频
    下载腾讯视频为mp4简单方法
    java springboot笔记
    如何下载西瓜视频中的 blob:https 的视频下载
    一行Python代码实现for循环和if else判断
    Redis报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
    pandas pd.concat() 提示没有 join_axes 参数
    Flask+Celery 执行时报错:def _connparams(self, async=False, _r210_options=( ^ SyntaxError: invalid syntax
  • 原文地址:https://www.cnblogs.com/dyh004/p/9704929.html
Copyright © 2011-2022 走看看