ELK:配置使用 Filebeat

2021-08-13 10:03:14 浏览数 (1)

0x01:为什么采用 Filebeat

Logstash 是一个 Java 程序,当作为收集日志的 Agent 时,显得太臃肿了。这时需要一个轻量级的日志收集 Agent,其实可以先看看官方是否提供相关的 Agent,现在的需求是收集特定的日志文件, 官方提供了这样的工具:Filebeat,官方给 Filebeat 的定义就是轻量级的日志收集工具。

Filebeat 是基于原先 logstash-forwarder 的源码改造出来的。换句话说:Filebeat 就是新版的 logstash-forwarder,也会是 ELK Stack 在 shipper 端的第一选择。

0x02:安装 Filebeat

2.1 准备条件

  • ELK简介

对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:Logstash(收集)、Elasticsearch(存储 搜索)、Kibana(展示)。将这三个组合起来的技术称之为 ELKStack,所以说 ELKStack 指的是 Elasticsearch、Logstash、Kibana 技术栈的结合。

关于 Elastic Stack 的快速安装最新文档请参考官网的安装文档Installing the Elastic Stack,总结得比较完整。

代码语言:javascript复制
https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html
  • ELK 快速安装

安装 Elasticsearch

Elasticsearch 首先需要 Java 环境,所以需要提前安装好 JDK,可以直接使用 yum 安装。也可以从 Oracle 官网下载 JDK 进行安装。开始之前要确保 JDK 正常安装并且环境变量也配置正确。

代码语言:javascript复制
# 0. 安装 JDK
[root@linux-node1 ~]# yum install java
[root@linux-node1 ~]# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

# 1. 下载安装 GPG Key
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

# 2. 配置 yum 仓库
vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

# 3. 安装
yum install elasticsearch -y

安装 Logstash

与安装 Elasticsearch 一样,在开始部署 Logstash 之前也需要你的环境中正确的安装的 JDK。

代码语言:javascript复制
# 0. 安装 JDK
[root@linux-node1 ~]# yum install java
[root@linux-node1 ~]# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

# 1. 下载安装 GPG Key
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

# 2. 配置 yum 仓库
vim /etc/yum.repos.d/logstash.repo
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

# 3. 安装
yum install logstash -y

安装 Kibana

Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。 你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。 你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。

代码语言:javascript复制
# 1. 下载安装 GPG Key
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

# 2. 配置 yum 仓库
vim /etc/yum.repos.d/kibana.repo
[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

# 3. 安装
yum install kibana -y

小技巧:yum install *.rpm 会验证依赖。 当 yum 下载安装软件包比较慢时,可以用其他快速下载工具下载对应的软件包,然后再安装。

使用 Cobbler 创建 ELKStack 仓库

生产环境一般不能使用外网的 YUM 仓库,可以使用 Cobbler 来创建自己的 yum 仓库。

代码语言:javascript复制
[root@linux-node1 ~]# cobbler repo add --name=elasticsearch-2.x --mirror=https://packages.elastic.co/elasticsearch/2.x/centos --arch=x86_64 --breed=yum
[root@linux-node1 ~]# cobbler repo add --name=logstash-2.3 --mirror=https://packages.elastic.co/logstash/2.3/centos --arch=x86_64 --breed=yum
[root@linux-node1 ~]# cobbler repo add --name=kibana-4.5 --mirror=http://packages.elastic.co/kibana/4.5/centos --arch=x86_64 --breed=yum
[root@linux-node1 ~]# cobbler reposync

2.2 安装 Filebeat

代码语言:javascript复制
# 下载并安装 Filebeat 软件包
curl -L -O https://download.elastic.co/beats/filebeat/filebeat-1.3.1-x86_64.rpm
rpm -ivh filebeat-1.3.1-x86_64.rpm

0x03:配置 Filebeat

代码语言:javascript复制
# 本例主要修改 2 部分参数


[root@linux-node2 conf.d]# egrep -v "#|^$" /etc/filebeat/filebeat.yml
filebeat:
  prospectors:
    -
      paths:
        - /var/log/nginx/access_log_json.log        # 定义日志文件的路径,可以使用 Shell GLOB 匹配
      input_type: log
  registry_file: /var/lib/filebeat/registry
output:
  logstash:            # output 处配置输出到 logstash,其实也可以直接输出到 ES,但不能对日志进行额外处理
    hosts: ["192.168.56.11:5044"]
shipper:
logging:
  files:

可以在这样在 “./filebeat -configtest -e” 前台运行 Filebeat 测试配置文件

0x04: 启动 Filebeat

代码语言:javascript复制
/etc/init.d/filebeat start

正常启动后,Filebeat 就可以发送日志文件数据到你指定的输出。

0x05:Logstash 配置 input beats 插件

代码语言:javascript复制
[root@linux-node1 ~]# cat /etc/logstash/conf.d/filebeat.conf 
input {
  beats {
    port => 5044    #Logstash 开启 5044 端口用于接收上面 Filebeat 发送过来的数据
    type => "logs"
    codec => "json"
  }
}


output {
  redis {
    host => "192.168.56.12"
    port => 6379
    db => 6
    data_type => "list"
    key => "filebeat"
  }
}

这样就完成了 Filebeat 收集日志文件数据并发送到 Logstash 的配置。

代码语言:javascript复制
souce: http://jaminzhang.github.io/

0 人点赞