以下是在CentOS中监控Golang日志的实用技巧:
-
实时查看日志
- 使用
tail -f /path/to/app.log实时跟踪日志文件变化。 - 若为systemd服务,可用
journalctl -u service-name -f实时查看系统日志。
- 使用
-
日志轮转与归档
- 通过
logrotate工具配置日志轮转(如按天切割、保留7天、压缩旧日志),避免文件过大。 - 示例配置:
/etc/logrotate.d/myapp { daily rotate 7 compress missingok notifempty }。
- 通过
-
集中式日志管理
- 使用 ELK Stack(Elasticsearch+Logstash+Kibana)或 Graylog 收集、分析和可视化日志。
- 通过
rsyslog或syslog-ng将日志发送至远程服务器,实现跨服务器日志聚合。
-
性能与异常监控
- 在Golang代码中使用高性能日志库(如
zap或logrus),支持日志级别控制、结构化输出和性能指标记录。 - 结合 Prometheus + Grafana 监控日志中的关键指标(如错误率、请求延迟),并设置告警规则。
- 在Golang代码中使用高性能日志库(如
-
自动化与脚本监控
- 编写自定义脚本,结合
grep筛选关键字(如grep 'error' app.log),或通过awk统计日志条目。 - 使用
Supervisor管理Golang服务,自动重启异常进程并记录日志。
- 编写自定义脚本,结合
工具选择参考:
- 简单场景:
tail/journalctl+logrotate(轻量级,适合单机)。 - 复杂场景:ELK/Graylog + Prometheus(适合分布式、大规模日志分析)。