普通容器的日志,采用nas更好还是日志分析平台直接收集更好
从日志的持久性保存、性能、分析便捷性进行综合分析的话,哪种方案更优,或者是否有结合的方案。
先从单个容器的角度看日志的持久化存储:
以Containerd容器运行时为例,容器日志会保存至/var/log/pods/$CONTAINER_NAME目录下,该目录默认保存在每个节点的本地盘上。
但是本地存储有很多问题:日志量大会占用大量本地盘空间、日志分散管理难度大、POD漂移后日志找回难等;因此常见的是指定一个外置NFS共享存储路径来挂载该目录。如果对性能有诉求,可以用全闪存的NFS存储或者SSD占比较多的混合闪存。
但解决容器日志的本地存储是第一步,要发挥日志的作用,还要建立日志分析平台。
所以接下来从K8S集群角度看日志存储和分析:
常见的是部署一套日志收集-存储-分析平台,如ELK/EFK平台
其中的L(Logstash)或F(Fluentd)作为logging agent会作为DaemonSet运行在每个节点上用于抽取日志并写入Elastic Search节点;日志会在ES节点上再次持久化,再使用Kibana做分析
ES节点下的存储建议基于混合闪存的NAS:
1. 为什么推荐外置存储:
在银行行业中,日志的重要性不言而喻。对于普通容器的日志,采用NAS存储还是日志分析平台直接收集,需要根据具体情况进行综合考虑。
从日志的持久性保存来看,NAS存储更为稳定可靠,可以保证数据的长期保存和可靠性。而日志分析平台直接收集则需要考虑数据的备份和恢复,以及数据的安全性等问题。
从性能方面来看,NAS存储可以提供更高的读写速度和更大的存储容量,但是在高并发的情况下可能会出现性能瓶颈。而日志分析平台直接收集则可以通过分布式架构来提高性能,但是需要考虑平台的稳定性和可扩展性。
从分析便捷性来看,日志分析平台直接收集可以提供更为灵活的分析和查询功能,可以根据需求进行定制化的分析和报表生成。而NAS存储则需要通过其他工具或平台来进行数据分析和查询。
因此,针对银行行业的特殊需求,可以考虑采用结合方案。可以将普通容器的日志先存储到NAS中,然后通过日志分析平台进行数据的分析和查询,以达到更好的持久性保存、性能和分析便捷性。同时,也需要根据具体情况进行细致的规划和实施,以确保系统的稳定性和安全性。