前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat

ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat

作者头像
憧憬博客
发布2020-07-21 09:43:21
1K0
发布2020-07-21 09:43:21
举报
文章被收录于专栏:憧憬博客分享

ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat

当我们在对系统日志进行处理的时候,我们需要结合成本考虑方案,前期如果使用 Logstash 进行日志收集的话会耗费较多的机器性能,我们这里选择优化一下日志的采集。简单介绍一下即将出场的家伙: filebeat 首先 filebeatBeats 中的一员。 Beats 在是一个轻量级日志采集器,其实 Beats 家族有6个成员,早期的 ELK 架构中使用 Logstash 收集、解析日志,但是 Logstash内存cpuio 等资源消耗比较高。相比 LogstashBeats 所占系统的 CPU 和内存几乎可以忽略不计。

Beats 有目前七个工具:

  1. Functionbeat 能收集、传送并监测来云服务的相关数据
  2. Packetbeat 网络数据(收集网络流量数据)
  3. Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
  4. Filebeat:日志文件(收集文件数据)
  5. Winlogbeat:windows事件日志(收集Windows事件日志数据)
  6. Auditbeat:审计数据(收集审计日志)
  7. Heartbeat:运行时间监控(收集系统运行时的数据)

安装filebeat

代码语言:javascript
复制
wget https://mirrors.huaweicloud.com/filebeat/7.6.0/filebeat-7.6.0-linux-x86_64.tar.gz
tar -zxvf filebeat-7.6.0-linux-x86_64.tar.gz

Filebeat输出到文件

  • filebeat.yml
代码语言:javascript
复制
filebeat.inputs:
# 指定文件的输入类型log
- type: log 
  enabled: true
  # 指定要监控的日志,可以指定具体得文件或者目录
  paths:
    - /var/log/test-filebeat.log

# 输出方式 可以以文件输出
output.file:
  path: "/tmp"
  filename: "filebeat.txt"    
  • 测试
代码语言:javascript
复制
echo test >> /var/log/test-filebeat.log

查看到输出文件已经有变化了

elkf/filebeat-output-file.png
elkf/filebeat-output-file.png

输出到logstash

  • filebeat.yml
代码语言:javascript
复制
output.logstash:
  hosts: ["192.168.179.124:5044"]
  • logstash配置
代码语言:javascript
复制
input {
    beats {
        port => 5044
    }
}

output {
    elasticsearch {
        hosts => ["192.168.179.124:9200"]        #elasticsearch服务器地址
        user => "elastic"
        password => "${ES_PWD}"
        index => "logstash-filebeat-%{+YYYY.MM.dd}"    #索引名称
    }
}
  • 测试数据
代码语言:javascript
复制
echo hello >> /var/log/test-filebeat.log
  • 查看索引模式
elkf/logstash-filebeat.png
elkf/logstash-filebeat.png

输出到Redis

  • filebeat.yml
代码语言:javascript
复制
output.redis:
  hosts: ["192.168.179.124:6379"]
  key: "test-filebeat"
  db: 0
  timeout: 5
  • 查看连接 redis 日志
elkf/connect-redis.png
elkf/connect-redis.png
  • 查看效果
elkf/redis-log.png
elkf/redis-log.png

logstash从redis中读取数据

  • logstash-filebeat.conf 配置 logstash
代码语言:javascript
复制
input {
    redis {
        data_type => "list"
        host => "192.168.179.124"
        port => "6379" 
        db => 0 # 指定库
        key => "test-filebeat" # 配置redis 键
    }
}

output {
    elasticsearch {
        hosts => ["192.168.179.124:9200"]        #elasticsearch服务器地址
        user => "elastic"
        password => "${ES_PWD}"
        index => "logstash-test-%{+YYYY.MM.dd}"    #索引名称
    }
}
  • 启动 logstash
代码语言:javascript
复制
./bin/logstash -f ./conf.d/logstash-filebeat.conf
  • 测试数据
代码语言:javascript
复制
echo test >> /var/log/test-filebeat.log

logstash 会一直从 redis 中获取数据,获取完成会删除掉 redis 的键,我们创建 kibana 的索引模式来查看一下收取的数据

elkf/create-index-mode.png
elkf/create-index-mode.png

经过这篇文章的理解,我们应该更好的理解 Logstash, 他可以输出地方很多,可以直接输出到 队列ES文件等等,非常轻量和灵活

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat
    • 安装filebeat
      • Filebeat输出到文件
        • 输出到logstash
          • 输出到Redis
            • logstash从redis中读取数据
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档