第1步:安装Filebeat
在运行Filebeat之前,您需要安装并配置Elastic堆栈。请参阅 。
要下载并安装Filebeat,请与您的系统中工作的命令(为Debian / Ubuntu的,为红帽/ Centos的/ Fedora的, OS X的,任何多克尔平台,适用于Windows)。
如果您使用Apt或Yum,则可以以更轻松地更新到最新版本。
有关其他安装选项,请参阅我们的,例如32位图像。
DEB:
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-amd64.debsudo 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.rpmsudo 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.gztar xzvf filebeat-6.1.3-darwin-x86_64.tar.gz
docker:
docker pull docker.elastic.co/beats/filebeat:6.1.3
win:
- 从下载Filebeat Windows zip文件 。
- 将zip文件的内容解压缩到
C:\Program Files
。 - 将
filebeat-<version>-windows
目录重命名为Filebeat
。 - 以管理员身份打开PowerShell提示(右键单击PowerShell图标并选择以管理员身份运行)。如果您正在运行Windows XP,则可能需要下载并安装PowerShell。
-
在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,请编辑配置文件。对于rpm和deb,你会在找到配置文件/etc/filebeat/filebeat.yml
。在Docker下,它位于/usr/share/filebeat/filebeat.yml
。对于mac和win,请查看刚刚提取的存档。还有一个完整的示例配置文件称为filebeat.reference.yml
显示所有不被弃用的选项。
有关结构的更多信息,请参阅Beats平台参考的 部分 。
以下是filebeat
该filebeat.yml
文件部分的示例。Filebeat为大多数配置选项使用预定义的默认值。
filebeat.prospectors:- type: log enabled: true paths: - /var/log/*.log #- c:\programdata\elasticsearch\logs\*
配置Filebeat:
-
定义您的日志文件的路径(或路径)。
对于最基本的Filebeat配置,您可以使用单个路径定义一个探勘器。例如:
filebeat.prospectors:#类型- type: log#是否启用 enabled: true#路径 paths: - /var/log/*.log
这个例子中的将获取路径中的所有文件
/var/log/*.log
,这意味着Filebeat将收集以该目录/var/log/
结尾的所有文件.log
。支持的所有模式也支持这里。要从预定义级别的子目录中获取所有文件,可以使用以下模式:
/var/log/*/*.log
。这.log
将从所有子文件夹中提取所有文件/var/log
。它不从/var/log
文件夹本身提取日志文件。目前,不可能递归地获取目录的所有子目录中的所有文件。 -
如果要直接将输出发送到Elasticsearch(而不是使用Logstash),请设置Filebeat可以找到Elasticsearch安装的IP地址和端口:
output.elasticsearch: hosts: ["192.168.1.42:9200"]
如果要将输出发送到Logstash,请确保在配置Logstash输出。
-
如果您打算使用Filebeat提供的示例Kibana仪表板,请配置Kibana端点:
setup.kibana: host: "localhost:5601"
哪里
host
是主机名,其中Kibana运行,例如机器的端口,localhost:5601
。如果您在端口号之后指定路径,则需要包括方案和端口:
http://localhost:5601/path
。 -
如果您已经确保了Elasticsearch和Kibana的安全性,那么在运行设置并启动Filebeat的命令之前,需要在配置文件中指定凭据。例如:
output.elasticsearch: hosts: ["myEShost:9200"] username: "elastic" password: "elastic"setup.kibana: host: "mykibanahost:5601" username: "elastic" password: "elastic"
该
username
和password
为Kibana设置可选。如果您不指定Kibana的凭证,Filebeat使用Elasticsearch输出username
并password
为其指定。另请参阅和 介绍的安全相关选项。
在开始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服务器和5044
Logstash配置为监听传入Beats连接的端口()。
对于此配置,必须 因为用于自动加载模板的选项仅适用于Elasticsearch输出。
第4步:在Elasticsearch
加载索引模板
在Elasticsearch中,用于定义设置和映射,以确定如何分析字段。
Filebeat推荐的索引模板文件由Filebeat软件包安装。如果您接受filebeat.yml
配置文件中的默认配置 ,Filebeat会在成功连接到Elasticsearch之后自动加载模板。如果模板已经存在,除非您配置Filebeat来覆盖它。
您可以通过在Filebeat配置文件中配置模板加载选项来禁用自动模板加载,或加载自己的模板。
您还可以设置选项来更改索引和索引模板的名称。
加载索引模板需要连接Elasticsearch。如果输出是Logstash,则必须 。
有关更多信息,请参阅:
- - 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
。要使用不同的名称,请在Elasticsearch输出中设置该 选项。您指定的值应该包括索引的根名称以及版本和日期信息。您还需要配置setup.template.name
和setup.template.pattern
选项以匹配新名称。例如:output.elasticsearch.index: "customname-%{[beat.version]}-%{+yyyy.MM.dd}"setup.template.name: "customname"setup.template.pattern: "customname-*"setup.dashboards.index: "customname-*"
如果您计划 ,还可以设置此选项以覆盖仪表板和索引模式中定义的索引名称。
请参阅以获取完整的配置选项列表。
手动加载模板
要手动加载模板,请运行该命令。与Elasticsearch的连接是必需的。如果启用Logstash输出,则需要暂时禁用Logstash输出,并使用该-E
选项启用Elasticsearch 。这里的示例假定Logstash输出已启用。-E
如果Elasticsearch输出已经启用,您可以省略标志。
如果要连接到安全的Elasticsearch群集,请确保您已按照所述配置凭据。
如果运行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没有直接连接,则可以将索引模板导出到文件,将其移动到具有连接性的计算机上,然后手动安装该模板。
-
导出索引模板:
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
-
安装模板:
deb,rpm和mac:
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-6.1.3 -d@filebeat.template.json
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端点配置。您应该在时更早地配置端点 。如果你没有,现在配置它。
确保Kibana正在运行,然后再执行此步骤。如果您正在访问安全的Kibana实例,请确保您已按照所述配置了凭据 。
要为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群集,请确保您按照所述配置了凭据。
如果使用init.d脚本在deb或rpm上启动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,因此您需要更改配置文件的所有权,或者使用 |
赢得:
PS C:\Program Files\Filebeat> Start-Service filebeat
默认情况下,Windows日志文件存储在C:\ProgramData\filebeat\Logs
。
Filebeat现在已准备好将日志文件发送到您定义的输出。
第7步:查看示例Kibana仪表板
为了让您更轻松地探索Kibana中的Filebeat数据,我们创建了示例Filebeat仪表板。您在运行setup
命令时早些时候加载了仪表板。
要打开仪表板,请将浏览器指向端口5601以启动Kibana Web界面。例如, 5601 。
在Discover页面上,确保选择了预定义的filebeat-*
索引模式来查看Filebeat数据。
转到“ 仪表板”页面,然后选择要打开的仪表板。
这些仪表板被设计成在使用时可以直接使用 。不过,即使您不使用Filebeat模块,也可以将它们用作示例并对其进行以满足您的需求。
要使用数据填充示例仪表板,您需要 导入或使用Logstash将数据解析到仪表板所需的字段中。如果您正在使用Logstash,请参阅 Logstash文档中的 ,以获取有关分析仪表板所支持的日志格式的帮助。
以下是Filebeat系统仪表板的一个例子:
常用日志格式
快速入门
Filebeat提供了一套预构建模块,您可以在5分钟内快速实施和部署日志监视解决方案,并附带示例仪表板和数据可视化。这些模块支持常见的日志格式,例如Nginx,Apache2和MySQL,并且可以通过发出一个简单的命令来运行。
本主题向您介绍如何在没有额外配置的情况下运行基本模块。有关详细文档和可用模块的完整列表,请参阅。
如果您正在使用某个可用Filebeat模块不支持的日志文件类型,则需要按照“Filebeat 的编号步骤手动设置和配置。
先决条件
在运行Filebeat模块之前,您需要:
- 安装并配置Elastic堆栈。请参阅 。
- 完成描述的Filebeat安装指示 。安装Filebeat后,返回到这个快速启动页面。
-
安装Ingest Node GeoIP和User Agent插件。这些插件需要捕获示例仪表板中可用的一些可视化所使用的地理位置和浏览器信息。您可以通过在Elasticsearch主路径中运行以下命令来安装这些插件:
sudo bin/elasticsearch-plugin install ingest-geoipsudo bin/elasticsearch-plugin install ingest-user-agent
运行这些命令后需要重新启动Elasticsearch。
如果您使用的是实例,则可以从配置页面启用这两个插件。
- 验证Elasticsearch和Kibana正在运行,并且Elasticsearch已经准备好接收来自Filebeat的数据。
运行Filebeat模块
设置和运行Filebeat模块:
-
如果您已经确保了Elasticsearch和Kibana的安全性,那么在运行设置并启动Filebeat的命令之前,需要在配置文件中指定凭据。例如:
output.elasticsearch: hosts: ["myEShost:9200"] username: "elastic" password: "elastic"setup.kibana: host: "mykibanahost:5601" username: "elastic" password: "elastic"
该
username
和password
为Kibana设置可选。如果您不指定Kibana的凭证,Filebeat使用Elasticsearch输出username
并password
为其指定。另请参阅和 介绍的安全相关选项。
-
运行该
setup
命令来设置初始环境。该命令加载建议的索引模板以写入Elasticsearch,并部署示例仪表板以在Kibana中可视化数据。例如:./filebeat setup -e
该
-e
标志是可选的,并将输出发送到标准错误而不是syslog。 -
启动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界面。例如, 5601 。
打开仪表板并浏览解析日志的可视化。
如果您在Kibana中看不到数据,请尝试将日期范围更改为更大的范围。默认情况下,Kibana会显示最后15分钟。
以下是syslog仪表板的一个例子:
APT和YUM
存储库
我们有可用于APT和YUM分发的存储库。请注意,我们提供二进制包,但没有源包。
我们使用带指纹的PGP密钥,Elasticsearch签名密钥
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
签署我们所有的软件包。它可以从。
APT
为APT添加Beats存储库:
-
下载并安装公共签名密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
-
继续操作之前,您可能需要
apt-transport-https
在Debian 上安装软件包:sudo apt-get install apt-transport-https
-
将存储库定义保存到
/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
文件中删除条目,安装应按预期工作。 -
运行
apt-get update
,存储库已准备好使用。例如,您可以运行以下命令来安装Filebeat:sudo apt-get update && sudo apt-get install filebeat
-
要将Beat配置为在引导过程中自动启动,请运行:
sudo update-rc.d filebeat defaults 95 10
YUM
要为YUM添加Beats存储库,请执行以下操作:
-
下载并安装公共签名密钥:
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
-
在目录中 创建一个
.repo
扩展名为(例如elastic.repo
)的/etc/yum.repos.d/
文件,并添加以下行:[elastic-6.x]name=Elastic repository for 6.x packagesbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
您的存储库已准备好使用。例如,您可以运行以下命令来安装Filebeat:
sudo yum install filebeat
-
要将Beat配置为在引导过程中自动启动,请运行:
sudo chkconfig --add filebeat