Docker部署运行ElasticStack之Filebeat并读取Redis日志文件输出到Elasticsearch和kibana

1. 准备

  • 在Linux环境中搭建好Elasticsearch
  • 下载filebeat:

https://www.elastic.co/downloads/beats

2. 部署运行,读取日志文件并输出到Elasticsearch

# 创建一个目录
mkdir /beats
# 解压文件
tar -xvf filebeat-6.5.4-linux-x86_64.tar.gz
cd filebeat-6.5.4-linux-x86_64

创建如下配置文件 test.yml

filebeat.inputs:
- type: log   # 输入类型:log日志
  enabled: true
  paths:
    - /beats/logs/*.log  # 日志文件路径
  tags: ["my-test"]  # 标签字段
  fields: # 自定义字段
    from: my-test
  fields_under_root: false  # 字段是否添加到根目录
setup.template.settings:
  index.number_of_shards: 3 #指定索引的分区数
output.elasticsearch: #指定ES的配置,我的ES集群只有两个节点
  hosts:["192.168.241.130:9200","192.168.241.130:9201"]

启动filebeat

./filebeat -e -c test.yml -d "publish"

参数说明
-e: 输出到标准输出,默认输出到syslog和logs下
-c: 指定配置文件
-d: 输出debug信息

3. 读取Redis日志文件并输出到Elasticsearch

前面要想实现日志数据的读取以及处理都是自己手动配置的,其实,在Filebeat中,有大量的Module,可以简化我们的配置,直接就可以使用,如下:

./filebeat modules list

在这里插入图片描述
可以看到,内置了很多的module,但是都没有启用,如果需要启用需要进行enable操作:

./filebeat modules enable redis #启动
./filebeat modules disable redis #禁用

redis module结构

module目录:

.
├── log #日志
│   ├── config
│   │   └── log.yml
│   ├── ingest
│   │   └── pipeline.json
│   └── manifest.yml
├── module.yml
└── slowlog #慢查询日志
    ├── config
    │   └── slowlog.yml
    ├── ingest
    │   └── pipeline.json
    └── manifest.yml

配置 redis module

# 启动redis module 
./filebeat modules enable redis 

cd modules.d/
vim redis.yml

# 主要配置redis的日志文件路径
- module: redis
  # Main logs
  log:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/data/redis-data/node01/*.log"]
  # Slow logs, retrieved via the Redis API (SLOWLOG)
  slowlog:
    enabled: false
    # The Redis hosts to connect to.
    #var.hosts: ["localhost:6379"]
    # Optional, the password to use when connecting to Redis.
    #var.password:

注:Redis默认是不开启日志文件的,如若创建Redis的时候没有指定日志文件,就需要重新创建Redis容器。

删除旧的Redis容器并重新创建:

docker create --name redis-node01 -v /data/redis-data/node01:/data -p 6379:6379 redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --loglevel debug --logfile nodes-node-01.log
docker create --name redis-node02 -v /data/redis-data/node02:/data -p 6380:6379 redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --loglevel debug --logfile nodes-node-02.log

loglevel 日志等级分为:debug、verbose、notice、warning
其中,debug 会有大量信息,对开发、测试有用;
verbose 等于log4j 中的info,有很多信息,但是不会像debug那样乱;
notice 一般信息;
warning 只有非常重要/关键的消息被记录。

配置 filebeat

#vim test-redis.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /beats/log/*.log  # 这个不用的话无所谓
setup.template.settings:
  index.number_of_shards: 3
output.console:
  pretty: true
  enable: true
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml  # 重点
  reload.enabled: false

测试

./filebeat -e -c test-redis.yml --modules redis

测试发现,数据已经写入到了Elasticsearch中,我懒得没截图。

其他的Module的用法可以参考官方文档:

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html

4. 安装仪表盘到Kibana

# 在filebeat配置文件中添加
setup.kibana:   # 指定kibana的配置
  host: "192.168.241.130:5601"
  
# 启动,安装仪表盘到kibana
./filebeat -c haoke-redis.yml setup
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ronin_HSK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值