Filebeat 部署

目录

(1)下载

(2)解压

(3)修改配置

(4)启动

(5)配置nginx


为什么用 Filebeat ,而不用原来的 Logstash 呢?

原因很简单,资源消耗比较大。

由于 Logstash 是跑在 JVM 上面,资源消耗比较大,后来作者用 GO 写了一个功能较少但是资源消耗也小的轻量级的 Agent 叫 Logstash-forwarder。

后来作者加入 elastic.co 公司, Logstash-forwarder 的开发工作给公司内部 GO 团队来搞,最后命名为 Filebeat。

Filebeat 需要部署在每台应用服务器上,可以通过 Salt 来推送并安装配置。

  • 服务器

安装软件 主机名 IP地址 系统版本 配置
filebeat Kafka3 10.3.145.43 centos7.5.1804 1核2G
  • 软件版本 filebeat-7.13.2-x86_64.rpm

(1)下载
[root@kafka3 ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.2-x86_64.rpm
(2)解压
[root@kafka3 ~]# yum install -y filebeat-7.13.2-x86_64.rpm
(3)修改配置

修改 Filebeat 配置,支持收集本地目录日志,并输出日志到 Kafka 集群中

[root@kafka3 ~]# vim filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
output.logstash:
  hosts: ["192.168.52.134:5000"]

output.kafka:   
  hosts: ["10.3.145.41:9092","10.3.145.42:9092","10.3.145.43:9092"]
  topic: 'nginx'
# 注意,如果需要重新读取,请删除/data/registry目录 

Filebeat 6.0 之后一些配置参数变动比较大,比如 document_type 就不支持,需要用 fields 来代替等等。

(4)启动
[root@kafka3 ~]# ./filebeat -e -c filebeat.yml

(5)配置nginx
因为日志格式的切割需要json格式,kibana中会报错 error decoding json,所以在这里我们将nginx的日志格式修改为json格式。


[root@kafka3 ~]# vim /etc/nginx/nginx.conf
#    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                      '"$http_user_agent" "$http_x_forwarded_for"';
     log_format main        '{"user_ip":"$http_x_real_ip","lan_ip":"$remote_addr","log_time":"$time_iso8601","user_req":"$request","http_code":"$status","body_bytes_sents":"$body_bytes_sent","req_time":"$request_time","user_ua":"$http_user_agent"}';
    access_log  /var/log/nginx/access.log  main;

Filebeat 部署_第1张图片

你可能感兴趣的:(github)