日志分析平台的成本控制要算清每笔糊涂账
上周跟南京河西某SaaS公司的运维负责人吃鸭血粉丝,他吐槽说上个月刚收到云厂商的账单,光日志服务的费用就超了3倍,本来季度预算12万,最后干到38万,被CFO堵在会议室问了半小时,脸都绿了。
没人对账。
这钱花得冤不冤?
日志分析平台成本构成饼状图
说实话,很多团队的账单拉出来,写入成本占比能到60%,存储只占25%,剩下15%全是查询产生的费用。大部分人连这个比例都没算过,一看到超支就喊着要砍存储周期,纯纯是拆东墙补西墙。

日志分层留存策略架构图
还有高并发接口的日志采样,比如每秒上万请求的商品详情接口,根本不需要把每一条请求日志都存下来,按1%的比例采样,足够定位99%的问题,写入成本直接降一个数量级。
先搞清楚钱到底花在了哪
很多人对日志成本的认知还停留在“存储费用”上,真拆开账单看就会发现完全不是那么回事。超过70%的非必要日志成本,根本不是存储占的,是无意义的高频写入和全量查询。 就说那个被CFO堵的哥们的团队,之前把所有Nginx的健康检查请求日志,包括每一次负载探活的200返回,全量往ES集群里灌,还有业务侧的debug日志,本来上线前要统一关闭的,结果有个开发发版的时候忘了改配置,debug模式连续跑了半个月,每天的日志写入量直接翻了5倍。等运维发现的时候,光这半个月的额外写入费用就已经花了6万多。别一上来就砍日志留存周期
我见过太多运维遇到成本超支的第一反应:把原来30天的日志留存改成7天。 结果呢?三个月后线上出了个资金对账的问题,要查当时的交易日志,啥都找不到,最后只能背锅。 其实根本不用这么极端。把日志分层留存就行。核心交易链路的日志,留180天没问题,毕竟涉及资金的问题追溯周期本来就长;普通的业务操作日志,留30天足够排查大部分线上问题;那些健康检查、心跳上报的日志,根本不需要进实时分析平台,直接扔对象存储的冷归档层,成本差了快10倍。 那个被CFO堵的哥们后来做的第一件事,就是把所有健康检查的日志从日志平台里剔除,光这一项每个月就省了8万。比砍留存周期的效果好太多,还完全不影响日常排查问题。