在本课中, 我们将研究如何诊断和解决与 FortiManager 和托管设备相关的问题。
在本课中, 我们将探讨以下主题:
- 部署方案
- 诊断和疑难解答
- 设备和 ADOM 数据库疑难解答
- 导入和安装问题
完成本节后, 你应该能够:
- 描述 FortiManager 和 FortiGate 之间可能存在的各种部署方案
- 描述保持生存信息的目的
- 替换托管 FortiGate
在这种情况下, FortiManager 在 NAT 设备后面运行。默认情况下, 只有 FortiManager 才能发现新设备。如果 FGFM 隧道被拆除, 只有 FortiManager 将试图重建 FGFM 隧道。这是因为, 默认情况下, NATed FortiManager IP 地址没有配置 FortiGate *管理。
FortiGate 如何向 NATed FortiManager 宣布自己, 或试图重新建立 FGFM 隧道, 如果它被拆除? 你可以在 "*管理配置" 下配置 FortiGate 上的 FortiManager NATed IP 地址。这允许 FortiGate 宣布自己 FortiManager, 并试图重新建立 FGFM 隧道, 如果它被拆除。在 FortiGate 上配置 FortiManager NATed IP 地址 允许 FortiManager 和 FortiGate 重新建立 FGFM 隧道。
在这种情况下, FortiGate 在 NAT 设备后面运行。FortiManager 可以通过 FortiGate NATed IP 地址发现 FortiGate。FortiGate 也可以宣布自己 FortiManager。如果 FGFM 隧道被打断了怎么办?如果 FGFM 隧道被 拆除, 只有 FortiGate 会尝试重新建立连接。FortiManager 将 NATed FortiGate 视为无法到达的设备, 并且不尝 试重新建立 FGFM 隧道。但是, 你可以通过单击设备管理器中受控设备的连接摘要构件中的 "刷新" 图标, 强制 从 FortiManager 进行一次性连接尝试。
如果 devices–FortiManager 和 FortiGate–are 在 NAT 设备后面怎么办?然后, FortiManager 通过 FortiGate NATed IP 地址发现 FortiGate 设备。就像在 NATed FortiManager 场景中一样, 此方案中的 FortiManager NATed IP 地址没有在 FortiGate *管理配置下配置。如果 FGFM 隧道中断, FortiManager 将不会尝试重新 建立 FGFM 隧道到 FortiGate NATed IP 地址。如果在*管理配置下的 FortiGate 配置了 FortiManager NATed IP 地址, FortiGate 将尝试重新建立 FGFM 隧道 (如果它被拆掉)。
keepalive 消息 (包括配置校验和) 是从 FortiGate 按配置的间隔发送的。keepalive 消息包括:
- fgfm-超时: 最大 FortiManager/FortiGate 通信插座空闲时间 (秒)
- fgfm_keepalive_itvl: FortiManager 将向 FortiGate 设备发送 keepalive 信号的间隔, 以保持 FortiManager/FortiGate 通信协议处于活动状态
如果在袜子超时值的持续时间内没有对 keepalive 消息的响应, 则隧道将被拆下, 两端将尝试重新建立它。
当从 FortiManager 到 FortiGate 执行安装时, FortiManager 总是尝试确保与托管 FortiGate 的连接。如果连接失败, FortiManager 试图通过取消导致隧道向下的命令来恢复 FGFM 隧道。
对于每个安装, FortiManager 将以下命令发送到托管 FortiGate 设备:
- 设置命令, 需要应用配置更改
- 取消设置命令, 以恢复配置更改
应用更改时, FortiGate:
- 应用 set 命令, 仅使用内存, 不写入配置文件
- 测试与 FortiManager 的 FGFM 连接
如果连接无法重新建立, FortiGate 将在15分钟后应用未设置命令 (不可配置, 而不基于袜子超时值)。如果连接处于关闭状态, 并且在 FortiManager 上启用了回滚-允许重新启动, FortiGate 将重启以从其配置文件中恢复以前的配置。
FortiManager 保存受控设备的配置修订, 但如果由于硬件故障或 RMA 而需要更换受控设备, 会发生什么情况?
你可以通过手动将故障设备的***更改为 FortiManager 上更换设备的***来更换故障设备。然后, 重新部 署配置。由于许可证附加到 FortiGate ***, 因此在每个管理连接之前都验证***。
注意: 替换 FortiGate 在运行 "执行设备替换 sn" 命令之前不应与 FortiManager 联系<devname> <serialnum>。 如果确实如此, 在重新运行命令之前, 你将删除未注册的设备条目。
要用新设备替换故障设备:
- 记下原始 FortiGate 的设备名称。如果替换设备已列出为未注册, 则需要从根 ADOM 中的未注册设备列表中删除它。
- 添加替换 FortiGate 的***。在执行 "替换" 命令后, FortiManager 将更新其数据库中的***。
- 验证新设备***是否与 FortiManager 中的故障设备关联。你可以使用 FortiGate 的 CLI 或系统信息构件来执行此项。
- 从更换设备发送请求, 将其注册为 FortiManager。
如果在更新***后连接失败, 则可能需要回收管理隧道。设备名称是可选的。如果在没有设备名称的情况下 运行该命令, FortiManager 将尝试从所有受控设备中回收隧道。
或者, 可以通过运行执行设备替换密码来更改添加设备时使用的设备密码<device_name> <password>。
干得好!现在你了解部署方案。
现在, 让我们使用一些诊断命令来解决 FortiManager 连接和性能问题。
完成本节后, 你应该能够:
- 使用 CLI 命令检查和解决常见连接、进程状态和重新启动过程
- 诊断 FortiManager 和 FortiGate 之间的注册、导入和安装问题
- 确定数据库完整性的最佳做法
- 确定可用于检查和恢复数据库完整性的命令
此幻灯片显示了一些 CLI 命令, 可用于诊断 FortiManager 连接和资源问题。
这些命令类似于可用于诊断和解决常见问题的 FortiGate 命令。例如, 要查看顶部运行的进程, 可以运行 "执行 顶部"。可以使用 "执行 iotop" 命令来标识具有高 i/o 使用率 (通常为磁盘活动) 的系统进程。你可以查看崩溃日 志条目。如果 FortiManager 正在丢弃数据包或不接收数据包, 则可以运行数据包捕获 (嗅探器) 来帮助诊断原因。你还可以测试设备可达性, 并可以确认 FGFM 隧道的状态。
"获取系统性能" 命令提供有关系统资源使用情况的信息, 并按资源类型显示输出:
- cpu: 提供对系统上 cpu 使用情况信息的过度视图。它将显示哪些类型的进程正在使用哪个百分比的CPU
- 内存: 提供设备可用的总内存以及当前正在使用的内存数量
- 硬盘: 提供硬盘使用信息, 包括可用的总磁盘空间和使用量
- 闪存盘: 提供闪存盘使用信息总是检查使用的列以检查资源使用情况。
如果资源使用率很高, 你可能会遇到从 FortiManager 管理设备的问题。例如, 添加设备或安装更改可能需要很长时间。
"执行顶部" 命令显示对系统监视非常有用的实时系统统计信息。统计信息以行的方式显示, 如下所示:
1行–当前时间、运行时、用户会话、平均系统负载 (最后一分钟、五分钟和15分钟)
2行-运行的进程总数、进程正在运行、进程休眠、停止、处于僵尸状态
3行– cpu 使用情况: 用户进程、系统进程、优先进程、cpu 闲置、等待 i/o 的进程、硬件 irq、软件 irq 和窃取时间。
行4和行 5-内存使用情况
6行-进程 ID、用户、优先级进程、进程的良好值、虚拟内存使用率是交换文件、内存使用率为 RAM、CPU 使 用率、内存使用百分比、总活动时间、进程状态和进程名称
在解决 CPU 或内存使用率高的问题时, 请检查整个系统资源。然后检查单个进程以进行高 CPU 或内存使用。
FortiManager 在使用命令执行 iotop 时显示负责高 i/o 等待状态的各个进程。你可以使用此命令来标识在排除 与繁重 i/o 使用有关的性能问题时导致高 i/o 使用的进程。
你可能要监视的另一个区域 (纯用于诊断) 是崩溃日志。崩溃日志可通过 CLI 提供。最近的崩溃日志将列在输出 的底部。在此示例中, 使用信号11重新启动了进程 cmdbsvr, 并在崩溃日志文件中记录了崩溃信息。崩溃日志显 示第一行中的固件信息, 后跟进程名称和信号信息。
崩溃日志中的大多数日志都是正常的。崩溃日志中的某些日志可能表明存在问题。因此, Fortinet 技术支持可以请求故障日志以进行疑难解答。
数据包嗅探器命令对于解决连接和与通信有关的问题很有用。幻灯片中显示的数据包嗅探器命令设置为从端口 541上的主机192.168.1.99 捕获数据包, 并仅显示五数据包和本地时间戳的数据包头 (详细 1)。
例如, 如果在 FortiManager 和 FortiGate 之间遇到连接问题, 则可以嗅探 TCP 端口541上的管理通信量, 以查看 两个设备之间是否有通信。
诊断 systeme 打印 df 命令显示 FortiManager 上的磁盘分区信息。它显示文件系统、大小、用法、可用磁盘空 间、百分比使用率和装入点。在解决与磁盘相关的问题时, 此命令非常有用。了解这些分区在 FortiManager 上 的使用情况可能很有帮助:
/开发/shm 用作共享内存/tmp 是临时文件存储文件系统/数据是指向闪存磁盘分区的指针 var 用于 FortiManager 数据库存储/drive0 用作 FortiAnalyzer 存档, postgres 数据库/存储用于 FortiAnalyzer 日 志和报表存储。
在 FortiManager 上, 进程锁定并解锁数据库, 但它们不应停留在锁定状态。空闲系统上不应有锁。 如果 FortiManager 花太长时间完成任务怎么办?可以使用 "进程列表" 命令来标识卡住的任何进程或任务。被 卡住的任务可能会阻止其他后续任务被处理。如果任务占用的时间太长, 则会在此处列出。可以从 "系统设置" 窗格的 "任务监视器" 中取消或删除挂起的 (滞留) 任务。
你可以使用这些调试命令来解决 FortiManager 和 FortiGate 之间的各种问题, 例如添加、删除、刷新、自动更 新和安装问题。
在运行任何调试命令之前, 请检查是否启用了其他调试命令。如果没有禁用或重置, 运行调试将显示所有其他启 用的调试的输出。在启用任何新的调试之前, 始终重置调试级别。
FortiManager 上的端庄关闭可能会导致文件系统和内部数据库损坏。这同时适用于硬件和虚拟机。作为最佳做 法, 你应该检查警报消息控制台和事件日志中的重要消息。
如果 FortiManager 失去电源, 控制台连接上的消息将建议你修复文件系统。记住, 在修复文件系统之前, 总是备份 FortiManager。还强烈建议你将 FortiManager 连接到不间断电源 (UPS), 以防止意外关闭。
要确保 FortiManager 上的数据库完整性, 应遵循以下最佳做法:
- 总是优雅地关闭 FortiManager。使用端庄关闭可能会损坏内部数据库。
- 如果多个管理员正在 FortiManager 上执行操作, 请启用 ADOM 锁定以避免配置冲突。
- 始终遵循正确的升级路径。如果不这样做, 可能会导致数据库不一致。
- 请确保所有管理员都已注销, 并在执行固件升级之前执行数据库完整性检查。
如果无法解决数据完整性问题, 可以在 FortiManager 上执行工厂重置, 然后使用良好的备份配置还原配置。
如果你在 FortiManager 上遇到不寻常的行为, 请检查数据库完整性问题。数据库完整性命令修改找到的任何数 据库错误。建议你在执行数据库完整性命令之前执行备份。如果不想保留所做的更改由完整性命令进行, 并且 需要还原 FortiManager 配置, 则具有备份非常有用。
如果需要执行数据库完整性命令, 请确保所有进销存都已解锁, 并且没有正在执行的活动操作。
作为最佳做法, 请配置 FortiManager 的定时备份。FortiManager 在计划备份之前自动运行数据库完整性命令, 并创建日志。如果数据库完整性存在任何问题, 则需要重新运行命令以解决问题。
此幻灯片列出了可用于验证和维护数据库完整性的命令。如果执行对数据库进行更改或更正的数据库完整性命 令, 则建议你重新运行该命令, 以验证是否正确地进行了任何更改或更正。
此幻灯片显示数据库完整性检查的示例:
- FortiManager 验证所有对象中的数据库架构。
- FortiManager 发现问题并通知管理员。
- 管理员接受通过按 Y 来更正问题所做的更改。
- FortiManager 修复对象数据库。
- FortiManager 记录事件日志中的所有更改。
在第二个示例中, FortiManager 发现设备管理器数据库没有问题。
干得好!现在, 你将了解如何诊断和解决与 FortiManager 有关的各种问题。
现在, 我们来检查疑难解答设备和 ADOM 数据库。
完成本节后, 你应该能够:
• 使用 CLI 命令解决设备级和 ADOM 级数据库问题
FortiManager 将 FortiGate 配置详细信息存储在两个不同的数据库中。设备级数据库包括与设备级设置相关的 配置详细信息, 如接口、DNS、路由等。ADOM 级数据库包含与防火墙策略、对象和安全配置文件相关的配置详细信息。
如果需要验证哪些模板应用于哪个 FortiGate 设备, 可以从 "资源调配模板" 构件或单个设备配置和安装状态小 部件进行检查。
在此示例中, 默认系统模板应用于 DNS 设置的本地 FortiGate 和远程 FortiGate。
可以使用此命令查看模板的 CLI 配置。你可以看到将哪些 CLI 命令推送到 FortiGate。 提示: 使用?求助。在本示例中, 默认系统模板配置为主 DNS 条目和辅助域名。请记住, 默认系统模板应用于本 地 FortiGate 和远程 FortiGate, 如上一张幻灯片所示。
可以使用 CLI 命令查看受控设备的整个配置, 或查看单个对象配置。
"执行 fmpolicy 打印设备数据库" 命令显示设备配置, 包括从 FortiManager 进行的设备级别更改。它不显示应用 系统模板所造成的更改。此外, 不显示从 FortiManager (如防火墙策略和对象) 所做的 ADOM 级别配置更改。 这些更改将在安装时应用 (复制) 到设备级数据库。
如果你从受控设备的配置和安装状态构件执行安装预览, 则它将显示设备级配置更改, 但会发生以下异常:
- 系统模板
- ADOM 级配置更改
此幻灯片显示了本地 FortiGate 的 DNS 设置示例。本地 FortiGate 是使用此处显示的 DNS 配置在本地配置的。 此示例中使用的 DNS 项与默认系统模板中使用的不同。将设备级配置安装到本地 FortiGate 时, 安装将跳过主 dns 条目并仅安装辅助 dns 条目。这是因为主 DNS 条目是相同的, 基于应用的默认系统模板和本地 FortiGate 。
在前面的幻灯片中, 我们演示了如何查看与特定受控设备相关的配置。你还可以使用此幻灯片中显示的命令查 看 ADOM 级别的策略和对象。
此幻灯片显示了在特定策略包中查看策略或策略的示例。在此示例中, 本地 FortiGate 策略包最初仅有一个名为 Ping_Access 的策略。FortiManager 管理员已在本地 FortiGate 策略包中配置了名为 Full_Access 的新策略。 从 ADOM 级别查看策略时, 它显示了需要安装的策略 (现有策略和新策略)。
如果在设备级别查看本地 FortiGate 的策略, 将显示新配置的防火墙策略吗?在设备级别上, 在执行策略和对象 安装之后, 将不显示从 FortiManager 进行的 ADOM 级别 (防火墙策略和相关对象) 配置更改。 下一张幻灯片显示设备级别的本地 FortiGate 策略。
这是在设备级别查看特定设备的策略或策略的示例。在此示例中, 在设备级别查看本地 FortiGate 策略。如前面 的示例所述, 在执行策略和对象安装之前, 不会显示 ADOM 级配置更改。
干得好!现在, 你将了解如何诊断和解决 FortiManager 上的设备和 ADOM 数据库问题。
现在, 我们来检查导入和安装问题的疑难解答。
完成本节后, 你可以:
• 识别和解决导入和安装问题。
在此示例中, 在修订历史记录中正确检索和保存配置。但是, 更新设备数据库时出现问题。通常, 像这样的问题 是由不一致或损坏的 FortiGate 配置引起的。
你可以对重新加载失败进行故障排除, 以查看在什么阶段配置未能加载到设备级数据库中。 执行 "重新加载失败" 命令时, FortiManager 连接到 FortiGate 并下载其配置文件。然后, FortiManager 对设备 数据库执行重新加载操作。 可能有两个结果:
- 如果 FortiGate 配置中没有错误, 重新加载将成功, 设备级数据库将使用 FortiGate 配置进行更新。但是, 请注 意, 不会创建新的修订历史记录项。
- 如果 FortiGate 配置中存在错误, 则 "重新加载" 命令的输出将指示设备级数据库无法更新的配置中的点。
你还可以检查事件日志, 以查看它们是否包含有关失败原因的详细信息。
使用 "导入策略向导" 添加 FortiGate 时使用 "添加设备向导" 或 "导入策略", 始终确保策略和对象已成功导入。
在此示例中, FortiManager ADOM 数据库有一个名为 Test_PC 的防火墙地址对象, 它与接口中的任何一个关联。
第二个 FortiGate 还有一个名为 Test_PC 的防火墙地址对象, 它与接口 port6 关联。在第二个 FortiGate 的防火 墙策略中引用了此防火墙地址对象。
将策略包添加或导入到第二个 FortiGate 时, 它无法导入防火墙地址对象 Test_PC 以及相关的防火墙策略。 FortiManager 下载导入报告提供了失败的对象或策略导入的原因。
如果地址对象名称相同, 但在本地包含不同的值, FortiManager 可以为地址对象创建动态映射。但是, 有一个限 制-关联的接口不能不同。这是因为, 在 ADOM 级别, 此地址对象可能被其他策略包使用, 而这些软件包可能没 有相同的接口。
部分策略包导入的影响将是什么?
从 FortiManager 到部分导入的策略包进行配置更改后, 尝试使用 "安装向导" 来安装策略和对象, FortiManager 将删除失败的对象和策略。这是因为策略包不知道缺少或失败的策略和对象。 解决此问题的方法有两种:
- 你可以删除接口绑定, 使其与 FortiManager ADOM 对象相同
- 如果需要对具有部分策略导入问题的 FortiGate 保留接口绑定, 则可以将地址对象重命名为不属于 ADOM 数据库的唯一名称
要使用这些方法中的任何一种, 你都可以直接使用远程 FortiGate (通过 CLI) 选项从 FortiManager 运行脚本, 也 可以在本地登录到 FortiGate 以进行配置更改。
执行策略包安装时, 复制操作是在实际安装之前执行的第一个操作。FortiManager 试图将 ADOM 级对象或策略 复制到设备数据库的操作。这与导入操作相反。
复制失败问题通常是由于从 ADOM 数据库复制到设备数据库时存在不正确或缺少对象依赖关系引起的。不正 确或缺少对象依赖项是由 FortiManager 数据库中的损坏或不一致引起的。 复制失败日志将帮助你识别出现故障的 CLI 语法或指向正确的方向。
发生复制失败时, 设备数据库将还原到复制尝试之前的原始状态。
始终检查视图安装日志, 查看 FortiGate 未执行或接受哪些 CLI 命令。它通常由以下原因引起:
- ADOM 和 FortiGate 不匹配版本, 它使用不正确的 CLI 语法创建了一个对象
- 由于数据库损坏, ADOM 升级无法正确修改现有对象。
这是安装失败的安装日志。在此示例中, 由于 MAC 地址不正确, 未添加名为 mydevice 的新对象 (失败)。接下 来, FortiGate 拒绝将 mydevice 对象添加到防火墙策略中。
验证报告显示了预期安装的配置与 FortiGate 上安装的内容之间的差异。
由于未创建 mydevice 对象, 所以在 FortiGate 上安装了防火墙策略, 而没有源设备 mydevice。
有多种方法可以修复安装失败问题。
首先, 验证 FortiGate 版本是否与 ADOM 相同或支持。 如果版本不相同或不受支持, 则:
- 从 FortiManager GUI (如果支持) 重新创建对象或策略, 或者使用脚本来修复问题。
- 再次执行安装。
如果 ADOM 版本正确或执行了 ADOM 升级, 则:
- 检索 FortiGate 配置, 以便 FortiManager 使用正确的语法更新设备数据库。
- 进行小型设备级别的更改并安装它以确保没有设备数据库问题。
- 如果安装不成功, 请检查并修复设备级设置
- 如果安装成功, 请检查并在需要时重新创建对象或策略。
3. 再次执行安装。
作为隔离和修复安装失败问题的最后手段, 你可以:
- 在 FortiGate 上创建一个具有匹配固件的新 ADOM。
- 将 FortiGate 移动到新的 ADOM。
- 检索配置和导入策略包。
- 从 FortiManager GUI (如果支持) 重新创建对象或策略, 或者使用脚本, 然后执行安装。
回顾一下, 这些是本课所涉及的目标:
- 描述各种部署方案
- 了解 FMFM 保持生存的邮件替换受控设备
- 使用 CLI 命令解决一般连接和资源问题
- 验证 FortiManager 数据库的完整性
- 诊断和诊断设备和 ADOM 数据库问题
- 有关导入和安装的问题的疑难解答