正在加载

Filebeat 快速入门:安装和配置

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

  • 在您希望监控的每个系统上安装 Filebeat
  • 指定日志文件的位置
  • 将日志数据解析为字段并将其发送到 Elasticsearch
  • 在 Kibana 中可视化日志数据

Filebeat System dashboard

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

要快速上手,请部署我们的托管 Elasticsearch Service。Elasticsearch Service 在 AWS、GCP 和 Azure 上均可用。免费试用

要安装和运行 Elasticsearch 和 Kibana,请参阅安装 Elastic Stack

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

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

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.0.0-amd64.deb
sudo dpkg -i filebeat-9.0.0-amd64.deb
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.0.0-x86_64.rpm
sudo rpm -vi filebeat-9.0.0-x86_64.rpm
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.0.0-darwin-x86_64.tar.gz
tar xzvf filebeat-9.0.0-darwin-x86_64.tar.gz
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-9.0.0-linux-x86_64.tar.gz
tar xzvf filebeat-9.0.0-linux-x86_64.tar.gz
  1. 下载Filebeat Windows zip 文件

  2. 将 zip 文件的内容提取到 C:\Program Files 中。

  3. filebeat-[version]-windows-x86_64 目录重命名为 Filebeat

  4. 以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标并选择 Run As Administrator)。

  5. 在 PowerShell 提示符下,运行以下命令将 Filebeat 安装为 Windows 服务

PS > cd 'C:\Program Files\Filebeat'
PS C:\Program Files\Filebeat> .\install-service-filebeat.ps1
注意

如果您的系统上禁用脚本执行,则需要设置当前会话的执行策略以允许脚本运行。例如:PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1

显示的命令适用于 AMD 平台,但也提供了 ARM 软件包。有关可用软件包的完整列表,请参阅下载页面

连接到 Elasticsearch 和 Kibana 是设置 Filebeat 所必需的。

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

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

cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw=="
cloud.auth: "filebeat_setup:YOUR_PASSWORD"
  1. 此示例显示了一个硬编码密码,但您应将敏感值存储在密钥库中。
  1. 设置 Filebeat 可以找到 Elasticsearch 安装的主机和端口,并设置有权设置 Filebeat 的用户的用户名和密码。例如:

    output.elasticsearch:
      hosts: ["https://myEShost:9200"]
      username: "filebeat_internal"
      password: "YOUR_PASSWORD"
      ssl:
        enabled: true
        ca_trusted_fingerprint: "b9a10bbe64ee9826abeda6546fc988c8bf798b41957c33d05db736716513dc9c"
    
    1. 此示例显示了一个硬编码密码,但您应将敏感值存储在密钥库中。
    2. 此示例显示了一个硬编码指纹,但您应将敏感值存储在密钥库中。指纹是 CA 证书的 HEX 编码 SHA-256。首次启动 Elasticsearch 时,Elasticsearch 的网络加密 (TLS) 等安全功能默认是启用的。如果您使用 Elasticsearch 首次启动时生成的自签名证书,则需要在此处添加其指纹。指纹会打印在 Elasticsearch 启动日志中,或者您可以参考连接客户端到 Elasticsearch 文档以获取检索它的其他选项。如果您为 Elasticsearch 提供自己的 SSL 证书,请参考Filebeat 文档中关于如何设置 SSL 的部分。
  2. 如果您打算使用我们预构建的 Kibana Dashboard,请配置 Kibana 端点。如果 Kibana 与 Elasticsearch 运行在同一主机上,请跳过此步骤。

    setup.kibana:
      host: "mykibanahost:5601"
      username: "my_kibana_user" <2>
      password: "YOUR_PASSWORD"
    
    1. 运行 Kibana 的机器的主机名和端口,例如 mykibanahost:5601。如果在端口号后指定路径,请包含方案和端口:http://mykibanahost:5601/path
    2. Kibana 的 usernamepassword 设置是可选的。如果您未指定 Kibana 的凭据,Filebeat 将使用为 Elasticsearch 输出指定的 usernamepassword
    3. 要使用预构建的 Kibana Dashboard,此用户必须被授权查看 Dashboard 或具有 kibana_admin 内置角色

要了解更多关于所需角色和权限的信息,请参阅授予用户访问安全资源的权限

注意

您可以将数据发送到其他输出,例如 Logstash,但这需要额外的配置和设置。

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

  • 数据收集模块 — 简化常见日志格式的收集、解析和可视化
  • ECS 日志记录器 — 将应用日志结构化并格式化为 ECS 兼容的 JSON
  • 手动 Filebeat 配置
  1. 确定需要启用的模块。要查看可用模块列表,运行:

    filebeat modules list
    
    filebeat modules list
    
    ./filebeat modules list
    
    ./filebeat modules list
    
    PS > .\filebeat.exe modules list
    
  2. 在安装目录下,启用一个或多个模块。例如,以下命令启用 nginx 模块配置:

    filebeat modules enable nginx
    
    filebeat modules enable nginx
    
    ./filebeat modules enable nginx
    
    ./filebeat modules enable nginx
    
    PS > .\filebeat.exe modules enable nginx
    
  3. modules.d 下的模块配置中,更改模块设置以匹配您的环境。您必须在模块中启用至少一个 fileset。Fileset 默认是禁用的。

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

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

