Elastic 之 Filebeat安装使用

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

(文件监视器)用于指定需要关注的文件。示例:

filebeat.prospectors:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
  • output.elasticsearch

如果你希望使用 filebeat 直接向 elasticsearch 输出数据,需要配置 output.elasticsearch 。 示例:

output.elasticsearch:
  hosts: ["10.25.0.165:9200"]
  • output.logstash

如果你希望使用 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]}" 
  }
}
  • setup.kibana

如果打算使用 Filebeat 提供的 Kibana 仪表板,需要配置 setup.kibana 。 示例:

setup.kibana:
  host: "10.25.0.165:5601"
  • setup.kibana

如果打算使用 Filebeat 提供的 Kibana 仪表板,需要配置 setup.kibana 。 示例:

setup.kibana:
  host: "10.25.0.165:5601"
  • setup.template.settings

如无必要,使用 Filebeat 配置文件中的默认索引模板即可

  • setup.dashboards

在使用仪表板之前,您需要创建索引模式 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 等。
运行模块的步骤

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

username 和 password 是可选的,如果不需要认证则不填。

  • 初始化环境
    执行下面命令,filebeat 会加载推荐索引模板。
./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

你可能感兴趣的:(ELK)