Filebeat入门

第1步:安装Filebeat

在运行Filebeat之前,您需要安装并配置Elastic堆栈。请参阅 Beats和弹性堆栈入门

要下载并安装Filebeat,请与您的系统中工作的命令(DEB为Debian / Ubuntu的,转速为红帽/ Centos的/ Fedora的,MAC OS X的,docker任何多克尔平台,适用于Windows)。

如果您使用Apt或Yum,则可以从我们的存储库安装Filebeat以更轻松地更新到最新版本。

有关其他安装选项,请参阅我们的下载页面,例如32位图像。

DEB:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-amd64.deb
sudo dpkg -i filebeat-6.1.3-amd64.deb

rpm::

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-x86_64.rpm
sudo rpm -vi filebeat-6.1.3-x86_64.rpm

mac:

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

docker:

docker pull docker.elastic.co/beats/filebeat:6.1.3

win:

  1. 下载页面下载Filebeat Windows zip文件 。
  2. 将zip文件的内容解压缩到C:\Program Files
  3. filebeat-<version>-windows目录重命名为Filebeat
  4. 以管理员身份打开PowerShell提示(右键单击PowerShell图标并选择以管理员身份运行)。如果您正在运行Windows XP,则可能需要下载并安装PowerShell。
  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.

第2步:配置Filebeat

Filebeat模块为通用日志格式提供了最快速的入门体验。请参阅常见日志格式的快速入门 以了解如何开始使用模块。如果您使用Filebeat模块开始,则可以跳过本节中的内容(包括剩余的入门步骤),然后直接进入常见日志格式快速入门 页面。

要配置Filebeat,请编辑配置文件。对于rpm和deb,你会在找到配置文件/etc/filebeat/filebeat.yml。在Docker下,它位于/usr/share/filebeat/filebeat.yml。对于mac和win,请查看刚刚提取的存档。还有一个完整的示例配置文件称为filebeat.reference.yml显示所有不被弃用的选项。

有关配置文件结构的更多信息,请参阅Beats平台参考的 配置文件格式部分 。

以下是filebeatfilebeat.yml文件部分的示例。Filebeat为大多数配置选项使用预定义的默认值。

filebeat.prospectors:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*

配置Filebeat:

  1. 定义您的日志文件的路径(或路径)。

    对于最基本的Filebeat配置,您可以使用单个路径定义一个探勘器。例如:

    filebeat.prospectors:
    #类型
    - type: log
    #是否启用
      enabled: true
    #路径
      paths:
        - /var/log/*.log

    这个例子中的将获取路径中的所有文件/var/log/*.log,这意味着Filebeat将收集以该目录/var/log/结尾的所有文件.logGolang Glob支持的所有模式也支持这里。

    要从预定义级别的子目录中获取所有文件,可以使用以下模式: /var/log/*/*.log。这.log将从所有子文件夹中提取所有文件/var/log。它不从/var/log文件夹本身提取日志文件。目前,不可能递归地获取目录的所有子目录中的所有文件。

  2. 如果要直接将输出发送到Elasticsearch(而不是使用Logstash),请设置Filebeat可以找到Elasticsearch安装的IP地址和端口:

    output.elasticsearch:
      hosts: ["192.168.1.42:9200"]

    如果要将输出发送到Logstash,请确保在步骤3:配置Filebeat中使用Logstash配置Logstash输出。

  3. 如果您打算使用Filebeat提供的示例Kibana仪表板,请配置Kibana端点:

    setup.kibana:
      host: "localhost:5601"

    哪里host是主机名,其中Kibana运行,例如机器的端口,localhost:5601

    如果您在端口号之后指定路径,则需要包括方案和端口:http://localhost:5601/path

  4. 如果您已经确保了Elasticsearch和Kibana的安全性,那么在运行设置并启动Filebeat的命令之前,需要在配置文件中指定凭据。例如:

    output.elasticsearch:
      hosts: ["myEShost:9200"]
      username: "elastic"
      password: "elastic"
    setup.kibana:
      host: "mykibanahost:5601"
      username: "elastic" 
      password: "elastic"

    usernamepassword为Kibana设置可选。如果您不指定Kibana的凭证,Filebeat使用Elasticsearch输出usernamepassword为其指定。

    另请参阅设置Kibana端点和 配置Elasticsearch输出中介绍的安全相关选项。

