在 CentOS 上“实时监控 Golang 日志”通常分两步:
1)确保 Golang 程序日志可观测(输出方式)
2)使用监控工具实时查看 / 采集 / 告警
下面按常见场景给你一套实用方案。
log.Println("hello")
fmt.Println("info")
用 nohup 或 systemd 启动后,日志进入文件或 journal。
log.SetOutput(os.OpenFile("/var/log/app.log", os.O_RDWR|os_CREATE|os_APPEND, 0666))
tail -f /var/log/app.log
只看新增内容:
tail -F /var/log/app.log
less +F /var/log/app.log
Ctrl+C 暂停,查看后 F 继续。
systemctl start myapp
journalctl -u myapp -f
journalctl -u myapp -p err -f
yum install lnav
lnav /var/log/app.log
支持:
yum install multitail
multitail /var/log/app.log /var/log/nginx/access.log
架构:
Golang → 日志文件 → Filebeat → Elasticsearch → Kibana
Filebeat 配置示例:
filebeat.inputs:
- type: log
paths:
- /var/log/app.log
output.elasticsearch:
hosts: ["localhost:9200"]
import "github.com/prometheus/client_golang/prometheus"
暴露 /metrics,用 Prometheus 抓取。
| 场景 | 推荐方案 |
|---|---|
| 开发调试 | tail -f |
| 生产服务 | systemd + journalctl |
| 多服务 | lnav / multitail |
| 微服务 | Filebeat + ELK |
| 指标监控 | Prometheus |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。