ELK之Filebeat使用

ELK

Filebeat的使用

前言

Logstash功能虽然强大,但是它依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而filebeat就是一个完美的替代者,filebeat是Beat成员之一,基于Go语言,没有任何依赖,配置文件简单,格式明了,同时,filebeat比logstash更加轻量级,所以占用系统资源极少,非常适合安装在生产机器上。

一、Filebeat下载安装

1.Filebeat下载

直接从
https://www.elastic.co/downloads/beats/filebeat
下载即可
下载完成后上传到服务器上

[root@VM-0-2-centos usr]# tar -zxvf filebeat-6.2.4-linux-x86_64.tar.gz -C /usr/local/

重命名一下

[root@VM-0-2-centos local]# mv /usr/local/filebeat-6.2.4-linux-x86_64.tar.gz / /usr/local/filebeat/

2.修改配置文件

vim打开/usr/local/filebeat/filebeat.yml
会发现如下没有被注释的配置
配置的意义如下

#=========================== Filebeat prospectors =============================

#定义filebeat输入数据的原型信息
filebeat.prospectors:
#指定数据的输入类型,这里是log,即日志,是默认值,还可以指定为stdin,即标准输入。
- type: log
  #是否启用手工配置filebeat,而不是采用模块方式配置filebeat。
  #如果使用默认设置fasle,则配置不会生效 线上一般都是true
  enabled: false
  #用于指定要监控的日志文件,可以指定一个完整路径的文件,也可以是一个模糊匹配格式
  paths:
    - /var/log/*.log

#============================= Filebeat modules ===============================
#引入filebeat的module配置
filebeat.config.modules:
  # Glob pattern for configuration loading
  # 模块化配置导入配置文件的地址
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  # 是否允许重新加载
  reload.enabled: false

#==================== Elasticsearch template setting ==========================
#es模板配置
setup.template.settings:
  #数据分片数
  index.number_of_shards: 3

#============================== Kibana =====================================
# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
#kibana的相关配置 -- <用不到>
setup.kibana:

#-------------------------- Elasticsearch output ------------------------------
#输出到es
output.elasticsearch:
  # Array of hosts to connect to.
  #es地址 可以是多个
  hosts: ["localhost:9200"]

在本篇中,我们以输出到Logstash为例以上配置改为如下

filebeat.prospectors:
- type: log
  #打开手动配置
  enabled: true
  #日志文件这里写自己要监听的文件的即可
  paths:
    - /var/log/*.log

#此处模块化配置不改或者全部注释都可以
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  #这里注释或者默认false
  reload.enabled: false

#全部注释 或者不管
setup.template.settings:
  index.number_of_shards: 3

#注释或者不管
setup.kibana:

#注释掉es配置
#output.elasticsearch:
  #hosts: ["localhost:9200"]
  
#----------------------------- Logstash output --------------------------------
#打开logstash配置
output.logstash:
  #默认使用内网去访问即可
  hosts: ["172.19.xx.45:5044"]

启动

[root@VM-0-2-centos filebeat]# nohup ./filebeat -e -c filebeat.yml &

在nohup.out文件中查看日志是否启动成功

验证
进入/var/log文件夹下 新建一个aa.log
vim编辑该文件随便输入sdkjfsikjdhf
保存后
logstash标准输出模式下有如下展示信息即为成功

{
    "@timestamp" => 2021-01-08T03:43:16.373Z,
    "prospector" => {
        "type" => "log"
    },
          "host" => "VM-0-2-centos",
        "offset" => 14,
          "tags" => [
        [0] "beats_input_codec_plain_applied"
    ],
      "@version" => "1",
          "beat" => {
            "name" => "VM-0-2-centos",
        "hostname" => "VM-0-2-centos",
         "version" => "6.2.4"
    },
       "message" => "sdkjfsikjdhf:",
        "source" => "/var/log/aa.log"
}

重启
重启命令与启动命令一样

[root@VM-0-2-centos filebeat]# nohup ./filebeat -e -c filebeat.yml &

二、扩展

市面上有不少公司使用的Filebeat输出到kafka,然后被Logstash消费这种模式 可以有效地消峰。<这里给出一个正常的配置>

#这里是输入配置基本不变
filebeat.inputs:
- type: log
  enabled: true
  paths:
   - /var/*.log
  #这里是定义了topic名称 供下面引用 不定义也可以
  fields:
    log_topic: xxx
#设置filebeat收集的日志中对应主机的名字,如果配置为空,则使用该服务器的主机名。
#这里设置为IP,便于区分多台主机的日志信息。
name: "172.16.xx.xxx"

#输出到kafka
output.kafka:
  enabled: true
  #指定输出数据到kafka集群上,地址为kafka集群IP加端口号。
  hosts: ["172.16.xx.xx:9092", "172.16.xx.xx:9092", "172.16.xx.xx:9092"]
  #kafka版本
  version: "0.10"
  #指定发送到集群上哪个topic 如果没有重新创建
  topic: '%{[fields][log_topic]}'
  #partition哈希取模轮询发送开启
  partition.round_robin:
    reachable_only: true
  #并发负载均衡Kafka输出工作线程的数量
  worker: 2
  #ACK的可靠等级.0=无响应,1=等待本地消息,-1=等待所有副本提交.默认1.
  #PS: 如果设为0,kafka无应答返回时,消息将丢失
  required_acks: 1
  #设置输出压缩编解码器
  # 必须是 none, snappy 和 gzip 中的一个
  # 默认是 gzip
  compression: gzip
  # json编码消息的最大允许大小, 更大的消息将被删除。默认值是 1000000 ( 字节 ) 。这个值应该等于 r,小于 broker 的 message.max.bytes
  max_message_bytes: 10000000
#定义filebeat的日志输出级别 调试用debug
logging.level: debug

总结

filebeat 是一个轻量级框架,相比Logstash 更适合做日志的采集,使用Logstash做数据过滤即可
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值