在开始filebeat之前,您应该查看配置文件中的配置选项。有关这些选项的更多信息,请参阅配置Filebeat

步骤3:配置Filebeat以使用Logstash

要将Logstash用作输出,您必须 安装并配置 Logstash的Beats输入插件。

如果要使用Logstash对Filebeat收集的数据执行其他处理,则需要将Filebeat配置为使用Logstash。

为此,您可以编辑Filebeat配置文件,通过将Elasticsearch输出注释掉并通过取消注释logstash部分来启用Logstash输出来禁用Elasticsearch输出:

#----------------------------- Logstash输出------------------ --------------
output.logstash:
  hosts: ["127.0.0.1:5044"]

hosts选项指定Logstash服务器和5044Logstash配置为监听传入Beats连接的端口()。

对于此配置,必须手动将索引模板加载到Elasticsearch中, 因为用于自动加载模板的选项仅适用于Elasticsearch输出。

第4步:在Elasticsearch 

加载索引模板

在Elasticsearch中,索引模板用于定义设置和映射,以确定如何分析字段。

Filebeat推荐的索引模板文件由Filebeat软件包安装。如果您接受filebeat.yml配置文件中的默认配置 ,Filebeat会在成功连接到Elasticsearch之后自动加载模板。如果模板已经存在,除非您配置Filebeat来覆盖它。

您可以通过在Filebeat配置文件中配置模板加载选项来禁用自动模板加载,或加载自己的模板。

您还可以设置选项来更改索引和索引模板的名称。

加载索引模板需要连接Elasticsearch。如果输出是Logstash,则必须 手动加载模板

有关更多信息,请参阅:

配置模板加载

默认情况下,fields.yml如果启用了Elasticsearch输出,Filebeat将自动加载推荐的模板文件 。您可以将filebeat.yml配置文件中的默认值更改为:

  • 加载一个不同的模板

    setup.template.name: "your_template_name"
    setup.template.fields: "path/to/fields.yml"

    如果模板已经存在,除非您配置Filebeat来覆盖它。

  • 覆盖现有的模板

    setup.template.overwrite: true
  • 禁用自动模板加载

    setup.template.enabled: false

    如果您禁用自动模板加载,则需要 手动加载模板

  • 更改索引名称

    默认情况下,Filebeat将事件写入名为 索引的事件,索引事件的日期在filebeat-6.1.3-yyyy.MM.dd哪里yyyy.MM.dd。要使用不同的名称,请index在Elasticsearch输出中设置该 选项。您指定的值应该包括索引的根名称以及版本和日期信息。您还需要配置setup.template.namesetup.template.pattern选项以匹配新名称。例如:

    output.elasticsearch.index: "customname-%{[beat.version]}-%{+yyyy.MM.dd}"
    setup.template.name: "customname"
    setup.template.pattern: "customname-*"
    setup.dashboards.index: "customname-*"

    如果您计划 设置Kibana仪表板,还可以设置此选项以覆盖仪表板和索引模式中定义的索引名称。

请参阅加载Elasticsearch索引模板以获取完整的配置选项列表。

手动加载模板编辑

要手动加载模板,请运行该setup命令。与Elasticsearch的连接是必需的。如果启用Logstash输出,则需要暂时​​禁用Logstash输出,并使用该-E选项启用Elasticsearch 。这里的示例假定Logstash输出已启用。-E如果Elasticsearch输出已经启用,您可以省略标志。

如果要连接到安全的Elasticsearch群集,请确保您已按照步骤2:配置Filebeat中所述配置凭据。

如果运行Filebeat的主机没有直接连接到Elasticsearch,请参阅手动加载模板(备用方法)

