CentOS 上 Golang 日志存储策略
一 策略总览与目录规范
二 方案选型对比
| 方案 | 适用场景 | 优点 | 注意点 |
|---|---|---|---|
| 应用内轮转(如 lumberjack) | 容器化、短生命周期进程、希望“开箱即用” | 无需外部依赖,配置即代码,部署简单 | 需引入第三方库;轮转由进程执行,注意文件句柄与信号处理 |
| 系统级轮转(logrotate) | 传统主机、多进程/多实例统一治理 | 系统统一管理、策略集中、与运维流程兼容 | 需确保应用配合(如支持信号或重新打开日志);定期校验配置有效性 |
| 写入 syslog(rsyslog) | 需要与系统日志统一归集、对接企业日志平台 | 利用现有 syslog 生态,便于集中与转发 | 需配置 rsyslog 模板与落盘路径;结构化日志建议使用 JSON 发送 |
| 远程日志(TCP/UDP 514 或 HTTP) | 跨机房/多地域集中、与 ELK/Graylog 对接 | 集中存储与分析,减轻本机磁盘压力 | 网络与认证可靠性、回溯与缓冲策略、带宽与成本评估 |
| 上述方案可单独使用,也可组合(如应用内按大小切割 + 系统级按天归档 + 远程汇聚)。 |
三 落地配置示例
四 运维与监控要点