Filebeat 安装与配置

Posted Doker 多克

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Filebeat 安装与配置相关的知识,希望对你有一定的参考价值。

本指南介绍了如何快速开始日志收集。您将学习如何:

  • 在要监视的每个系统上安装Filebeat

  • 指定日志文件的位置

  • 将日志数据解析为字段,并将其发送到Elasticsearch

  • 可视化Kibana中的日志数据

一、开始准备

您需要Elasticsearch来存储和搜索数据,需要Kibana来可视化和管理数据。

步骤1:安装Filebeat

在所有要监视的服务器上安装Filebeat。

要下载并安装Filebeat,请使用适用于您的系统的命令:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.6.2-linux-x86_64.tar.gz
tar xzvf filebeat-8.6.2-linux-x86_64.tar.gz

步骤2:连接到Elastic Stackedit

需要连接到Elasticsearch和Kibana才能设置Filebeat。

在filebeat.yml中设置连接信息。要查找此配置文件,请参阅目录布局。

指定您的Elasticsearch服务的cloud.id,并将cloud.auth设置为有权设置Filebeat的用户。例如:

cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw=="
cloud.auth: "filebeat_setup:YOUR_PASSWORD" (1)
(1)本示例显示了一个硬编码的密码,但您应该将敏感值存储在机密密钥库中。

步骤3:收集日志数据编辑

有几种方法可以使用Filebeat收集日志数据:

  • 数据采集模块 — 简化常见日志格式的收集、解析和可视化

  • ECS记录器 — 结构和格式应用程序登录到ECS兼容的JSON

  • 手动Filebeat配置

启用和配置数据采集模块

  1. 确定需要启用的模块。要查看可用模块的列表,请运行:

./filebeat modules list
  1. 从安装目录中,启用一个或多个模块。例如,以下命令启用nginx模块配置:

./filebeat modules enable nginx
  1. 在modules.d下的模块配置中,更改模块设置以匹配您的环境。您必须在模块中至少启用一个文件集。默认情况下会禁用文件集。

例如,日志位置是根据操作系统设置的。如果日志不在默认位置,请设置路径变量:

- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/nginx/access.log*"] 

步骤4:参数设置

Filebeat带有预定义的属性,用于解析、索引和可视化数据。要加载这些资产,请执行以下操作:

请确保filebeat.yml中指定的用户有权设置filebeat。

从安装目录中,运行:

./filebeat setup -e
-e是可选的,并将输出发送到标准错误,而不是配置的日志输出。

此步骤加载推荐的索引模板以写入Elasticsearch,并部署示例仪表板以可视化Kibana中的数据。

此步骤不加载用于解析日志行的摄取管道。默认情况下,当您第一次运行模块并连接到Elasticsearch时,会自动设置摄取管道。

步骤5:启动Filebeattedit

在启动Filebeat之前,请修改Filebeat.yml中的用户凭据,并指定有权发布事件的用户。

要启动Filebeat,请运行:

sudo chown root filebeat.yml 
sudo chown root modules.d/nginx.yml 
sudo ./filebeat -e

ELK 日志采集框架:Filebeat安装与配置

1 资源

资源信息版本号备注
服务器Centos7IP: 192.168.51.4
Filebeat7.4.2

CSDN filebeat下载:https://download.csdn.net/download/qq_15769939/16760230

2 介绍

Filebeat是一个日志文件托运工具。可作为一个客户端安装在你的服务器上,Filebeat可以监控日志的目录或者指定的日志文件,实时读取文件,并将其上传到Elasticsearch或Logstash进行索引等处理。

Filebeat工作流程是这样的:开启Filebeat时,它会启动一个或多个探测器(prospectors)去检测你设置的日志路径或日志文件,在定位到每一个日志文件以后,Filebeat启动一个收割进程(harvester)。每一个收割进程读取一个日志文件的新内容并把数据发送到libbeat ,libbeat会集合这些事件并将汇总的数据发送到你设置的外部接收程序中。

在这里插入图片描述

附上官网地址:https://www.elastic.co/cn/beats/filebeat

3 安装与配置

3.1 上传服务器

将文件上传到服务器的 /opt/module/software/filebeat 目录