要加载模板,请在系统中使用相应的命令。

deb和rpm:

filebeat setup --template -E output.logstash.enabled = false -E'output.elasticsearch.hosts = [“localhost:9200”]'

mac::

./filebeat setup --template -E output.logstash.enabled = false -E'output.elasticsearch.hosts = [“localhost:9200”]'

docker:

docker run docker.elastic.co/beats/filebeat:6.1.3 setup --template -E output.logstash.enabled = false -E'output.elasticsearch.hosts = [“localhost:9200”]'

win:

以管理员身份打开PowerShell提示(右键单击PowerShell图标并选择以管理员身份运行)。如果您正在运行Windows XP,则可能需要下载并安装PowerShell。

在PowerShell提示符下,转到安装Filebeat的目录,然后运行:

PS > filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

强制Kibana看最新的文件

如果您已经使用Filebeat将数据索引到Elasticsearch中,则索引可能包含旧文档。加载索引模板后,可以删除旧文档filebeat-*,强制Kibana查看最新的文档。使用这个命令:

deb,rpm和mac:

curl -XDELETE 'http://localhost:9200/filebeat-*'

win:

PS > Invoke-RestMethod -Method Delete "http://localhost:9200/filebeat-*"

该命令删除与模式匹配的所有索引filebeat-*。在运行此命令之前,请确保您要删除与模式匹配的所有索引。

手动加载模板(替代方法)

如果运行Filebeat的主机与Elasticsearch没有直接连接,则可以将索引模板导出到文件,将其移动到具有连接性的计算机上,然后手动安装该模板。

  1. 导出索引模板:

    deb和rpm:

    filebeat export template > filebeat.template.json

    mac:

    ./filebeat export template > filebeat.template.json

    win

    PS> .\filebeat.exe export template --es.version 6.1.3 | Out-File -Encoding UTF8 filebeat.template.json
  2. 安装模板:

    deb,rpm和mac:

    curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-6.1.3 [email protected]

    win

    PS > Invoke-RestMethod -Method Put -ContentType "application/json" -InFile filebeat.template.json -Uri http://localhost:9200/_template/filebeat-6.1.3

第5步:设置Kibana仪表板

Filebeat附带了示例Kibana仪表板,可视化以及在Kibana中可视化Filebeat数据的搜索。在使用仪表板之前,您需要创建索引模式filebeat-*,并将仪表板装载到Kibana中。为此,您可以运行setup 命令(如此处所述)或 在 配置文件中配置仪表板加载filebeat.yml

从Beats 6.0.0开始,仪表板通过Kibana API加载。这需要一个Kibana端点配置。您应该在配置Filebeat时更早地配置端点 。如果你没有,现在配置它。

确保Kibana正在运行,然后再执行此步骤。如果您正在访问安全的Kibana实例,请确保您已按照步骤2:配置Filebeat中所述配置了凭据 。

要为Filebeat设置Kibana仪表板,请为您的系统使用相应的命令。

deb和rpm:

filebeat setup --dashboards

mac:

./filebeat setup --dashboards

docker:

docker run docker.elastic.co/beats/filebeat:6.1.3 setup --dashboards

win:

以管理员身份打开PowerShell提示(右键单击PowerShell图标并选择以管理员身份运行)。如果您正在运行Windows XP,则可能需要下载并安装PowerShell。

在PowerShell提示符下,转到安装Filebeat的目录,然后运行:

PS > filebeat setup --dashboards

第6步:启动Filebeat

通过为您的平台发出适当的命令来启动Filebeat。如果您正在访问安全的Elasticsearch群集,请确保您按照步骤2:配置Filebeat中所述配置了凭据。

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

DEB:

sudo service filebeat start

rpm:

sudo service filebeat start

docker:

docker run docker.elastic.co/beats/filebeat:6.1.3

mac:

sudo chown root filebeat.yml 
sudo ./filebeat -e -c filebeat.yml -d "publish"

