云原生Kubernetes日志落地方案
在Logging这块做了几年,最近1年来越来越多的同学来咨询如何为Kubernetes构建一个日志系统或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。
在Logging这块做了几年,最近1年来越来越多的同学来咨询如何为Kubernetes构建一个日志系统或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。
如何用普通设备实现海量数据的毫秒级查询?文章分享了在 ThinkPad 上构建 Redis 系统的完整方案,详细解析了数据分片、查询优化和资源调配等关键技术,还提供了针对高效查询的实际案例。轻量化实现,高性能表现,为开发者提供了实用的参考思路,值得深入学习!
本文探讨了后端通用查询方案的设计,通过 `Gridify` 库启发,提出基于泛型和接口的查询模型,优化分页和过滤功能。实现细节包括 `QueryParameter` 类和 `IQueryableFilter` 接口的使用,自定义模型绑定方式,使查询参数更灵活,支持多种前后端兼容格式。文章强调开发中平衡灵活性与规范性,并认为在 AI 辅助编程背景下,程序员应专注于复杂问题解决和生产关系的改善。
本文介绍了如何使用 Docker 和 EFK(Elasticsearch、Fluentd、Kibana)套件构建日志管理系统,通过 Fluentd 将 NACOS 和业务日志集中发送至 Elasticsearch,方便数据分析和故障排查。文章提供了 `docker-compose.yml` 配置文件示例,解决了插件安装、权限设置和健康检查等常见问题,为构建灵活高效的日志管理系统提供了实用方法。
本文介绍了如何在 OpenTelemetry 中使用 MDC(映射诊断上下文)实现日志与链路追踪的集成,帮助开发者快速定位问题。通过将 `trace_id` 等信息写入日志 MDC,实现日志和分布式追踪系统的无缝对接。在 Java 中结合 Logback 或 Log4j 并借助 OpenTelemetry agent,可以自动生成包含 MDC 的日志,便于多线程环境中的问题排查。
随着微服务以及云原生的发展,越来越多的企业都将业务部署运行到Kubernetes中,主要是想依托Kubernetes的可扩展、可伸缩、自动化以及高稳定性来保障业务的稳定性。
然而,Kubernetes本身是一个复杂的管理系统,它既然是作为企业业务的基础设施,其本身以及运行在集群内部的业务系统对于企业来说都变得非常重要。
在整个大环境的降本增效的熏陶下,我们也不得不做好应对方案。
根据对线上流量、存储以及系统资源的占用,发现我们的 Pulsar 集群有许多的冗余,所以考虑进行缩容从而减少资源浪费,最终也能省一些费用。
不过在缩容之前很有必要先聊聊扩容,Pulsar 一开始就是存算分离的架构(更多关于 Pulsar 架构的内容本文不做过多介绍,感兴趣的可以自行搜索),天然就非常适合 kubernetes 环境,也可以利用 kubernetes 的能力进行快速扩容。
本文对比游戏服务器中C++搭配脚本语言(Lua、Python)以及纯编译型语言(C++、Golang)来进行开发时,进行线上服务器热更新的方案。
炫酷一下,为了能让备用机一直有电,计划将备用机插在智能插座上,然后通过iOS的Shortcuts来监控手机电量——当手机电量小于30%的时候自动开启插座;当手机电量充到80%的时候自动关闭插座。
MinIO是一个开源的分布式对象存储组件,它兼容Amazon S3API,适合于存储大容量的非结构化数据,支持单个对象最大5TB。MinIO特点:部署简单,仅需要单独一个二进制文件;支持纠删码机制,能恢复部分数据块丢失的情况;读写性能高。
Nginx日志的分析,尤其是加白,在不是特别清楚功能和作用的情况下,还是应该细粒度的操作,比如先按照Content-Type加白,就比按照domain维度的加白粒度会更细一点,比按照uri来加白要更方便和准确一点。简单记录一下,方便后面有需要的时候参考。