filebeat的部署和配置

作用:收集应用服务器上各种各样的日志

一、初始部署及简单使用

1.安装filebeat包

2.测试运行(配置systemctl文件,让其可以唤起filebeat程序)

3.配置输入输出:(filebeat主配置文件-----------------/usr/local/filebeat/filebeat.yml  )

filebeat.inputs:       #输入
- type: log  
  enabled: true  
  paths:  
    - /var/log/*.log  
    # 其他路径...  
  
output.logstash:       #输出   
  hosts: ["localhost:5044"]  
  # 其他Logstash配置...

filebeat只允许输出一个方向

4.执行

(执行)     程序自身           (指定)      程序的配置文件          (设置类型为error)

     /usr/local/filebeat/filebeat  -c /usr/local/filebeat/filebeat.yml   -e    
(-c指定文件位置,-e是--log.level=error的简写,用于设置Filebeat的日志级别为error,这意味着只有在遇到错误时,Filebeat才会在控制台或日志文件中输出信息)

#/usr/local/filebeat/filebeat  是可执行文件(绿色),代表Filebeat程序本身

#执行后将抓取配置里指定路径里的日志文件变化

日志变化:

filebeat抓取到的变化:


二、模块     

1.日志收集模块-----------------------------------在  /usr/local/filebeat/filebeat.yml  主配置里

#filebeat配置

filebeat.inputs:
- type: log            #这指定了输入类型为日志文件
      
  enabled: true        #表示该输入是启用的,Filebeat会收集匹配的日志文件

  paths:
    - /tmp/*.log      #指定的日志收集路径(指定了Filebeat应该监视哪些路径以收集日志)

     

2.示例-------- nginx模块

  • /usr/local/filebeat/filebeat.yml是Filebeat的主配置文件(全局配置),包含了Filebeat运行所需的全局配置以  及日志收集的具体设置。它定义了Filebeat的基本行为,如日志数据的输入源、输出目的地、日志的过滤和处理规则等。
  • /usr/local/filebeat/modules.d/nginx.yml是Filebeat的模块配置文件之一,专门用于配置Nginx日志的收集。Filebeat提供了许多预定义的模块,这些模块包含了针对特定应用程序(如Nginx、MySQL、Apache等)的日志收集逻辑。使用这些模块可以简化日志收集的配置过程,并确保日志数据被正确地解析和处理,modules.d/nginx.yml 中的配置将具有更高的优先级,模块配置文件中的设置将覆盖主配置文件中的相应设置。
/usr/local/filebeat/modules.d/-------------------------(该目录下有filebeat的各个模块配置)
固定模块:

开启方法:      .disabled 默认为关闭状态,   将后缀删除即为开启状态

或  /usr/local/filebeat/filebeat  -c   /usr/local/filebeat/filebeat.yml   modules enable nginx

       (执行程序本身)                      (指定执行的配置文件)                    (开启模块)

 若使用非默认路径(添加var.paths指定自定义日志路径)

- module: nginx
  # Access logs
  access:
    enabled: true
    var.paths:                    # var.paths 是追加路径(不会覆盖默认路径,如果模块自带默认路    
                                  # 径,结果则会在两个路径里收集日志)
      - "/var/log/access.log"
      - "/var/log/error.log"
    #var.pants: ["/var/log/access.log","/var/log/error.log"]            
    #(var.paths 的另一种写法)

#输出(用于 filebeat 把收集到的日志推送到某个接收的系统中)
output.console:
  pretty: true

# console        终端屏幕
# elasticsearch  存放日志,并提供查询
# logstash       进一步堆日志数据进行处理
# kafka          消息队列

如何在filebeat.yml中启用nginx模块的步骤:

  1. 打开filebeat.yml配置文件,该文件通常位于/usr/local/filebeat/目录下,但具体位置可能因你的安装方式和操作系统而异。

  2. 在配置文件中找到filebeat.modules部分。如果这部分不存在,你可以添加它。这个部分用于定义要启用的模块及其配置。

  3. filebeat.modules下,添加一个条目来启用nginx模块。这通常看起来像这样:

    filebeat.modules:  
    - module: nginx  
      access:  
        enabled: true  
        var.paths: ["/path/to/your/nginx/access.log*"]  
      error:  
        enabled: true  
        var.paths: ["/path/to/your/nginx/error.log*"]
  4. accesserror是nginx模块的两个子模块,分别用于收集访问日志和错误日志。enabled: true表示启用这些子模块,而var.paths则指定了日志文件的位置。你需要将/path/to/your/nginx/access.log*/path/to/your/nginx/error.log*替换为你的nginx日志文件的实际路径。

  5. 保存并关闭filebeat.yml文件。

  6. 重启Filebeat以使更改生效。如果你正在使用systemd来管理服务,可以使用以下命令:

    systemctl restart filebeat         #root用户
    
    sudo systemctl restart filebeat    #非root用户

    或者,如果你不是通过systemd来管理服务的,你可能需要找到适合你安装方式的重启命令。

  7. 验证nginx模块的日志是否正在被收集。你可以检查你的输出目标(如Elasticsearch、Logstash、Kafka等)来查看nginx日志是否已经被成功接收。

三、重读日志文件

若出现以上错误,请删除安装目录中的data文件夹

四、过滤和增强数据(扩展) 

1.去重日志中的某些行-----------------------------------------------------配置位置在 filebeat.yml 文件中

  删除所有以 DBG:开头的行

proccessors:
  - drop_event:
      when:
        regexp:
          message: "^DBG:"     # message 为自定义字段

2.向输出的数据中添加某些自定义字段

processors:
  - add_fields:           # 追加字段
      target: project     # 要添加的自定义字段key名称   # target:指定了添加字段的目标对象或层级
      fields:
        name: myproject
        id: '574734885120952459'

3.  从事件中删除某些字段

processors:
  - drop_fields:        #丢弃字段
      fields: ["field1", "field2”, ...]
      ignore_missing: false

#这是一个布尔值选项,用于指定当尝试移除的字段在数据中不存在时,处理器是否应该忽略这种情况并继续执
#行,或者是否应该抛出错误或警告。

以上配置,将删除字段:field1和 field2
ignore_missing 的值为 false 表示,字段名不存在则会返回错误。为 true 不会返回错误
                 注: 事件中的  “@timestamp   和  type  字段是无法删除的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值