您将以root身份运行Filebeat,因此您需要更改配置文件的所有权,或者使用--strict.perms=false指定的文件运行Filebeat 。请参阅 Beats平台参考 中的配置文件所有权和权限

赢得:

PS C:\Program Files\Filebeat> Start-Service filebeat

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

Filebeat现在已准备好将日志文件发送到您定义的输出。

第7步:查看示例Kibana仪表板

为了让您更轻松地探索Kibana中的Filebeat数据,我们创建了示例Filebeat仪表板。您在运行setup命令时早些时候加载了仪表板。

要打开仪表板,请将浏览器指向端口5601以启动Kibana Web界面。例如,http://127.0.0.1: 5601 。

Discover页面上,确保选择了预定义的filebeat-*索引模式来查看Filebeat数据。

发现选项卡索引选择

转到“ 仪表板”页面,然后选择要打开的仪表板。

导航部件在Kibana

这些仪表板被设计成在使用Filebeat模块时可以直接使用 。不过,即使您不使用Filebeat模块,也可以将它们用作示例并对其进行自定义以满足您的需求。

要使用数据填充示例仪表板,您需要 定义导入节点管线或使用Logstash将数据解析到仪表板所需的字段中。如果您正在使用Logstash,请参阅 Logstash文档中的 配置示例,以获取有关分析仪表板所支持的日志格式的帮助。

以下是Filebeat系统仪表板的一个例子:

./images/kibana-system.png

常用日志格式

快速入门

Filebeat提供了一套预构建模块,您可以在5分钟内快速实施和部署日志监视解决方案,并附带示例仪表板和数据可视化。这些模块支持常见的日志格式,例如Nginx,Apache2和MySQL,并且可以通过发出一个简单的命令来运行。

本主题向您介绍如何在没有额外配置的情况下运行基本模块。有关详细文档和可用模块的完整列表,请参阅模块

如果您正在使用某个可用Filebeat模块不支持的日志文件类型,则需要按照“Filebeat 入门”中的编号步骤手动设置和配置Filebeat

先决条件编辑

在运行Filebeat模块之前,您需要:

  • 安装并配置Elastic堆栈。请参阅 Beats和弹性堆栈入门
  • 完成步骤1:安装Filebeat中描述的Filebeat安装指示 信息。安装Filebeat后,返回到这个快速启动页面。
  • 安装Ingest Node GeoIP和User Agent插件。这些插件需要捕获示例仪表板中可用的一些可视化所使用的地理位置和浏览器信息。您可以通过在Elasticsearch主路径中运行以下命令来安装这些插件:

    sudo bin/elasticsearch-plugin install ingest-geoip
    sudo bin/elasticsearch-plugin install ingest-user-agent

    运行这些命令后需要重新启动Elasticsearch。

    如果您使用的是Elastic Cloud实例,则可以从配置页面启用这两个插件。

  • 验证Elasticsearch和Kibana正在运行,并且Elasticsearch已经准备好接收来自Filebeat的数据。

运行Filebeat模块编辑

设置和运行Filebeat模块:

  1. 如果您已经确保了Elasticsearch和Kibana的安全性,那么在运行设置并启动Filebeat的命令之前,需要在配置文件中指定凭据。例如:

    output.elasticsearch:
      hosts: ["myEShost:9200"]
      username: "elastic"
      password: "elastic"
    setup.kibana:
      host: "mykibanahost:5601"
      username: "elastic" 
      password: "elastic"

    usernamepassword为Kibana设置可选。如果您不指定Kibana的凭证,Filebeat使用Elasticsearch输出usernamepassword为其指定。

    另请参阅设置Kibana端点和 配置Elasticsearch输出中介绍的安全相关选项。

  2. 运行该setup命令来设置初始环境。该命令加载建议的索引模板以写入Elasticsearch,并部署示例仪表板以在Kibana中可视化数据。例如:

    ./filebeat setup -e

    -e标志是可选的,并将输出发送到标准错误而不是syslog。

  3. 启动Filebeat并使用该--modules标志指定要运行的模块的逗号分隔列表。下面的示例启动Filebeat并system启用该 模块(假设您已经加载了示例仪表板):

    ./filebeat -e --modules system

    该命令负责配置Filebeat并加载解析日志文件所需的导入节点管道和其他配置设置。

    要运行多个模块,请指定一个以逗号分隔的模块列表。例如:

    ./filebeat -e --modules system,nginx,mysql

    当您启动Filebeat时,您应该看到指示Filebeat已启动所有已启用模块的收割器的消息。例如:

    2017/08/16 23:39:15.414375 harvester.go:206: INFO Harvester started for file: /var/log/displaypolicyd.stdout.log

    如果您没有看到需要读取的每个日志文件的消息,请参阅设置路径变量以了解如何设置文件的路径。

