生成 EMS 的诊断报告
生成 EMS 的诊断报告
EMS 诊断报告用于收集服务器侧的运行信息,供管理员或 Fortinet TAC 分析管理页面异常、服务故障、终端连接和策略同步等问题。报告应与故障时间、复现步骤和错误信息一起提交,方便将日志与实际现象对应起来。
建议顺序:保存现场 → 确认日志设置 → 复现问题 → 生成诊断包 → 检查内容 → 提交并恢复日志设置。 对于偶发故障,先保存现有日志,不要为了重新复现而清除原始记录。
在重启服务、升级或清理日志之前,记录以下信息:
| 项目 | 需要记录的内容 |
|---|---|
| 故障现象 | 预期结果、实际结果、完整报错、出现频率和影响范围 |
| 时间 | 首次发生时间、本次复现的开始与结束时间,以及时区 |
| 软件版本 | EMS 完整版本和 build、受影响的 FortiClient 版本;涉及网关时记录 FortiOS 版本 |
| 部署方式 | 操作系统、安装方式、单机或 HA、数据库位置与部署方式 |
| 影响对象 | 终端主机名、UID、命中策略、最近在线时间,以及一台正常对照终端 |
| 近期变更 | 升级、证书、DNS、网络、策略、数据库或身份源变更 |
确认服务器和接收端有足够空间保存诊断包,并使用具备相应权限的账号操作。涉及 HA 时,记录采集当时的节点角色,分别保存相关节点的材料。
需要详细日志时,先记录原来的日志级别,再按目标版本或 TAC 要求临时调整。复现后尽快采集,避免日志轮转覆盖故障窗口。EMS 日志与终端日志需分别配置,具体参阅EMS日志设置和查看与客户端日志的设置。
通过 EMS 管理界面生成
EMS 管理页面可以正常访问时,优先使用 GUI:
- 登录 EMS,进入 Administration > Generate Diagnostic Logs。

- 根据排错需要决定是否勾选 Include Database Backup。通常先采集日志;需要数据库材料时,再根据问题范围或 TAC 要求包含该项。

- 如果勾选数据库备份,在 Password 和 Confirm Password 中设置并确认备份密码。

- 单击 Create按钮开始生成诊断报告。

- 等待诊断报告生成并下载