[root@localhost software]# cd /opt/module/software/filebeat/
[root@localhost filebeat]# ll
总用量 53912
-rw-r--r--. 1 root root 55201797 3月  25 15:46 filebeat-7.4.2-linux-x86_64.tar.gz.zip

3.2 解压到指定目录

[root@localhost filebeat]# unzip filebeat-7.4.2-linux-x86_64.tar.gz.zip
[root@localhost filebeat]# tar -zxvf filebeat-7.4.2-linux-x86_64.tar.gz -C /usr/local
[root@localhost filebeat]# cd /usr/local
[root@localhost local]# mv filebeat-7.4.2-linux-x86_64/ filebeat-7.4.2

3.3 修改配置

[root@localhost local]# cd filebeat-7.4.2
[root@localhost filebeat-7.4.2]# vim /usr/local/filebeat-7.4.2/filebeat.yml
###################### Filebeat Configuration Example #########################
filebeat.inputs:

  - input_type: log

    paths:
      ## app-服务名称.log, 为什么写死,防止发生轮转抓取历史数据
      - /usr/local/logs/app-elk-demo.log
    #定义写入 ES 时的 _type 值
    document_type: "app-log"
    multiline:
      #pattern: '^\\s*(\\d{4}|\\d{2})\\-(\\d{2}|[a-zA-Z]{3})\\-(\\d{2}|\\d{4})'   # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
      pattern: '^\\['                              # 指定匹配的表达式(匹配以 "{ 开头的字符串)
      negate: true                                # 是否匹配到
      match: after                                # 合并到上一行的末尾
      max_lines: 2000                             # 最大的行数
      timeout: 2s                                 # 如果在规定时间没有新的日志事件就不等待后面的日志
    fields:
      logbiz: collector
      logtopic: app-log-collector   ## 按服务划分用作kafka topic
      evn: dev

  - input_type: log

    paths:
      - /usr/local/logs/error-elk-demo.log
    document_type: "error-log"
    multiline:
      #pattern: '^\\s*(\\d{4}|\\d{2})\\-(\\d{2}|[a-zA-Z]{3})\\-(\\d{2}|\\d{4})'   # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
      pattern: '^\\['                              # 指定匹配的表达式(匹配以 "{ 开头的字符串)
      negate: true                                # 是否匹配到
      match: after                                # 合并到上一行的末尾
      max_lines: 2000                             # 最大的行数
      timeout: 2s                                 # 如果在规定时间没有新的日志事件就不等待后面的日志
    fields:
      logbiz: collector
      logtopic: error-log-collector   ## 按服务划分用作kafka topic
      evn: dev

output.kafka:
  enabled: true
  hosts: ["192.168.51.4:9092"]
  topic: '%{[fields.logtopic]}'
  partition.hash:
    reachable_only: true
  compression: gzip
  max_message_bytes: 1000000
  required_acks: 1
logging.to_files: true

3.4 测试启动

3.4.1 校验配置是否正确

[root@localhost filebeat-7.4.2]# ./filebeat test config -c filebeat.yml
## Config OK

3.4.2 启动filebeat

如果kafaka还未安装,请注释掉下面的代码在运行

#output.kafka:
  #enabled: true
  #hosts: ["192.168.51.4:9092"]
  #topic: '%{[fields.logtopic]}'
  #partition.hash:
   # reachable_only: true
  #compression: gzip
  #max_message_bytes: 1000000
  #required_acks: 1
[root@localhost filebeat-7.4.2]#  /usr/local/filebeat-7.4.2/filebeat &

3.4.3 查看进程

[root@localhost filebeat-7.4.2]# ps -ef | grep filebeat
root      87453  86806  1 18:44 pts/2    00:00:00 /usr/local/filebeat-7.4.2/filebeat
root      87464  86806  0 18:44 pts/2    00:00:00 grep --color=auto filebeat

3.4.4 停止filebeat

[root@localhost filebeat-7.4.2]# ps -ef |grep filebeat[root@localhost filebeat-7.4.2]# kill -9  #进程号

4 相关信息

博文不易,辛苦各位猿友点个关注和赞,感谢

以上是关于Filebeat 安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

filebeat直接给es传输日志,自定义索引名

Filebeat 安装与配置

ELK 日志采集框架:Filebeat安装与配置

8、使用多实例filebeat收集日志

最简化 Elasticsearch & Kibana & Filebeat 安装说明

filebeat安装使用