operator diagnose
operator diagnose 命令应主要在 Vault 宕机或部分无法运行时使用。无论 Vault 处于何种状态,都可以安全地使用该命令,但如果 Vault 服务正在运行,则可能会因为某些测试用例而返回无意义的结果。
注意:如果您在服务启动之前或运行时主动运行诊断命令,请查阅有关以下各项检查的文档以查看哪些检查会返回假的错误消息或警告。
可用标志
除了全局可用的标准标志以外,也可以配置下列标志:
输出选项
-format(string: "table")- 按照指定格式打印输出。合法的格式有table、json或yaml。也可以通过环境变量VAULT_FORMAT设定该值。
输出布局
operator diagnose 命令将在命令行中输出一组行。每一行将以中括号中的前缀开头。它们是:
[ success ]- 标记成功的检查[ warning ]- 标记虽然通过,但可能存在与 Vault 遇到的问题有关的需要进一步分析的潜在问题。诊断会产生频繁的警告。这些警告旨在作为调试过程的起点[ failure ]- 标记该检查失败。从诊断命令的角度看,故障是关键问题
除了这些带前缀的输出行之外,可能还有一些没有前缀的紫色的输出行。这些是来自诊断程序的建议,旨在提供有关如何修复可能出现的潜在警告或故障的一般性指导。
如果警告或故障嵌套在其他信息内部并带有父级的前缀,那么检查结果前缀将会冒泡至父级。故障会覆盖警告,警告覆盖成功。例如,如果 Storage 检查下的 TLS 检查失败,则 [ failure ] 前缀将冒泡到存储检查(子项的失败将直接体现在父项的前缀上)。
命令选项
-config(string: "")- 指向用以启动 Vault 服务的配置文件的路径
诊断检查
以下部分详细介绍了诊断程序运行的各种检查。文档中的检查名称将用斜杠分隔以表示它们是嵌套的。例如,记录为 A / B 的检查将在operator diagnose 输出中显示为 B,并将嵌套(缩进)在 A 下。
Vault Diagnose
Vault Diagnose 是包含其余检查的顶级检查。它将报告检查的状态
Check Operating System / Check Open File Limit
Check Open File Limit 验证打开文件限制值是否设置得足够高以使得 Vault 能够正常运行。建议将这些限制至少设置为 1024768 及以上。
在 openbsd、arm 和 windows 上将跳过此检查。
Check Operating System / Check Disk Usage
Check Disk Usage 将报告每个分区的磁盘使用情况。对于生产环境主机上的每个分区,我们建议至少分区有 5% 的空间可用,以及至少 1 GB 的空间。
在 openbsd 和 arm 上将跳过此检查。
Parse Configuration
Parse Configuration 将检查 Vault 服务器配置文件是否存在语法错误。它将检查配置文件中是否有多余的值、重复的节和不属于配置文件的节(例如tcpp listener 而不是 tcp listener)。
目前,storage 节不会被检查。
Check Storage / Create Storage Backend
Create Storage Backend 确保在 Vault 服务配置中配置的存储节有足够的信息在内部创建存储对象。常见错误与 storage 节中错误配置的字段有关。
Check Storage / Check Consul TLS
如果存储类型是 consul,则 Check Consul TLS 验证 storage 节中包含的 TLS 信息。如果提供了证书链,诊断程序会解析根证书、中间证书和叶证书,并检查每个证书的正确性。
Check Storage / Check Consul Direct Storage Access
Check Consul Direct Storage Access 是一项针对 Consul 的检查,可确保 Vault 不是直接访问 Consul 服务,而是通过本地代理。
Check Storage / Check Raft Folder Permissions
Check Raft Folder Permissions 计算 Raft 文件夹的权限,检查之前是否在该文件夹内初始化了一个 boltDB 文件,并确保该文件夹配置的权限不是过于宽松,但同时又足够使用。Raft 文件夹不应具有 other 权限,但应具有 group rw 或 owner rw,具体取决于不同的配置。此检查还会在检测到使用符号链接时发出警告。
请注意,如果在先前没有运行过服务的情况下运行诊断,则此检查将警告尚未创建 Raft 文件。
在 Windows 上将跳过此检查。
Check Storage / Check Raft Folder Permissions
Check Raft Folder Permissions 计算 Raft 文件夹的权限,检查之前是否在该文件夹内初始化了一个 boltDB 文件,该文件夹配置的权限不是过于宽松,但同时又足够使用。 Raft 文件夹不应具有 other 权限,但应具有 group rw 或所有 owner rw,具体取决于不同的设置。此检查还会在检测到使用符号链接时发出警告。
请注意,如果在先前没有运行过服务的情况下运行诊断,则此检查将警告尚未创建 Raft 文件。
在 Windows 上将跳过此检查。
Check Storage / Check For Raft Quorum
Check For Raft Quorum 使用 FSM 来确保在 Vault 最近运行时在 Raft 集群中有奇数个选民。
请注意,如果在先前没有运行过服务的情况下运行诊断,则此检查将警告有 0 个投票者。
Check Storage / Check Storage Access
Check Storage Access 将尝试将一个名为 diagnose/latency/<uuid> 的哑值写入存储。在运行诊断之前确保此位置没有重要数据,因为此检查将覆盖该数据。然后,该检查将尝试列出并读取它写入的值,以确保名称和值符合预期。
如果任何操作的时间超过 100 毫秒,Check Storage Access 将发出警告,如果整个检查时间超过 30 秒,则会出错。
Check Service Discovery / Check Consul Service Discovery TLS
如果存储类型是 consul,那么 Check Consul Service Discovery TLS 将验证包含在 service discovery 节中的 TLS 信息。如果提供了证书链,诊断程序会解析根证书、中间证书和叶证书,并检查每个证书的正确性。
Check Service Discovery / Check Consul Direct Service Discovery
Check Consul Direct Service Discovery 是一项针对于 Consul 的检查,可确保 Vault 不直接访问 Consul 服务,而是通过本地代理访问。
Create Vault Server Configuration Seals
Create Vault Server Configuration Seals 从 Vault 配置节创建封印并验证它们可以被初始化和解封。
Check Transit Seal TLS
Check Transit Seal TLS 检查在 transit seal 节(如果存在)中提供的 TLS 客户端证书、密钥和 CA 证书的正确性。
Create Core Configuration / Initialize Randomness for Core
Initialize Randomness for Core 确保 Vault 内核可以使用 randReader。
HA Storage
此检查以及它的嵌套检查将与 Check Storage 检查相同。唯一的区别是该检查将针对 Vault 配置中的 ha_storage 部分运行,而不是 storage 部分。
Determine Redirect Address
确保设置了 VAULT_API_ADDR、VAULT_REDIRECT_ADDR 或 VAULT_ADVERTISE_ADDR 环境变量之一,或者在 Vault 配置中指定了重定向地址。
Check Cluster Address
从 VAULT_CLUSTER_ADDR 环境变量,或从 Vault 配置中指定的重定向地址或集群地址解析集群地址,并检查地址的格式是否为host:port。
Check Core Creation
Check Core Creation 验证 Vault 在创建核心对象时所做的逻辑配置检查。这些检查是运行时检查,这意味着此诊断测试抛出的任何错误也将在运行时由 Vault 服务器本身抛出。
Check For Autoloaded License
Check For Autoloaded License 是一项企业版诊断检查,用于验证 Vault 是否在未来 30 天内能够访问到一个不会过期的有效的自动加载许可证。
Start Listeners / Check Listener TLS
Check Listener TLS 验证服务器证书文件和密钥是否有效且匹配。它还会检查客户端 CA 文件(如果有的话)的有效证书,并对 listener 配置节执行标准运行时 listener 检查,例如验证最小和最大 TLS 版本是否在 Vault 支持的范围内。
与所有其他诊断 TLS 的检查一样,如果提供的任何证书将在一个月内到期,它将发出警告。
Start Listeners / Create Listeners
Create Listeners 使用 listener 配置来初始化侦听器,如果出现任何问题,则会出现服务器错误。
Check Autounseal Encryption
Check Autounseal Encryption 将使用封印节初始化加密屏障,如果封印类型不是 Shamir,并使用它来加密和解密一个哑值。
Check Server Before Runtime
Check Server Before Runtime 在服务器初始化之前运行运行时代码检查以确保没有任何故障。如果没有另一个诊断检查失败,此检查将永远不会失败。