XSwitch运维手册

检查列表

以下是 XSwitch 运维过程中的常规巡检建议,分为每周巡检和每月巡检两个周期。建议将巡检结果记录存档,便于追溯和分析。

每周巡检

服务状态检查

  1. 检查 XSwitch 容器是否正常运行。
docker ps | grep xswitch
  1. 检查 XSwitch 运行状态,确认呼叫数、会话数等指标正常。
make bash
fs_cli -x "status"
  1. 检查 XSwitch 进程是否存在崩溃或重启记录。
ps -aux | grep freeswitch

数据库检查

  1. 检查 PostgreSQL 容器是否正常运行。
docker ps | grep xswitch-pg
  1. 登录数据库,确认连接和权限正常。
make bash-pg
psql -U xui xui
  1. 查看当前数据库连接数,确认未接近上限(默认 100)。
SELECT count(*) FROM pg_stat_activity;
SHOW max_connections;

磁盘空间检查

  1. 检查文件系统利用率,确保不低于 85% 或有大于 10G 的空闲空间。
df -lh
  1. 检查录音目录和日志目录占用情况,必要时清理过期文件。
du -sh data/storage/recordings/
du -sh data/log/

日志检查

  1. 检查最近一周的 XSwitch 日志,关注 ERROR 和 CRITICAL 级别。
grep -i "error\|critical" log/freeswitch.log.*
  1. 检查系统日志是否有异常。
dmesg | grep -i error

内存检查

检查内存使用情况,确认未出现内存耗尽或频繁 swap。

free -m

僵尸进程检查

检查是否存在僵尸进程,如有则清理。

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

每月巡检

通话质量与话单检查

  1. 检查上月话单完整性,确认话单数据未丢失。
SELECT count(*), date_trunc('month', start_stamp) AS month
FROM cdrs
GROUP BY month ORDER BY month DESC LIMIT 3;
  1. 分析通话质量指标,如接通率、平均通话时长等,发现异常及时排查。

录音与存储清理

  1. 检查录音文件总量和增长趋势,评估存储空间是否需要扩容。

  2. 确认自动删除录音任务是否正常执行(参见自动维护)。

  3. 检查过期日志是否已轮转清理,避免日志占满磁盘。

数据库维护

  1. 检查数据库备份是否正常执行,验证备份文件可恢复性。

  2. 检查数据库大小和增长趋势。

SELECT pg_database_size('xui');
  1. 如有必要,对数据库进行 VACUUM 优化。
VACUUM ANALYZE;

安全检查

  1. 检查防火墙规则是否正确,确认仅必要端口对外开放。

  2. 检查 SIP Profile 的鉴权配置,确认 public Profile 的呼叫权限设置合理。

  3. 检查用户账号和密码策略,清理不再使用的分机和管理员账号。

系统更新与备份验证

  1. 检查 XSwitch 是否有新版本发布,评估是否需要升级。

  2. 验证数据库备份和恢复流程是否可用。

  3. 验证数据备份(storage 目录)脚本是否正常运行。

硬件与系统资源评估

  1. 评估 CPU 使用峰值,判断是否需要扩容。

  2. 评估网络带宽使用情况,确认满足通话并发需求。

  3. 检查系统 uptime,确认无计划外的重启。

Linux 常用操作