文章目录
- Kafka介绍及Go操作kafka详解
- 项目背景
- 解决方案
- 面临的问题
- 业界方案
- ELK
- ELK方案的问题
- 日志收集系统架构设计
- 架构设计
- 组件介绍
- 将学到的技能
- 消息队列的通信模型
- 点对点模式 queue
- 发布/订阅 topic
- Kafka
- 介绍
- Kafka的架构图
- 工作流程
- 选择partition的原则
- ACK应答机制
- Topic和数据日志
- Partition结构
- 消费数据
- 使用场景
- 消息队列(MQ)
- 追踪网站活动
- Metrics
- 日志聚合
- Kafka安装和启动
- 下载
- 安装
- 修改配置
- 启动
- Zookeeper启动
- LogAgent的工作流程
- log agent开发
- 下载安装
- LogAgent编码
- 存在的问题
- 引入依赖
- 最终版本
Kafka介绍及Go操作kafka详解
项目背景
每个业务系统都有日志,当系统出现问题时,需要通过日志信息来定位和解决问题。当系统机器比较少时,登陆到服务器上查看即可满足当系统机器规模巨大,登陆到机器上查看几乎不现实(分布式的系统,一个系统部署在十几台机器上)
解决方案
把机器上的日志实时收集,统一存储到中心系统。再对这些日志建立索引,通过搜索即可快速找到对应的日志记录。通过提供一个界面友好的web页面实现日志展示与检索。
面临的问题
实时日志量非常大,每天处理几十亿条。日志准实时收集,延迟控制在分钟级别。系统的架构设计能够支持水平扩展。
业界方案
ELK
- AppServer:跑业务的服务器
- Logstash Agent:
- Elastic Search Cluster
- Kibana Server:数据可视化
- Browser:浏览器
ELK方案的问题
- 运维成本高,每增加一个日志收集项,都需要手动修改配置
- 使用etcd来管理被收集的日志项