zoukankan      html  css  js  c++  java
  • filebeat-7.9.1学习

    个人学习笔记,谢绝转载!!!

    原文:https://www.cnblogs.com/wshenjin/p/13652361.html


    filebeat简介

      Beats家族的6个成员:

    • Packetbeat:网络数据(收集网络流量数据)
    • Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
    • Filebeat:日志文件(收集文件数据)
    • Winlogbeat:windows事件日志(收集Windows事件日志数据)
    • Auditbeat:审计数据(收集审计日志)
    • Heartbeat:运行时间监控(收集系统运行时的数据)

      早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。Beats在是一个轻量级日志采集器,相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。Filebeat是Beats中的一员,是用于收集转发日志数据的轻量级传送工具。Filebeat监视日志文件,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

      Filebeat的工作方式如下:启动Filebeat时,它会启动一个或多个探测器去检测指定的日志目录或文件。对于找到的每个日志,Filebeat都会启动收集器,每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到output指定的输出。

    filebeat安装

    [root@ ]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.1-x86_64.rpm 
    [root@ ]# rpm -ivh filebeat-7.9.1-x86_64.rpm
    

    filebeat配置文件

    常用的选项解释,基于7.9.1版本:

    ## ================================= filebeat input配置块 ==================================
    filebeat.inputs:
    
    ## 每个-都是一个输入
    - type: log
    
      ## 是否启用该输入
      enabled: true 
    
      ## 日志路径
      paths:
        - /data/logs/*.log
        - /data/logs/*/*.log
    
      ##是否从日志末尾开始读取日志
      tail_files: true
      
      ##排除行。排除匹配正则表达式列表的行
      exclude_lines: ['^DBG']
    
      ##包括行。导出匹配的正则表达式列表的行
      include_lines: ['^ERR', '^WARN']
    
      ##排除文件。排除匹配正则表达式列表的文件
      exclude_files: ['.gz$','nginx_error.log']
    
      ##可选附加字段。可以自由选择这些字段,将附加信息添加网日志文件中进行筛选
      fields:
        level: debug
        review: 1
    
      ### 多行选项,多行可以用于跨越多行的日志消息。这对于Java堆栈跟踪或C-Line延续来说很常见
      ##匹配多行的正则表达式
      multiline.pattern: '^['
    
      ##匹配pattern的行是否合并到上一行,默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行
      multiline.negate: false
    
      ##合并到上一行的末尾或开头
      multiline.match: after
      
      ##合并的最大行数
      multiline.max_lines: 500
    
    ## ================================= filebeat output配置块 ==================================
    # ---------------------------- Elasticsearch Output ----------------------------
    output.elasticsearch:
      enabled: true
      ##ES的主机端口列表
      hosts: ["localhost:9200"]
    
      ##协议 - either `http` (default) or `https`.
      #protocol: "https"
    
      ##身份验证凭据-API密钥或用户名/密码。
      api_key: "id:api_key"
      username: "elastic"
      password: "changeme"
    
    # ------------------------------ Logstash Output -------------------------------
    output.logstash:
      enabled: true
      ## The Logstash hosts
      hosts: ["127.0.0.1:5044"]
      
      ##使用了负载均衡
      loadbalance: true 
      
      ## Optional SSL. By default is off.
      ##用于HTTPS服务器验证的根证书列表 
      ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
    
      ##SSL客户端身份验证证书
      ssl.certificate: "/etc/pki/client/cert.pem"
    
      ##客户端证书密钥 
      ssl.key: "/etc/pki/client/cert.key"
    
    # ================================== Logging ===================================
    ##设置日志级别。默认日志级别为info。
    ## Available log levels are: error, warning, info, debug
    logging.level: info
    logging.to_files: true
    ##日志路径和切割、保留个数、权限
    logging.files:
      path: /var/log/filebeat
      name: filebeat
      keepfiles: 7
      permissions: 0644
    
    # ================================= 其他 ==================================
    ## filebeat的程序名称
    name: localhost
    
    ## 标签
    tags: ["nginx_log"]
    
    ## 可选字段,可以指定将附加信息添加到输出中
    fields:
      env: staging
    

    配置实例

    1、将/data/logs/*.log的日志文件输出到文件

    配置:

    logging.level: info
    logging.to_files: true
    logging.files:
      path: /var/log/filebeat
      name: filebeat
      keepfiles: 7
      permissions: 0644
    
    filebeat.inputs:
    - type: log
      enabled: true
      tail_files: true
      paths:
        - /data/logs/*.log
      exclude_files: ['nginx_error.log']
    
    output.file:
      enabled: true
      codec.json:
        pretty: true 
        escape_html: true
      path: "/data/logs/filebeat"
      filename: filebeat_output.log
      rotate_every_kb: 10000
      number_of_files: 7
      permissions: 0600
    
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: false
    
    setup.template.settings:
      index.number_of_shards: 1
    
    tags: ["nginx_access_log"]
    
    name: web_server_1.2.3.4
    

    2、将/data/logs/*.log的日志文件输出到Logstash

    logging.level: info
    logging.to_files: true
    logging.files:
      path: /var/log/filebeat
      name: filebeat
      keepfiles: 7
      permissions: 0644
    
    filebeat.inputs:
    - type: log
      enabled: true
      tail_files: true
      paths:
        - /data/logs/*.log
      exclude_files: ['nginx_error.log']
    
    output.logstash:
      hosts: ["127.0.0.1:5044"]
    
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: false
    
    setup.template.settings:
      index.number_of_shards: 1
    
    tags: ["nginx_access_log"]
    
    name: web_server_1.2.3.4
    

    multiline小结

      multiline.negate: false   
      multiline.match: after    ##将匹配到的行和上一行合并
      
      multiline.negate: false   
      multiline.match: before   ##将匹配到的行和下一行合并
     
      multiline.negate: true 
      multiline.match: before   ##将不匹配到的行和下一行合并
      
      multiline.negate: true 
      multiline.match: after   ##将不匹配到的行和上一行合并
    
  • 相关阅读:
    【bzoj2242】[SDOI2011]计算器
    1109解题报告
    【bzoj3239】Discrete Logging
    【bzoj2480】Spoj3105 Mod
    【POJ1811】Prime Test
    【bzoj3667】Rabin-Miller算法
    【HDU2138】How many prime numbers
    卢卡斯定理
    线段树2
    畅快的甩卖
  • 原文地址:https://www.cnblogs.com/wshenjin/p/13652361.html
Copyright © 2011-2022 走看看