诊断包可包含 EMS CPU、内存使用快照、PostgreSQL 日志和性能数据等。Include Database Backup 包含的是部分数据库备份,不能替代日常备份或灾难恢复备份。 正式备份方法见EMS 的备份和还原。以上入口及选项依据 EMS 7.4.7 Generate Diagnostic Logs。
生成报告可能增加磁盘 I/O 和资源消耗。服务器已经出现资源紧张时,避免重复点击 Create;先确认已有任务是否仍在执行。
通过 EMSCLI 生成
GUI 无法使用、但仍能登录 EMSCLI 时,可使用 execute diagnostic。先确认当前进入的是 EMSCLI 还是普通 Linux Shell,两者的命令写法不同。
查看当前版本的命令帮助
在 EMSCLI 提示符中执行:
execute diagnostic --help对于具有普通 Linux Shell、且安装了对应工具的服务器,执行:
sudo /opt/forticlientems/bin/emscli execute diagnostic --help不要在 EMSCLI 提示符中直接执行 sudo、tar 或 journalctl。虚拟设备提供的命令环境与自行安装的 Linux 服务器可能不同。
生成并传送到接收服务器
以下示例在 EMSCLI 中生成诊断包,并通过 SCP 发送到接收服务器。先替换所有占位内容,确认目标目录存在、账号有写权限,且 EMS 可以连接目标 SSH 端口:
execute diagnostic --keep.file --copy.service scp --remote.ip <接收服务器IP> --remote.port 22 --remote.user <接收账号> --remote.password <接收账号密码> --remote.folder <接收目录>普通 Linux Shell 中,在相同参数前使用完整命令路径:sudo /opt/forticlientems/bin/emscli execute diagnostic。等待命令完成,并按输出确认生成和传输结果;不要仅凭命令已提交就认为接收成功。
| 参数 | 作用 |
|---|---|
--copy.service | 指定远程传输方式;7.4.7 文档列出 SCP、SFTP 和 FTP,建议使用 SCP 或 SFTP |
--remote.ip / --remote.port | 接收服务器地址和服务端口 |
--remote.user / --remote.password | 接收服务器的认证信息 |
--remote.folder | 接收目录,接收账号必须具有写权限 |
--keep.file | 远程复制时,在本地工作目录保留诊断文件;实际路径以命令输出为准 |
--include.db | 将数据库备份包含在诊断包中,按需启用 |
--backup.password | 设置所包含数据库备份的密码,与远程账号密码用途不同 |
重要
命令行中的密码可能进入命令历史或会话记录。使用受控的接收账号,不要将带有真实密码的命令截图或粘贴到工单。需要包含数据库备份时,妥善保存备份密码,并通过与诊断包分开的受控方式交付。
诊断工具也无法运行时
先保存失败命令、完整错误文本及执行时间,再收集系统状态和故障窗口内的日志。以下命令仅用于普通 Linux Shell:
date -Is
cat /etc/os-release
uptime
df -h
free -h
systemctl --failed --no-pager根据实际故障时间导出系统日志。以下日期和时间仅为示例,使用服务器本地时间,提交时注明时区:
sudo journalctl --since '2026-10-25 09:00:00' --until '2026-10-25 09:30:00' --no-pager > /tmp/ems-system-journal.txt按需补充 /var/log/forticlientems/ 下的组件日志,以及实际部署中的 Web、数据库或容器日志。详细定位方法见EMS 日志和进程。远程数据库、HA 数据库和见证节点的日志应从对应主机采集,不要假定它们全部包含在某一台 EMS 的诊断包中。
检查并提交诊断资料
| 检查项 | 验收要求 |
|---|---|
| 文件完整性 | 文件非空,压缩包可以正常打开或通过完整性检查;传输前后大小一致 |
| 时间范围 | 包内相关日志覆盖故障发生或复现时间,明确 EMS、终端及网关的时区差异 |
| 采集对象 | 文件对应本次故障的 EMS 节点、版本与角色,没有误交旧诊断包 |
| 关联材料 | 包含问题描述、复现步骤、错误截图、近期变更及必要的拓扑说明 |
| 内容范围 | 确认是否包含数据库备份、内部地址、用户名、策略等需要受控交付的信息 |
终端连接或策略同步问题,同时收集受影响终端的 Windows 诊断报告或 macOS 诊断报告。涉及 FortiGate、身份源或远程数据库时,补充同一时间窗口的对应日志。
提交时保留原始文件名和内部目录结构,可在外层工单目录中注明节点名、角色和采集时间。诊断包通过授权的支持工单渠道交付;保留原始包,需要脱敏时另制作副本。不要把数据库密码与诊断包放在同一个附件中。
常见问题与采集收尾
| 现象 | 处理方法 |
|---|---|
| 找不到 Generate Diagnostic Logs | 核对 EMS 版本、部署方式和管理员权限,避免误进入终端诊断菜单 |
| Create 长时间未完成或生成失败 | 保存报错,检查磁盘、资源、相关服务及数据库状态,再决定是否改用 CLI |
| CLI 提示命令或参数不存在 | 核对当前是 EMSCLI 还是 Linux Shell,并查看本机帮助 |
| 远程传输失败 | 检查网络、端口、认证、目标目录权限和接收端空间;如已保留本地文件,先确认文件可用 |
| 报告中没有本次故障 | 检查日志级别、采集节点、时区和日志轮转情况,必要时重新复现后立即采集 |
| HA 问题材料不完整 | 按同一时间窗口补齐相关 EMS、数据库及见证节点材料,并注明角色变化时间 |
完成采集后,恢复临时调整的日志级别,确认 EMS 管理页面和终端通信状态。记录采集期间是否重启过服务及具体时间。确认诊断包已可靠保存后,再按保留制度清理服务器上的临时文件和接收账号。
更新历史
| Ver | Description | Author | Rev | Date |
|---|---|---|---|---|
| 1.1 | Add CLI config for ems7.4 | ysheng | tanga | 2026.10.25 |
| 1.0 | First Complete | ysheng | tanga | 2026.10.18 |
| 0.1 | Draft Version | - | - | 2026.08.04 |