如何在CentOS上实现Golang日志远程传输
作者:BrightSoul
时间:2026-07-01
浏览:0
在CentOS上配置Golang日志远程传输,需先让Go应用将日志输出至标准输出或文件,接着启用rsyslog服务收集日志并转发至远程服务器,远程端配置接收规则并启动监听,最后采用TLS/SSL加密通道,确保日志传输安全可靠,实现集中管理。
本文目录
在CentOS上把Golang的日志远程发出去,说简单也不简单,说难其实也就几个环节。大体上,你需要搞定这么几件事:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com

步骤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),那种专业工具能把日志玩出花来。不过从零开始,先把上面五步跑通,你已经赢了一半。
作者最新文章
漫蛙manwa2在线阅读入口
2026-10-13 13:49
漫蛙漫画app下载安装包
2026-10-13 13:19
漫蛙MANWA2官方入口
2026-10-13 13:18
manwa漫蛙APP下载最新版本
2026-10-13 13:17
漫蛙漫画官方网页版app下载
2026-10-13 13:16
上一篇:
CentOS中Golang日志格式化技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































