Filebeat的简介这里就不写了,直接上干货
万年第一步,下载解压安装~
这里用的还是6.2.2版本
[root@hadoop01 elk]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.2-linux-x86_64.tar.gz
--2018-07-17 22:23:24-- https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.2-linux-x86_64.tar.gz
正在解析主机 artifacts.elastic.co (artifacts.elastic.co)... 54.235.82.130, 54.235.171.120, 107.21.253.15, ...
正在连接 artifacts.elastic.co (artifacts.elastic.co)|54.235.82.130|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:12382174 (12M) [binary/octet-stream]
正在保存至: “filebeat-6.2.2-linux-x86_64.tar.gz”
100%[=================================================================================================================================================================================================>] 12,382,174 153KB/s 用时 68s
2018-07-17 22:24:34 (177 KB/s) - 已保存 “filebeat-6.2.2-linux-x86_64.tar.gz” [12382174/12382174])
[root@hadoop01 elk]# ls
filebeat-6.2.2-linux-x86_64.tar.gz
[root@hadoop01 elk]# tar -zxf filebeat-6.2.2-linux-x86_64.tar.gz
[root@hadoop01 elk]# ls
filebeat-6.2.2-linux-x86_64 filebeat-6.2.2-linux-x86_64.tar.gz
首先要知道filebeat.yml是filebeat的配置文件。下面是他的部分示例
filebeat:
prospectors:
- type: log
paths:
- /var/log/*.log
multiline:
pattern: '^['
match: after
配置文件中有很多注释,改的时候需要仔细查看,下面就说一些其中的几个重要要修改的配置。(只展示部分代码)
(文件监视器)用于指定需要关注的文件。示例:
filebeat.prospectors:
- type: log
enabled: true
paths:
- /var/log/*.log
如果你希望使用 filebeat 直接向 elasticsearch 输出数据,需要配置 output.elasticsearch 。 示例:
output.elasticsearch:
hosts: ["10.25.0.165:9200"]
如果你希望使用 filebeat 向 logstash输出数据,然后由 logstash 再向elasticsearch 输出数据,需要配置 output.logstash。 示例:
output.logstash:
hosts: ["127.0.0.1:5044"]
TIP:注意
相比于向 elasticsearch 输出数据,个人更推荐向 logstash 输出数据。
因为 logstash 和 filebeat 一起工作时,如果 logstash 忙于处理数据,会通知 FileBeat 放慢读取速度。一旦拥塞得到解决,FileBeat 将恢复到原来的速度并继续传播。这样,可以减少管道超负荷的情况。
此外,还需要在 logstash 的配置文件(如 logstash.conf)中指定 beats input 插件:
input {
beats {
port => 5044 # 此端口需要与 filebeat.yml 中的端口相同
}
}
# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }
output {
elasticsearch {
hosts => "10.25.0.165:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
如果打算使用 Filebeat 提供的 Kibana 仪表板,需要配置 setup.kibana 。 示例:
setup.kibana:
host: "10.25.0.165:5601"
如果打算使用 Filebeat 提供的 Kibana 仪表板,需要配置 setup.kibana 。 示例:
setup.kibana:
host: "10.25.0.165:5601"
如无必要,使用 Filebeat 配置文件中的默认索引模板即可
在使用仪表板之前,您需要创建索引模式 filebeat- *,并将仪表板加载到Kibana 中。为此,您可以运行 setup 命令或在 filebeat.yml 配置文件中配置仪表板加载。 。 示例:
setup.dashboards.enabled: true
上述配置都是在filebeat.yml这一配置文件中完成,下面来讲一讲他的启动命令~ 示例:指定配置文件启动
./filebeat run -e -c filebeat.yml -d "publish"
./filebeat -e -c filebeat.yml -d "publish" # run 可以省略
1.模块选择
Filebeat 提供了一套预构建的模块,让您可以快速实施和部署日志监视解决方案,并附带示例仪表板和数据可视化。这些模块支持常见的日志格式,例如Nginx,Apache2和MySQL 等。
运行模块的步骤
output.elasticsearch:
hosts: ["myEShost:9200"]
username: "elastic"
password: "elastic"
setup.kibana:
host: "mykibanahost:5601"
username: "elastic"
password: "elastic
username 和 password 是可选的,如果不需要认证则不填。
./filebeat setup -e
./filebeat -e --modules system,nginx,mysql
2.搜索路径配置
原理:Filebeat 有两个主要组件:
harvester:负责读取一个文件的内容。它会逐行读取文件内容,并将内容发送到输出目的地。
prospector:负责管理 harvester 并找到所有需要读取的文件源。比如类型是日志,prospector 就会遍历制定路径下的所有匹配要求的文件。
filebeat.prospectors:
- type: log
paths:
- /var/log/*.log
- /var/path2/*.log
Filebeat保持每个文件的状态,并经常刷新注册表文件中的磁盘状态。状态用于记住 harvester 正在读取的最后偏移量,并确保发送所有日志行。
Filebeat 将每个事件的传递状态存储在注册表文件中。所以它能保证事件至少传递一次到配置的输出,没有数据丢失。
Beats 官方文档
Elastic 技术栈之 Filebeat