如何为 3CX 配置自定义 Syslog 服务器
介绍
自定义 Syslog 服务器选项允许您将 3CX 系统事件和审计日志发送到任何标准 syslog 收集器(例如 rsyslog、syslog-ng 或 Kiwi Syslog)。这通常用于本地网络内的本地日志服务器或安全信息与事件管理(SIEM)系统。
步骤 1:准备您的 Syslog 服务器
在配置 3CX 之前,请确保您的目标 syslog 服务器已准备好接收外部流量。
- 确定 IP 地址/主机名:记下日志服务器的内部或外部 IP 地址。
- 打开防火墙端口:确保服务器的防火墙允许来自 PBX 的入站流量,使用您选择的端口(标准 syslog 通常为 514)。
- 启用远程接收:确认您的 syslog 服务(例如 rsyslog)已配置为“监听”远程消息,因为许多服务默认仅限本地接收。
- 请参阅下面的“在 Debian 上安装 Rsyslog“部分以开始使用。
步骤 2:配置 3CX 远程 Syslog
- 在 3CX 管理控制台中,导航至 “管理” > “集成” > “远程 Syslog”。
- 将 “远程日志记录提供程序” 下拉菜单设置为 “自定义 Syslog 服务器”。
- Syslog 服务器地址: 输入您服务器的 IP 地址或完全限定域名(FQDN)。
- 端口: 输入您的服务器正在监听的端口号(默认为 514,但请检查您的服务器配置)。
- 传输协议: 选择您的服务器所需的协议:
- UDP: 最常见的 syslog 协议;速度快,但不保证送达。
- TCP: 更可靠,因为它确认数据包接收。
- TLS: 在传输过程中对日志进行加密(要求接收端具有有效证书)。
- mTLS:如果选择 TLS 并且您的 syslog 服务器配置为也验证 PBX,则可以选择上传所需的客户端证书和密钥。
- 在 “要导出的数据” 部分,选择所需的日志:
- 系统警报:关键的系统资源利用率和健康问题(需要在“管理”>“系统”>“警报”中启用并配置警报阈值)。
- 3CX 警报:PBX 特定事件,例如中继状态、服务停止或 IP 黑名单。
- 审计日志:管理员更改设置的历史记录。
- 单击页面顶部的 “保存”。
- 顶部。
步骤 3:验证连接
- 单击 3CX 远程 Syslog 页面顶部的 测试 按钮。3CX 将向您的服务器发送一条标准化的测试消息。
- 在您的 syslog 服务器上,检查日志文件(例如 Linux 上的 /var/log/syslog)以确认测试消息的到达。该消息通常会带有 3CX Hello 标识符。
例如,如果您希望监控 syslog 服务器上来自“mypbx.3cx-example.com”的入站消息:
root@mysyslog.3cx-example.com:~# tail -f /var/log/syslog | grep mypbx.3cx-example.com
2026-05-21T10:55:52+03:00 mypbx.3cx-example.com SyslogIntegrationTest 3CX says 'hello' to Custom
2026-05-21T11:05:47+03:00 mypbx.3cx-example.com EventLog {"id":257,"timestamp":"2026-05-21T08:05:47.0770000Z","message":"3CX Transcription Engine connection lost – transcription of voicemails and calls suspended","template":"3CX Transcription Engine connection lost – transcription of voicemails and calls suspended","params":[""],"source":"Web Manager","type":2,"event_id":50042,"group_name":"System wide"}
2026-05-21T11:16:50+03:00 mypbx.3cx-example.com SyslogIntegrationTest 3CX says 'hello' to Custom
高级部署的自定义参数
对于默认设置不太适用的环境,3CX 提供了该参数 SYSLOG_MESSAGE_FORMAT。
3CX 支持两种主要的 Syslog 标准,您可以在它们之间切换。默认情况下,3CX 使用 RFC5424——更现代、结构化的格式,大多数当前 SIEM 系统都偏好此格式。
如果您的收集器较旧,或者您要标准化为传统格式,请将该参数设置为 RFC3164,3CX 将相应地格式化传出消息。作为参考,以下是每种格式的实际示例:
- RFC3164: <191>Dec 10 11:59:56 mypbx.3cx-example.com SyslogIntegrationTest: 3CX says 'hello' to SyslogServer
- RFC5424: <191>1 2026-01-15T14:06:50+02:00 mypbx.3cx-example.com SyslogIntegrationTest - - - 3CX says 'hello' to SyslogServer
在这两种情况下,<191>是消息优先级,时间戳为UTC时间。mypbx.3cx-example.com是 PBX 的 FQDN,应用程序标签指示事件的来源。可能的应用程序标签包括:SyslogIntegrationTest、EventLog、AuditLog 和 Telemetry。此后的内容均为消息负载。
在 Debian 上安装 Rsyslog
- 通过 SSH 连接到您的 Debian 机器,并运行以下命令来安装和启用rsyslog
sudo apt update
sudo apt install rsyslog
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
- 编辑主界面rsyslog配置文件
nano /etc/rsyslog.conf
- 根据您要支持的协议(例如 UDP/TCP),添加或取消注释以下行,然后保存文件。
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")
- 重新启动rsyslog变更生效所需服务:
sudo systemctl restart rsyslog
最后更新时间
本文件最后更新日期为2026年5月21日。
https://www.3cx.cn/docs/custom-syslog-server/


