如何在CentOS上实现Golang日志远程传输
作者:BrightSoul
时间:2026-07-01
浏览:0
在CentOS上配置Golang日志远程传输,需先让Go应用将日志输出至标准输出或文件,接着启用rsyslog服务收集日志并转发至远程服务器,远程端配置接收规则并启动监听,最后采用TLS/SSL加密通道,确保日志传输安全可靠,实现集中管理。
在CentOS上把Golang的日志远程发出去,说简单也不简单,说难其实也就几个环节。大体上,你需要搞定这么几件事:
本文内容来源于互联网,如有侵权请联系删除。

步骤1:配置Golang应用日志输出
Golang 标准库的 `log` 包就能搞定。你可以直接往标准输出打,或者定向到文件。看个片段:package main
import (
"log"
"os"
)
func main() {
// 日志输出到标准输出
log.SetOutput(os.Stdout)
log.Println("This is an info message")
// 或者写到文件
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err == nil {
log.SetOutput(file)
defer file.Close()
}
log.Println("This is another info message")
}
对,就这么简单,日志源就准备好了。
步骤2:配置rsyslog收集日志
CentOS 上首先得装 `rsyslog`:sudo yum install rsyslog
装好后,编辑配置文件(通常是 `/etc/rsyslog.conf` 或 `/etc/rsyslog.d/50-default.conf`),打开远程接收能力。下面这段关键是加载 UDP 或 TCP 模块,并指定一个规则把日志转发走:
# 加载imudp模块
module(load="imudp")
input(type="imudp" port="514")
# 或者加载imtcp模块
module(load="imtcp")
input(type="imtcp" port="514")
# 规则集定义
ruleset(name="remote") {
action(type="omfwd" Target="your.remote.log.server" Port="514" Protocol="udp")
}
# 应用规则集
if $fromhost-ip == 'your.local.ip' then {
call remote
}
& stop
记得把 `your.remote.log.server` 换成你远程日志服务器的真实 IP。
步骤3:重启rsyslog服务
配置改完后,重启服务让它生效:sudo systemctl restart rsyslog
步骤4:配置远程日志服务器
远程那头同样要装 `rsyslog`,并且配置好接收规则。一般就是监听 514 端口,然后把收到的日志写到某个文件或者送进其他系统。具体配置跟步骤2类似,只是方向反过来——接收端不需要 `omfwd`,而是用 `omfile` 写到本地磁盘。步骤5:安全传输
如果日志里有机密信息,就别裸奔了。`rsyslog` 支持 TLS/SSL 加密,你需要生成证书和密钥,然后在两端配置中指定这些文件。配置起来稍微繁琐一点,但为了安全值得。 当然,这只是一个入门级的示范。实际生产环境还得考虑日志格式、轮转策略、日志级别过滤等等。规模再大一点,建议直接上 ELK Stack(Elasticsearch, Logstash, Kibana),那种专业工具能把日志玩出花来。不过从零开始,先把上面五步跑通,你已经赢了一半。
作者最新文章
索尼 Xperia 1 VIII / VII / VI 等手机获 Android 17 更新,新增桌面模式等功能
2026-09-08 16:44
加拿大留学监护声明书(IMM 5646)双页签署与公证核对指南
2026-09-03 15:02
在线PDF转图片教程:一键生成高清图片包
2026-09-03 12:04
Creo零基础入门:新建零件与第一次拉伸建模完整指南
2026-09-03 06:02
扫描件PDF转Word的在线操作步骤与编辑可行性判断
2026-09-02 18:39
上一篇:
CentOS中Golang日志格式化技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































