ELK+FileBeat日志分析系统

filebeat:负责将日志数据传输到redis

Redis:暂时进行缓存

logstash:收集缓存中的日志数据

elasticsearch:负责存储日志数据

kibana:负责显示日志的数据

流程图

ELK+FileBeat日志分析系统

拉取filebeat镜像

docker pull elastic/filebeat

启动filebeat

docker run -d --name filebeat -v /docker/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /docker/www:/docker/www --privileged=true elastic/filebeat:7.5.1
vim filebeat.yml
配置文件
filebeat.inputs:
- type: log
  paths:
      - /docker/www/lmrs-2008/storage/logs/laravel.log
  multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}'
  multiline.negate: true
  multiline.match: after
  multiline.timeout: 5s
  scan_frequency: 5s
  fields:
          index: 'laravel-log'
output.redis:
        hosts: ["192.168.126.105:6379"]
        db: "0"
        timeout: 5
        password: "lmrs"
        key: "%{[fields.index]:otherIndex}"
vim kibana.yml
配置文件
server.name: "kibana"
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.126.105:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true

logging.dest: /var/log//kibana/kibana.log
i18n.locale: "zh-CN"

ELK+FileBeat日志分析系统

本作品采用《CC 协议》,转载必须注明作者和本文链接
有梦想的人睡不着,没有梦想的人睡不醒。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

楼主你好,问一下为什么 filebeat 和 es 中间为什么要插入 redis 和 logstash 呢? 明明filebeat 可以直接插入es, 看到过类似的部署方案,但一直没太明白。 希望楼主可以帮忙解惑~

2年前 评论
HelloWorld-Q (楼主) 2年前

@ligkwww 插入es是需要一个格式的,不大了解能不能直接转为特定的格式提交上es。增加redis和logstash这两块的话,可以把数据做一个暂存的,通过logstash读取并且转为特定的格式。

2年前 评论

@HelloWorld-Q @sunrise丶 好的,谢谢。 那我理解原因大概有两点:

  1. 使用redis是为了起到数据缓冲的作用;
  2. 使用logstash更方便做数据格式的转换。
2年前 评论

这个链路有长啊,感觉把简单的事情做的有点复杂了。 可以看看这个 github.com/lizhichao/log2ck 直接监听文件写入 clickhouse。实时写入 ,一个节点就可以到达每秒上千万的写入速度完全够用

2年前 评论
sanders

我觉得用 redis 做消息中转有些问题,如果是解决网络链路中断的问题,每增加一个网络访问环节都会增加这个网络的不可靠性,通过网络访问 redis 也适用这个逻辑。另外一个角度说,无论 filebeat 还是 logstash 都有相应的本地队列机制,且 filebeat 有重试队列, logstash 有死信队列,用来处理消息投递失败的问题。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
88
粉丝
21
喜欢
134
收藏
267
排名:227
访问:4.2 万
私信
所有博文
博客标签
redis
1
php
1
laravel
7
docker
3
orm
2
sync
1
pivot
1
detach
2
attach
2
算法
1
递归
1
多对多
1
lnmp环境搭建
1
GO变量
1
GO数据类型
1
IOC注入反转
1
IOC容器的绑定解析过程(绑定单例)
1
原生微信网页授权登录(natapp穿墙)
1
VMwareNAT网卡配置
1
MySQL基础架构
1
redis 主从搭建
1
Sentinel哨兵模式解决故障转移
1
elasticsearch安装
1
elasticsearch集群安装3台
1
安装kibana
1
必须了解的mysql三大日志-binlog、redo log和undo log
1
何处理数据恢复 数据丢失 面试tx的架构师的岗位问的
1
分库分表插入数据
1
创建分库分表(在主从复制的基本上)
1
分库分表总结
1
mysql总结
1
haproxy状态检测脚本(完成高可用)
1
mysql高可用衡搭建(Keepalived)
1
mysql负载均衡搭建(haproxy)
1
mysql主从恢复数据一致性(pt工具-t-table-checksum和pt-table-sync)
1
终于解决了《====》记一次mysql热备份xtrabackup(没有解决问题)
1
mysql事务
1
MYSQL8.0安装
1
Redis-cluster分布式集群搭建部署
1
比Redis-cluster还好的redis分布式集群(twemproxy)
1
Redis缓存穿透/缓存雪崩/缓存击穿(案例:产生的原因 解决方案利/弊)
1
数据结构之MySQL独爱B+树(二叉树、AVL树、红黑树、B树对比)
1
B-tree
1
B+tree
1
Mycat实现mysql的负载均衡读写分离
2
mysql双主双从 搭建配置
1
mycat 双主双从-负载均衡-高可用
1
Mycat垂直分库
1
记一次mysql高可用技术分享
1
【rabbitmq】安装ampq的扩展的踩坑总结
1
PHP操作MongoDB(增删改查)
1
golang总结
5
社区赞助商