要查看模块变量的完整列表,请参阅模块下的文档。

提示

要测试您的配置文件,请切换到安装 Filebeat 二进制文件的目录,并在前台运行 Filebeat 并指定以下选项:./filebeat test config -e。确保您的配置文件位于 Filebeat 期望的路径(请参阅目录布局),或使用 -c 标志指定配置文件的路径。

有关配置 Filebeat 的更多信息,另请参阅:

  • 配置 Filebeat
  • 配置文件格式
  • filebeat.reference.yml:此参考配置文件显示所有未弃用的选项。您可以在与 filebeat.yml 相同的位置找到它。

虽然 Filebeat 可用于摄取原始的纯文本应用日志,但我们建议在摄取时对日志进行结构化。这允许您提取字段,例如日志级别和异常堆栈跟踪。

Elastic 通过提供适用于各种流行编程语言的应用日志格式化程序来简化此过程。这些插件将您的日志格式化为 ECS 兼容的 JSON,从而无需手动解析日志。

请参阅ECS 日志记录器以开始。

如果您找不到适合您文件类型的模块,或者无法更改应用的日志输出,请参阅手动配置输入

Filebeat 附带预定义的资产,用于解析、索引和可视化您的数据。要加载这些资产:

  1. 确保 filebeat.yml 中指定的用户有权设置 Filebeat

  2. 在安装目录下,运行:

    filebeat setup -e
    
    filebeat setup -e
    
    ./filebeat setup -e
    
    ./filebeat setup -e
    
    PS > .\filebeat.exe setup -e
    

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

此步骤加载用于写入 Elasticsearch 的建议索引模板,并部署用于在 Kibana 中可视化数据的示例 Dashboard。

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

提示

连接到 Elasticsearch(或 Elasticsearch Service)是设置初始环境所必需的。如果您使用不同的输出,例如 Logstash,请参阅:

注意

不应使用 Filebeat 摄取其自身的日志,因为这可能导致无限循环。

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

要启动 Filebeat,运行:

sudo service filebeat start
注意

如果您使用 init.d 脚本启动 Filebeat,则无法指定命令行标志(请参阅命令参考)。要指定标志,请在前台启动 Filebeat。

另请参阅Filebeat 与 systemd

sudo service filebeat start
注意

如果您使用 init.d 脚本启动 Filebeat,则无法指定命令行标志(请参阅命令参考)。要指定标志,请在前台启动 Filebeat。

另请参阅Filebeat 与 systemd

sudo chown root filebeat.yml
sudo chown root modules.d/nginx.yml
sudo ./filebeat -e
  1. 您将以 root 用户身份运行 Filebeat,因此需要更改配置文件的所有权以及 modules.d 目录中启用配置的所有权,或者指定 --strict.perms=false 运行 Filebeat。请参阅配置文件所有权和权限
sudo chown root filebeat.yml
sudo chown root modules.d/nginx.yml
sudo ./filebeat -e
  1. 您将以 root 用户身份运行 Filebeat,因此需要更改配置文件的所有权以及 modules.d 目录中启用配置的所有权,或者指定 --strict.perms=false 运行 Filebeat。请参阅配置文件所有权和权限
PS C:\Program Files\filebeat> Start-Service filebeat

默认情况下,Windows 日志文件存储在 C:\ProgramData\filebeat\Logs 中。

Filebeat 应该开始向 Elasticsearch 流式传输事件。

Filebeat 附带预建的 Kibana 仪表板和 UI,用于可视化日志数据。您在运行 setup 命令时已经加载了这些仪表板。

要打开仪表板

  1. 启动 Kibana

    1. 登录您的 Elastic Cloud 账户。
    2. 导航到部署中的 Kibana 端点。

    在浏览器中访问 http://localhost:5601,将 localhost 替换为 Kibana 主机的名称。

  2. 在侧边导航栏中,点击 Discover。要查看 Filebeat 数据,请确保选中预定义的 filebeat-* 数据视图。

    提示

    如果您在 Kibana 中看不到数据,请尝试将时间过滤器更改为更长的范围。默认情况下,Kibana 显示最近 15 分钟的数据。

  3. 在侧边导航栏中,点击 Dashboard,然后选择要打开的仪表板。

这些仪表板作为示例提供。我们建议您根据自己的需求进行自定义

现在您的日志已流式传输到 Elasticsearch 中,了解如何统一您的日志、指标、正常运行时间 (uptime) 和应用程序性能数据。

  1. 通过安装和配置其他 Elastic Beats 从其他来源摄取数据

    Elastic Beats 用于捕获
    Metricbeat 基础设施指标
    Winlogbeat Windows 事件日志
    Heartbeat 正常运行时间信息
    APM 应用程序性能指标
    Auditbeat 审计事件
  2. 使用 Kibana 中的可观测性应用搜索您的所有数据

    Elastic 应用 用于
    Metrics 应用 探索生态系统中系统和服务的指标
    Logs 应用 实时追踪相关的日志数据
    Uptime 应用 监控应用和服务的可用性问题
    APM 应用 监控应用程序性能
    SIEM 应用 分析安全事件
© . All rights reserved.