XSwitch运维手册
检查列表
以下是 XSwitch 运维过程中的常规巡检建议,分为每周巡检和每月巡检两个周期。建议将巡检结果记录存档,便于追溯和分析。
每周巡检
服务状态检查
- 检查 XSwitch 容器是否正常运行。
docker ps | grep xswitch
- 检查 XSwitch 运行状态,确认呼叫数、会话数等指标正常。
make bash fs_cli -x "status"
- 检查 XSwitch 进程是否存在崩溃或重启记录。
ps -aux | grep freeswitch
数据库检查
- 检查 PostgreSQL 容器是否正常运行。
docker ps | grep xswitch-pg
- 登录数据库,确认连接和权限正常。
make bash-pg psql -U xui xui
- 查看当前数据库连接数,确认未接近上限(默认
100)。
SELECT count(*) FROM pg_stat_activity; SHOW max_connections;
磁盘空间检查
- 检查文件系统利用率,确保不低于 85% 或有大于 10G 的空闲空间。
df -lh
- 检查录音目录和日志目录占用情况,必要时清理过期文件。
du -sh data/storage/recordings/ du -sh data/log/
日志检查
- 检查最近一周的 XSwitch 日志,关注 ERROR 和 CRITICAL 级别。
grep -i "error\|critical" log/freeswitch.log.*
- 检查系统日志是否有异常。
dmesg | grep -i error
内存检查
检查内存使用情况,确认未出现内存耗尽或频繁 swap。
free -m
僵尸进程检查
检查是否存在僵尸进程,如有则清理。
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
每月巡检
通话质量与话单检查
- 检查上月话单完整性,确认话单数据未丢失。
SELECT count(*), date_trunc('month', start_stamp) AS month FROM cdrs GROUP BY month ORDER BY month DESC LIMIT 3;
- 分析通话质量指标,如接通率、平均通话时长等,发现异常及时排查。
录音与存储清理
检查录音文件总量和增长趋势,评估存储空间是否需要扩容。
确认自动删除录音任务是否正常执行(参见自动维护)。
检查过期日志是否已轮转清理,避免日志占满磁盘。
数据库维护
检查数据库备份是否正常执行,验证备份文件可恢复性。
检查数据库大小和增长趋势。
SELECT pg_database_size('xui');
- 如有必要,对数据库进行 VACUUM 优化。
VACUUM ANALYZE;
安全检查
检查防火墙规则是否正确,确认仅必要端口对外开放。
检查 SIP Profile 的鉴权配置,确认
publicProfile 的呼叫权限设置合理。检查用户账号和密码策略,清理不再使用的分机和管理员账号。
系统更新与备份验证
检查 XSwitch 是否有新版本发布,评估是否需要升级。
验证数据库备份和恢复流程是否可用。
验证数据备份(storage 目录)脚本是否正常运行。
硬件与系统资源评估
评估 CPU 使用峰值,判断是否需要扩容。
评估网络带宽使用情况,确认满足通话并发需求。
检查系统 uptime,确认无计划外的重启。