如何为 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

  1. 通过 SSH 连接到您的 Debian 机器,并运行以下命令来安装和启用rsyslog

sudo apt update

sudo apt install rsyslog

sudo systemctl enable rsyslog

sudo systemctl start rsyslog

  1. 编辑主界面rsyslog配置文件

nano /etc/rsyslog.conf

  1. 根据您要支持的协议(例如 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")

  1. 重新启动rsyslog变更生效所需服务:

sudo systemctl restart rsyslog

最后更新时间
本文件最后更新日期为2026年5月21日。
https://www.3cx.cn/docs/custom-syslog-server/