根据您安装Filebeat的方式,当您尝试运行Filebeat模块时,可能会看到与文件所有权或权限有关的错误。如果遇到与文件所有权或权限有关的错误,请参阅Beats平台参考 中的配置文件所有权和权限

本入门指南--modules在运行Filebeat时使用该标志在命令行中启用模块。在生产环境中,您可能需要使用modules.d目录中的配置。请参阅 指定运行哪些模块以获取更多信息。

设置路径变量

这里的示例假定您正在收获的日志位于您的操作系统的预期位置,并且Filebeat的默认行为适合您的环境。每个模块都提供了一些变量,您可以设置这些变量来调整Filebeat的行为,包括查找日志文件的位置。例如,以下命令设置Nginx访问日志的路径:

./filebeat -e --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]"

请参阅指定要运行的模块以获取有关设置变量和高级选项的更多信息。

在Kibana 编辑中可视化数据

确认Filebeat正在向Elasticsearch发送事件后,通过将浏览器指向端口5601来启动Kibana Web界面。例如,http://127.0.0.1: 5601 。

打开仪表板并浏览解析日志的可视化。

如果您在Kibana中看不到数据,请尝试将日期范围更改为更大的范围。默认情况下,Kibana会显示最后15分钟。

以下是syslog仪表板的一个例子:

Syslog仪表板

APT和YUM 

存储库

我们有可用于APT和YUM分发的存储库。请注意,我们提供二进制包,但没有源包。

我们使用带指纹的PGP密钥D88E42B4,Elasticsearch签名密钥

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

签署我们所有的软件包。它可以从https://pgp.mit.edu获得

APT编辑

为APT添加Beats存储库:

  1. 下载并安装公共签名密钥:

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  2. 继续操作之前,您可能需要apt-transport-https在Debian 上安装软件包:

    sudo apt-get install apt-transport-https
  3. 将存储库定义保存到 /etc/apt/sources.list.d/elastic-6.x.list

    echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

    要添加Elastic存储库,请确保使用echo示例中显示的方法。不要使用,add-apt-repository因为它会添加一个deb-src 条目,但我们不提供源包。

    如果您deb-src错误地添加了条目,则会看到类似以下的错误:

    Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)

    只需deb-src/etc/apt/sources.list文件中删除条目,安装应按预期工作。

  4. 运行apt-get update,存储库已准备好使用。例如,您可以运行以下命令来安装Filebeat:

    sudo apt-get update && sudo apt-get install filebeat
  5. 要将Beat配置为在引导过程中自动启动,请运行:

    sudo update-rc.d filebeat defaults 95 10

YUM

要为YUM添加Beats存储库,请执行以下操作:

  1. 下载并安装公共签名密钥:

    sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
  2. 在目录中 创建一个.repo扩展名为(例如elastic.repo)的/etc/yum.repos.d/文件,并添加以下行:

    [elastic-6.x]
    name=Elastic repository for 6.x packages
    baseurl=https://artifacts.elastic.co/packages/6.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md

    您的存储库已准备好使用。例如,您可以运行以下命令来安装Filebeat:

    sudo yum install filebeat
  3. 要将Beat配置为在引导过程中自动启动,请运行:

    sudo chkconfig --add filebeat

猜你喜欢

转载自my.oschina.net/ch66880/blog/1619026