filebeat ->redis -> logstash -> es实践

filebeat ->redis -> logstash -> es实践

基于如下日志架构实践从环境搭建到日志采集输出到ES的全过程:在这里插入图片描述
其中关于ES集群,redis,kibana的环境搭建,在这篇文章中不做任何体现,我在其他文章中有详细的笔记,可以搜索找到。

那么现在需要的是下载filebeat和logstash两个环境包,这里推荐下载.tar.gz后缀的压缩文件包。

另外需要注意的是 filebeat logstash es kibana 版本要求一直,避免出现不兼容的情况。

本篇文章中主要作为一个技术验证,不会有太复杂的动作。

下载filebeat 和 logstash的地址如下:

https://www.elastic.co/cn/beats/filebeat

https://www.elastic.co/cn/logstash/

1.filebeat需要部署在需要采集日志的目标服务器中,比如上传到/opt目录下,在目录/opt/filebeat-7.13.2-linux-x86_64/下创建filebeat_redis.yml文件,用于将采集的目标日志写入到redis消息队列中:

#比如我现在采集的NPM的后端服务运行的日志
filebeat.inputs:
- type: log
  enabled: true
  backoff: "1s"
  tail_files: false
  paths:
    - /app/api/logs/*.log    #日志文件
  fields:
    filetype: log_npmjson    #这里是自定义名称
  fields_under_root: true
output.redis:
  enabled: true
  hosts: ["103.104.202.36:6379"]  #redis
  key: npm                        #redis 键名称
  db: 1                           #写入的db
  datatype: list                  #输出类型 list

启动filebeat:

./filebeat -e -c filebeat_redis.yml

后台启动:
nohup /opt/filebeat-7.13.2-linux-x86_64/filebeat -e -c /opt/filebeat-7.13.2-linux-x86_64/filebeat_redis.yml >/dev/null 2>&1 &

查看运行状态机器相关操作:

systemctl status filebeat
systemctl start filebeat
systemctl stop filebeat
systemctl restart filebeat

2.logstash部署到一台单独的服务器,将.tar.gz文件上传到/opt目录下并解压,在config目录下创建文件logstash_npm_redis.yml,写入内容:

input {
   redis {
        host => "103.104.202.36"   #redis
        port => 6379               #redis 端口
        key => "npm"               #redis 键名称
        data_type => "list"        #数据类型
        db =>1                     #从db1中读
    }
}
filter {
    json {
       source => "message"         #只读取message内容
       remove_field => [""]        #需要从message中过滤的字段,这里是字符串数组,比如:["field1","field2","....."]
    }
    date {
      match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]  #时间戳格式化
      target => "@timestamp"                            #从@timestamp中取时间戳,通过 match 进行格式化
    }
}
output {                                                #将消息队列中的数据输出到ES
       elasticsearch {
          hosts => ["192.168.30.22:9200"]
          index => "redis-npm-%{+YYYY.MM.dd}"           #索引的命名规则
      }
}

启动logstach:

cd /opt/logstash-7.13.2/

bin/logstash -f config/logstash_npm_redis.conf

稍微等30s,启动过程稍慢

查看进程:

ps -ef |grep logstash

结束进程:

kill -9 进程号

3.查看kibana:
日志已经在正常写入:在这里插入图片描述
在这里插入图片描述
查看ES:在这里插入图片描述
后续可以进行java开发 对接ES的日志数据 ,输出到指定的管理平台。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

clarence.wei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值