官网
https://www.elastic.co/guide/en/beats/filebeat/6.2/filebeat-getting-started.html
要开始使用自己的Filebeat设置,请安装并配置这些相关产品:
Elasticsearch存储和索引数据。
用于UI的Kibana。
Logstash(可选)用于将数据插入Elasticsearch。
有关更多信息,请参阅Beats和弹性堆栈入门。
安装Elastic Stack之后,请阅读以下主题以了解如何安装,配置和运行Filebeat:
安装
配置Filebeat
Filebeat模块为通用日志格式提供了最快速的入门体验。 请参阅常见日志格式的快速入门以了解如何开始使用模块。 如果您使用Filebeat模块开始使用,您可以跳过本节中的内容(包括剩余的入门步骤),并直接进入常见日志格式快速入门页面。
要配置Filebeat,请编辑配置文件。 对于rpm和deb,你可以在/etc/filebeat/filebeat.yml找到配置文件。 在Docker下,它位于/usr/share/filebeat/filebeat.yml。 对于mac和win,请查看刚刚提取的存档。 还有一个名为filebeat.reference.yml的完整示例配置文件,其中显示了所有未弃用的选项。
有关配置文件结构的更多信息,请参阅Beats平台参考的配置文件格式部分。
以下是filebeat.yml文件的filebeat部分的示例。 Filebeat为大多数配置选项使用预定义的默认值。
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/log/*.log
#- c:\programdata\elasticsearch\logs\*
1、定义日志文件的路径(或多个路径)。
对于最基本的Filebeat配置,您可以使用单个路径定义单个探勘器。 例如:
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/log/*.log
本示例中的探矿者收获路径为/var/log/*.log中的所有文件,这意味着Filebeat将收集以.log结尾的目录/ var / log /中的所有文件。 Golang Glob支持的所有模式也支持此处。
要从预定义级别的子目录中获取所有文件,可以使用以下模式:/var/log//.log。 这将从/ var / log的子文件夹中提取所有.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"
Kibana的用户名和密码设置是可选的。 如果您没有为Kibana指定凭证,Filebeat将使用为Elasticsearch输出指定的用户名和密码。
如果您打算设置Kibana仪表板,则用户必须具有kibana_user内置角色或同等权限。
另请参阅设置Kibana端点和配置Elasticsearch输出中介绍的安全相关选项。
在开始filebeat之前,您应该查看配置文件中的配置选项。 有关这些选项的更多信息,请参阅配置Filebeat。
配置Filebeat以使用Logstash
要将Logstash用作输出,您必须安装并配置Logstash的Beats输入插件。
如果要使用Logstash对Filebeat收集的数据执行附加处理,则需要将Filebeat配置为使用Logstash。
为此,请编辑Filebeat配置文件,通过将Elasticsearch输出注释掉并通过取消注释logstash部分来启用Logstash输出来禁用Elasticsearch输出:
#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["127.0.0.1:5044"]
请确认Elasticsearch选项关闭,参考以下配置
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
hosts选项指定Logstash服务器和端口(5044),其中Logstash被配置为侦听传入的Beats连接。
对于此配置,您必须手动将索引模板加载到Elasticsearch中,因为用于自动加载模板的选项仅适用于Elasticsearch输出。
在Elasticsearch中加载索引模板
在Elasticsearch中,索引模板用于定义设置和映射,以确定应如何分析字段。
Filebeat推荐的索引模板文件由Filebeat软件包安装。 如果您接受filebeat.yml配置文件中的默认配置,Filebeat在成功连接到Elasticsearch后自动加载模板。 如果该模板已经存在,则不会覆盖它,除非您配置Filebeat来执行此操作。
您可以通过在Filebeat配置文件中配置模板加载选项来禁用自动模板加载,或加载自己的模板。
您还可以设置选项来更改索引和索引模板的名称。
加载索引模板需要连接Elasticsearch。 如果输出是Logstash,则必须手动加载模板。
有关更多信息,请参阅:
手动加载模板 - Logstash输出所需的模板
要手动加载模板,请运行setup命令。 与Elasticsearch的连接是必需的。 如果启用Logstash输出,则需要暂时禁用Logstash输出,并使用-E选项启用Elasticsearch。 这里的示例假定Logstash输出已启用。 如果Elasticsearch输出已经启用,您可以省略-E标志。
如果要连接到安全的Elasticsearch群集,请确保您已按照步骤2:配置Filebeat中所述配置了凭据。
如果运行Filebeat的主机没有直接连接到Elasticsearch,请参阅手动加载模板(备用方法)。
要加载模板,请为您的系统使用适当的命令。
如果是Logstash输出一定不能执行下面这句
./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-*'
该命令将删除与模式filebeat- *匹配的所有索引。 在运行此命令之前,请确保您要删除与该模式匹配的所有索引。
手动加载模板(备用方法)
如果运行Filebeat的主机没有与Elasticsearch的直接连接,则可以将索引模板导出到文件,将其移至具有连接性的计算机,然后手动安装该模板。
1、导出索引模板
mac
./filebeat export template > filebeat.template.json
2、安装模板
mac
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-6.2.4 -d@filebeat.template.json
设置Kibana仪表板
因为配置的输出是Logstash,所以这一步运行不成功,先跳过
Filebeat附带示例Kibana仪表板,可视化和搜索可视化Kibana中的Filebeat数据。 在您可以使用仪表板之前,您需要创建索引模式filebeat- *,并将仪表板加载到Kibana中。 为此,您可以运行setup命令(如此处所述)或在filebeat.yml配置文件中配置仪表板加载。
这需要Kibana端点配置。 如果您尚未配置Kibana端点,请参阅配置的Filebeat
确保Kibana正在运行,然后再执行此步骤。 如果您正在访问安全的Kibana实例,请确保您已按照步骤2:配置Filebeat中所述配置了凭据。
要为Filebeat设置Kibana仪表板,请为您的系统使用适当的命令。
./filebeat setup --dashboards
如果遇到
config file ("filebeat.yml") must be owned by the beat user (uid=0) or root
启动Filebeat
通过为您的平台发布适当的命令来启动Filebeat。 如果您正在访问安全的Elasticsearch群集,请确保您已按照步骤2:配置Filebeat中所述配置了凭据。
如果使用init.d脚本以deb或rpm启动Filebeat,则无法指定命令行标志(请参阅命令参考)。 要指定标志,请在前台启动Filebeat。
mac
sudo chown root filebeat.yml
sudo ./filebeat -e -c filebeat.yml -d "publish"