操作日志查询支持按时间、操作员、资源、动作等精确查询。
请求参数说明:
参数 | 说明 |
---|
page | 查询哪页数据 |
perPage | 每页查询条数 |
operator | 按操作员查询 |
resource | 按资源查询 |
action | 按动作查询 |
startDate | 按起始时间查询 |
返回参数说明:
参数 | 说明 |
---|
page | 当前页 |
pageCount | 总页数 |
rowCount | 返回总数 |
resource | 资源 |
user_id | 操作用户 ID |
source_ip | 来源 IP |
message | 操作信息 |
user_name | 操作用户名称 |
action | 操作动作 |
summary | 摘要 |
{
"page": 1,
"pageCount": 4,
"rowCount": 637,
"data": [
{
"id": "11",
"resource": "XUI",
"source_ip": "192.168.65.1",
"user_id": "0",
"message": "{\"DEVER\": \"1.11.44\"}",
"summary": "1.11.44",
"action": "UPDATE",
"user_name": "SYSTEM",
"created_at": "2020-08-03 11:25:18"
},
{
"id": "10",
"resource": "XUI",
"source_ip": "192.168.65.1",
"user_id": "0",
"message": "{\"DEVER\": \"1.11.43\"}",
"summary": "1.11.43",
"action": "UPDATE",
"user_name": "SYSTEM",
"created_at": "2020-08-03 11:25:17"
}
...
]
}
对于按照按时间、操作员、资源、动作等查询,查询方式一致,仅对URL 进行调整:
- 操作员:
/api/logs?page=1&perPage=500&operator=1000
- 资源:
/api/logs?page=1&perPage=500&operator=1000
- 动作:
/api/logs?page=1&perPage=500&action=POST
- 查询时间:
/api/logs?page=1&perPage=500&startDate=2025-09-04%2009:44:16
下面以“按动作查询”为例:
{
"pageCount": 1,
"data": [{
"action": "DELETE",
"id": "98",
"message": "",
"created_at": "2025-09-03 09:45:12",
"resource": "/ais/2",
"user_id": "1",
"user_name": "Admin",
"summary": "",
"source_ip": "192.168.0.197"
}, {
"action": "DELETE",
"id": "97",
"message": "",
"created_at": "2025-09-03 09:44:19",
"resource": "/ais/2/settings/3589",
"user_id": "1",
"user_name": "Admin",
"summary": "",
"source_ip": "192.168.0.197"
}
...
],
"rowCount": 16,
"page": 1
}
- 请求 URL:
/api/logs/download
- 请求 URL:
/api/logs/download?page=1&perPage=500
- 请求方式:
GET
- 返回系统操作日志(示例):
[
[
"ID",
"操作员",
"动作",
"资源",
"摘要",
"创建时间",
"来源IP",
"详细信息"
],
[
1,
"SYSTEM",
"",
"XUI",
"insert_conference_number1",
"2025-09-03 01:42:50",
"",
"{\"DETAIL\": \"insert into conference_number1 from 7000000 to 7099999\"}"
]
...
]
- 请求 URL:
/api/logfile_profiles
- 请求方式:
GET
- 返回系统日志(示例):
[
{
"created_at": "2025-09-03 01:42:52",
"updated_at": "2025-09-03 01:42:52",
"id": 1,
"disabled": 0,
"deleted_at": "",
"name": "default",
"description": "default"
}
]
- 请求 URL:
/api/logfile_profiles/:id
- 请求方式:
GET
- 返回系统日志(示例):
{
"name": "text1",
"disabled": 0,
"params": [{
"k": "logfile",
"disabled": 0,
"created_at": "2025-09-04 02:07:15",
"updated_at": "2025-09-04 02:38:09",
"ref_id": 2,
"deleted_at": "",
"id": 3595,
"realm": "LOGFILE-PARAMS",
"v": "/var/log/freeswitch.log"
}...],
"created_at": "2025-09-04 02:07:15",
"maps": [{
"k": "all",
"disabled": 0,
"created_at": "2025-09-04 02:07:15",
"updated_at": "2025-09-04 02:07:15",
"ref_id": 2,
"deleted_at": "",
"id": 3593,
"realm": "LOGFILE-MAPS",
"v": "console,debug,info,notice,warning,err,crit,alert"
}],
"updated_at": "2025-09-04 02:07:15",
"id": 2,
"deleted_at": "",
"description": "default"
}
- 请求 URL:
/api/logfile_profiles
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
name | string | 是 | 系统日志名称 |
description | string | 否 | 系统日志描述 |
template | string | 否 | 系统日志模板 |
{
"name": "text",
"description": "text",
"template": "default"
}
{
"data": 2,
"message": "success",
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
disabled | int | 是 | 系统日志启用状态 |
{
"disabled": 0
}
{
"data": 2,
"message": "success",
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
name | string | 是 | 系统日志名称 |
description | string | 否 | 系统日志描述 |
id | int | 是 | 系统日志 ID |
{
"name": "text",
"description": "text",
"id": 2
}
{
"data": 2,
"message": "success",
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id/param
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
k | string | 是 | 系统日志参数 |
v | string | 是 | 系统日志参数值 |
{
"k": "text",
"v": "text",
}
{
"code": 200,
"message": "success",
"data": 3599
}
- 请求 URL:
/api/logfile_profiles/:id/map
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | 系统日志 ID |
k | string | 是 | 系统日志参数 |
v | string | 是 | 系统日志参数值 |
{
"k":"text",
"v":"text"
}
{
"message": "success",
"data": 3602,
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id/params/:param_id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | 系统日志 ID |
param_id | int | 是 | 系统日志参数 ID |
{
"k": "text",
"v": "text",
}
{
"code": 200,
"message": "success",
"data": 3599
}
- 请求 URL:
/api/logfile_profiles/:id/params/:param_id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | 系统日志 ID |
param_id | int | 是 | 系统日志参数 ID |
{
"k":"text",
"v":"text11",
"action":"toggle"
}
{
"message": "success",
"data": "3601",
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id/params/:param_id
- 请求方式:
DELETE
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | 系统日志 ID |
param_id | int | 是 | 系统日志参数 ID |
{
"code": 200,
"message": "success",
"data": 3599
}
- 请求 URL:
/api/logfile_profiles/settings
- 请求方式:
GET
- 返回系统日志(示例):
[
{
"v": "true",
"disabled": 0,
"deleted_at": "",
"k": "rotate-on-hup",
"created_at": "2025-09-03 01:42:54",
"realm": "LOGFILE-SETTINGS",
"updated_at": "2025-09-03 01:42:54",
"id": 2516,
"ref_id": 0
}
]
- 请求 URL:
/api/logfile_profiles/setting
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
k | string | 是 | 系统日志参数 |
v | string | 是 | 系统日志参数值 |
realm | string | 是 | 系统日志参数域 |
{
"k": "text",
"v": "text",
"realm": "UNIMRCP-SETTINGS"
}
{
"id": 3598
}
- 请求 URL:
/api/logfile_profiles/setting/:id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | Setting 参数 ID |
k | string | 是 | 系统日志参数 |
v | string | 是 | 系统日志参数值 |
{
"k": "text",
"v": "text"
}
{
"code": 200,
"message": "success",
"data": "3598"
}
- 请求 URL:
/api/logfile_profiles/setting/:id
- 请求方式:
PUT
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | Setting 参数 ID |
action | string | 是 | 系统日志参数启用状态 |
{
"action": "toggle"
}
{
"code": 200,
"message": "success",
"data": "2516"
}
- 请求 URL:
/api/logfile_profiles/setting/:id
- 请求方式:
DELETE
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
id | int | 是 | Setting 参数 ID |
{
"message": "success",
"data": "{}",
"code": 200
}
- 请求 URL:
/api/logfile_profiles/:id
- 请求方式:
DELETE
- 请求参数:
{
"message": "success",
"data": "2",
"code": 200
}
- 请求 URL:
/api/tcpdump
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
dst_ip | string | 是 | 目标 IP |
dst_port | int | 是 | 目标端口 |
src_ip | string | 是 | 源 IP |
src_port | int | 是 | 源端口 |
proto | string | 是 | 抓包协议 |
{
"src_ip":"192.168.0.198",
"dst_ip":"192.168.0.197",
"src_port":"8081",
"dst_port":"8081",
"proto":"udp"
}
{
"message": "success",
"code": 200,
"data": 206
}
- 请求 URL:
/api/tcpdump
- 请求方式:
POST
- 请求参数:无
- Body 信息:
{}
{
"message": "success",
"code": 200,
"data": 207
}
- 请求 URL:
/api/media_files/:pid
- 请求方式:
GET
- 请求参数:
{
"original_file_name": "",
"id": 207,
"geo_position": "",
"mime": "",
"name": "2025-09-04-11-20.pcap",
"dir_path": "/usr/local/freeswitch/storage/upload/",
"rel_path": "2025-09-04-11-20.pcap",
"ext": "pcap",
"meta": "",
"abs_path": "/usr/local/freeswitch/storage/upload/2025-09-04-11-20.pcap",
"updated_at": "2025-09-04 03:20:25",
"description": "Auto Backup",
"deleted_at": "",
"created_at": "2025-09-04 03:20:25",
"channel_uuid": "",
"thumb_path": "",
"processing_flag": 0,
"type": "UPLOAD",
"file_name": "",
"domain": ""
}
- 请求 URL:
/api/tcpdump
- 请求方式:
POST
- 请求参数:
{
"pid": 208
}
{
"message": "success",
"code": 200,
"data": 208
}
- 请求 URL:
/api/ping
- 请求方式:
POST
- 请求参数:
{
"ip": "192.168.0.198"
}
: hello 2025-09-04 13:37:29
: ping -c 3 192.168.0.198
ERROR: ld.so: object '/usr/local/lib/libxvad.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
PING 192.168.0.198 (192.168.0.198) 56(84) bytes of data.
64 bytes from 192.168.0.198: icmp_seq=1 ttl=64 time=2.27 ms
64 bytes from 192.168.0.198: icmp_seq=2 ttl=64 time=0.063 ms
64 bytes from 192.168.0.198: icmp_seq=3 ttl=64 time=0.066 ms
--- 192.168.0.198 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2021ms
rtt min/avg/max/mdev = 0.063/0.800/2.271/1.040 ms
��
- 请求 URL:
/api/system/backup_schema
- 请求 URL:
/api/system/backup_schema?cdr_backup=false
不包含话单 - 请求 URL:
/api/system/backup_schema?cdr_backup=true
包含话单 - 请求方式:
GET
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
cdr_backup | bool | 是 | 是否包含话单 |
{
"code": 200,
"data": "SET\nSET\nSET\nSET\nSET\n set_config \n------------\n ... ",
"message": "success"
}
- 请求 URL:
/api/system/schema
- 请求方式:
GET
- 请求参数:无
- Body 信息:无
- 返回值:
["backup_database_2025_09_04_14_02"]
- 请求 URL:
/api/system/switch_schema
- 请求方式:
POST
- 请求参数:
参数名 | 类型 | 必填 | 描述 |
---|
schema_name | string | 是 | 备份的 SQL 文件 |
{
"schema_name":"backup_database_2025_09_04_14_02"
}
{
"message": "success",
"data": "backup_database_2025_09_04_14_02",
"code": 200
}