温馨提示×

centos如何实时监控golang日志

小樊
41
2026-09-09 03:57:42
栏目: 编程语言

在 CentOS 上“实时监控 Golang 日志”通常分两步:
1)确保 Golang 程序日志可观测(输出方式)
2)使用监控工具实时查看 / 采集 / 告警

下面按常见场景给你一套实用方案。


一、Golang 日志怎么输出(前提)

1. 标准输出(推荐)

log.Println("hello")
fmt.Println("info")

nohupsystemd 启动后,日志进入文件或 journal。

2. 写入日志文件

log.SetOutput(os.OpenFile("/var/log/app.log", os.O_RDWR|os_CREATE|os_APPEND, 0666))

二、实时查看日志(最常用)

1. tail -f(最简单)

tail -f /var/log/app.log

只看新增内容:

tail -F /var/log/app.log

2. less +F

less +F /var/log/app.log

Ctrl+C 暂停,查看后 F 继续。


三、systemd 管理的 Golang 服务(推荐)

启动服务

systemctl start myapp

实时看日志

journalctl -u myapp -f

只看错误

journalctl -u myapp -p err -f

四、高级实时监控(生产推荐)

1. lnav(日志分析神器)

yum install lnav
lnav /var/log/app.log

支持:

  • 实时刷新
  • 多文件
  • 错误高亮

2. multitail(多日志同屏)

yum install multitail
multitail /var/log/app.log /var/log/nginx/access.log

3. Filebeat + ELK(企业级)

架构:

Golang → 日志文件 → Filebeat → Elasticsearch → Kibana

Filebeat 配置示例:

filebeat.inputs:
- type: log
  paths:
    - /var/log/app.log

output.elasticsearch:
  hosts: ["localhost:9200"]

五、Golang 程序内监控(可选)

Prometheus + Grafana

import "github.com/prometheus/client_golang/prometheus"

暴露 /metrics,用 Prometheus 抓取。


六、常见组合建议

场景 推荐方案
开发调试 tail -f
生产服务 systemd + journalctl
多服务 lnav / multitail
微服务 Filebeat + ELK
指标监控 Prometheus

如果你愿意,可以告诉我:

  • Golang 是怎么运行的(systemd / docker / k8s)
  • 日志是文件还是 stdout
  • 是否需要告警

我可以直接给你一套可复制的配置

0