Skip to content

Commit 7040165

Browse files
committed
ops/service: rsyslog forwarding done
1 parent 42b14e0 commit 7040165

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

docs/ops/service.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,65 @@ ForwardToSyslog=yes
612612

613613
详情可参考 [Debian bug #1100729](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1100729)。
614614

615+
以下介绍使用 rsyslog TLS 加密传输日志的相关设置,下面给出的例子中服务端有证书,客户端没有(客户端会校验服务端,但是服务端不会校验客户端),在需要高安全性的场合下,建议为客户端也生成证书。生成 CA 证书与服务端(接收端)证书的部分可参考 [nginx 一章中我们的相关介绍](./network-service/nginx.md#getting-certificates)
616+
617+
TLS 传输日志一般使用 TCP 6514 端口(传统非加密的 syslog 传输使用 TCP 或 UDP 的 514 端口)。两端都需要运行 rsyslog。这里使用 GnuTLS 模块(需要安装 `rsyslog-gnutls` 包)。
618+
619+
服务端:
620+
621+
```conf title="/etc/rsyslog.d/server.conf"
622+
global(
623+
DefaultNetstreamDriver="gtls"
624+
DefaultNetstreamDriverCAFile="/path/to/ca.crt"
625+
DefaultNetstreamDriverCertFile="/path/to/server.crt"
626+
DefaultNetstreamDriverKeyFile="/path/to/server.key"
627+
)
628+
629+
module(
630+
load="imtcp"
631+
StreamDriver.Name="gtls"
632+
StreamDriver.Mode="1"
633+
# anon -- 不校验客户端
634+
StreamDriver.Authmode="anon"
635+
)
636+
637+
input(
638+
type="imtcp"
639+
port="6514"
640+
)
641+
642+
# 设置按照主机名分开的模板
643+
template(name="PerHost" type="string"
644+
string="/var/log/remote/%hostname%.log"
645+
)
646+
647+
if ($inputname == "imtcp") then {
648+
action(
649+
type="omfile"
650+
dynaFile="PerHost"
651+
)
652+
# 防止远程日志再被写入本地默认的日志文件
653+
stop
654+
}
655+
```
615656

657+
客户端:
658+
659+
```conf
660+
global(DefaultNetstreamDriverCAFile="/path/to/ca.crt")
661+
662+
action(
663+
type="omfwd"
664+
protocol="tcp"
665+
target="logserver.example.com" # 或者 IP 地址
666+
port="6514"
667+
StreamDriver="gtls"
668+
StreamDriverMode="1"
669+
# 验证远程证书的名称
670+
StreamDriverAuthMode="x509/name"
671+
StreamDriverPermittedPeers="logserver.example.com"
672+
)
673+
```
616674

617675
## 登录管理器 {#logind}
618676

0 commit comments

Comments
 (0)