将 3CX 连接到独立的 MySQL 数据库和 Grafana

介绍

本指南适用于运行 V20 Update 7 的系统,并提供了一个简洁的过程,将您的 3CX 电话系统连接到独立的 MySQL 数据库,以便与 Grafana 一起使用进行数据可视化和报告。

先决条件

  • 正在运行的 MySQL 服务器。
  • 对 MySQL 服务器的管理访问权限。
  • 访问 3CX 管理控制台。
  • 3CX 16SC+许可证(数据连接器功能所需)。
  • 对 MySQL 管理和 SQL 有基本的了解。

步骤 1:准备 MySQL

  1. 配置 MySQL 数据库

安装 MySQL 数据库后,对配置进行以下更改:

在 MySQL 配置中启用 local_infile。确保启用 local_infile 全局参数,这对于 3CX 高效地批量传输数据至关重要。为此,请编辑 MySQL 配置文件,并在 [mysqld] 部分下添加或修改 local_infile 参数:

[mysqld]

local_infile=1

  1. 允许远程连接到数据库

默认情况下,MySQL 允许来自本地主机的连接。您需要允许远程连接,以便 PBX 能够连接到数据库。为此,请编辑 MySQL 配置文件并添加或修改 bind-address 参数:

bind-address = 0.0.0.0

MySQL 配置文件的位置因操作系统而异:

  • Linux:常见位置包括 /etc/mysql/my.cnf、/etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf。
  • Windows:通常在 C:\ProgramData\MySQL\MySQL Server X.Y\my.ini 中。
  1. 重新启动 MySQL 数据库以应用上述更改

编辑后,重新启动 MySQL 服务以使更改生效:

  • Linux: sudo systemctl restart mysql
  • Windows: 从服务管理器重新启动 MySQL 服务。
  1. 创建专用的 MySQL 用户和数据库

以 root 或 administrative 用户身份登录 MySQL:        

mysql -u root -p

如果出现提示,请输入您的 root 密码。

创建数据库

为您的 CDR 数据库选择一个描述性名称(例如,3cx_cdr_db)。


CREATE DATABASE 3cx_cdr_db;

创建用户

为您的新用户选择一个强密码 CREATE USER 'cdrdb'@'%' IDENTIFIED BY '4zYThcp#KWB2aRmI2t5!P';

CREATE USER 'our_3cx_user'@'host' IDENTIFIED BY 'your_3cx_user_password';

your_3cx_user“your_3cx_user_password”替换为您想要的凭据。

如果您希望仅允许 PBX 连接到数据库,请将host替换为您的 3CX 服务器的 IP 地址;如果您希望允许从任何地方访问,请将host”替换为“%”

例子:

CREATE USER 'dbuser'@'192.168.10.1' IDENTIFIED BY 'myPass'; – to allow access only an IP

CREATE USER 'dbuser'@'192.168.10.1' IDENTIFIED BY 'myPass'; – to allow access from any IP

授予权限

最后,运行以下命令设置用户对数据库的适当权限

GRANT INSERT, SELECT, CREATE, ALTER, DROP, INDEX, LOCK TABLES ON 3cx_cdr_db.* TO 'your_3cx_user'@'host';

FLUSH PRIVILEGES;

再次,根据上面给出的值替换 3cx_cdr_db、‘your_3cx_user’ 和 ‘host’

  1. 配置防火墙(如果适用)

确保您的 MySQL 服务器的防火墙允许来自 3CX 电话系统 IP 地址的 MySQL 端口(默认值:3306)上的入站连接。

  • Linux (e.g., ufw):
    sudo ufw allow from <3CX_PBX_IP_Address> to any port 3306
    sudo ufw reload
  • Windows 防火墙:创建入站规则以允许来自 3CX PBX 的 IP 地址在端口 3306 上建立 TCP 连接。

步骤2:在3CX上配置数据连接器

  1. 在 3CX 上,导航至管理控制台 > 集成 > 数据连接器
  2. 选择 ”MySQL"并输入以下内容:
  • 主机:安装 MySQL 的主机的 IP 地址或 FQDN(如果可用)。
  • 端口:数据库端口(默认值:3306)。
  • 数据库名称:您在步骤 1 中创建的数据库的名称。
  • 用户名:您在步骤 1 中创建的新用户的用户名。
  • 密码:您为新用户配置的密码
  • 频率:设置从 PBX 到 MySQL 的数据传输频率。
  1. 保存配置,然后点击 PBX 上的测试按钮,验证 MySQL 数据库的连接是否成功,并确认收到成功消息。如果测试失败,请仔细检查主机、端口、数据库名称、用户名和密码。此外,请验证 MySQL 主机或网络上的任何防火墙是否允许来自 PBX IP 的连接。

步骤3:将Grafana连接到MySQL实例

  1. 登录您的 Grafana 实例(例如,grafana.com 或您自托管的 Grafana)。
  2. 转到 Grafana 配置菜单(齿轮图标)并单击“数据源(Data Sources)" 并点击 "添加数据源(Add data source)“。
  3. 搜索并选择“MySQL“。

  1. “连接(Connection)”下配置数据源,输入以下详细信息:
  • 主机(Host):输入 Mysql 数据库的 IP 或 FQDN 和端口,格式为:IP/FQDN:3306
  • 数据库(Datebase):您在步骤 1 中创建的数据库的名称。
  • 用户(Username):您在步骤 1 中创建的新用户的用户名
  • 密码(Password):您为新用户配置的密码

  1. 点击 ”保存并测试(Save & test)“并确认您收到了”数据库连接正常(Database Connection OK)“消息。如果遇到错误,请仔细检查连接详细信息和 SSL 配置。此外,请验证 Microsoft SQL 主机或网络上的任何防火墙是否允许来自 Grafana IP 的连接。

上次更新
本文件最后更新于 2025 年 7 月 24 日
https://www.3cx.cn/docs/mysql-configuration/