如何在CentOS上实现Golang日志远程传输
作者:BrightSoul
时间:2026-07-01
浏览:0
在CentOS上配置Golang日志远程传输,需先让Go应用将日志输出至标准输出或文件,接着启用rsyslog服务收集日志并转发至远程服务器,远程端配置接收规则并启动监听,最后采用TLS/SSL加密通道,确保日志传输安全可靠,实现集中管理。
本文目录

步骤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),那种专业工具能把日志玩出花来。不过从零开始,先把上面五步跑通,你已经赢了一半。
作者最新文章
漫蛙漫画免费下拉式在线看地址
2026-10-27 17:25
如何在WPSOffice2019一键开启和关闭筛选
2026-10-26 23:11
xmind怎么调整两个框之间的距离 布局技巧
2026-10-24 13:34
ps怎么抠图
2026-10-20 17:22
PDF表格怎么转换成Excel?如何免费将PDF表格转成Excel?
2026-10-15 11:26
上一篇:
CentOS中Golang日志格式化技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































