配置清单收集 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置清单收集

本节说明如何将Amazon Web Services Systems Manager使用 Systems Manager 控制台在一个或多个托管实例上收集清单。有关如何配置清单收集的示例,请使用Amazon命令行界面 (AmazonCLI),请参阅Systems Manager 清单演练

配置清单收集时,首先创建Amazon Web Services Systems ManagerState Manager 关联。Systems Manager 会在关联运行时收集清单数据。如果您不先创建关联,并试图调用aws:softwareInventory插件,例如,Amazon Web Services Systems Manager运行命令时,系统将返回以下错误:

The aws:softwareInventory plugin can only be invoked via ssm-associate.
注意

如果您为实例创建多个清单关联,请注意以下行为。

  • 可以为每个实例分配一个目标全部实例(— 目标 “key = 实例 ID,值 =*”)。

  • 还可以为每个实例分配一个特定的关联,该关联使用标签键/值对或Amazon资源组。

  • 如果为某个实例分配了多个清单关联,则状态显示Skipped对于尚未运行的关联。最近运行的关联显示库存关联的实际状态。

  • 如果为一个实例分配了多个清单关联,并且每个实例都使用一个标签键/值对,则由于标签冲突,这些清单关联无法在实例上运行。关联仍在没有标签键/值冲突的实例上运行。

开始前的准备工作

配置清单收集前,请完成以下任务。

  • 更新Amazon Web Services Systems ManagerSSM 代理上的实例上的 SSM 代理。通过运行最新版本的 SSM Agent,可确保您能够收集所有支持的清单类型的元数据。有关如何使用状态管理器更新 SSM 代理的信息,请参阅。演练:自动更新 SSM 代理 (CLI)

  • 验证您的实例是否满足 Systems Manager 先决条件。有关更多信息,请参阅 Systems Manager 的先决条件

  • 对于微软 Windows 实例,请验证您的实例是否已使用 Windows PowerShell 3.0(或更高版本)配置。SSM 代理使用ConvertTo-JsonPowerShell 将 Windows 更新清单数据转换为所需格式。

  • (可选)创建资源数据同步以将清单数据集中存储在 Amazon S3 存储桶中。在收集新的清单数据时,资源数据同步自动更新集中式数据。有关更多信息,请参阅 为 Inventory 配置资源数据同步

  • (可选) 创建用于收集自定义清单的 JSON 文件。有关更多信息,请参阅 使用自定义清单

清单您的所有托管实例Amazon Web Services 账户

您可以轻松创建Amazon Web Services 账户创建全局清单关联。全局清单关联执行以下操作:

  • 自动将全局清单配置(关联)应用到您的所有现有托管实例Amazon Web Services 账户。应用和运行全局清单关联时,将跳过已具有清单关联的实例。跳过某个实例时,详细状态消息将说明 Overridden By Explicit Inventory Association。全局关联跳过了这些实例,但在它们运行所分配的清单关联时,仍会报告清单。

  • 将创建的新实例自动添加Amazon Web Services 账户添加到全局清单关联。

注意
  • 如果为全局清单关联配置了某个实例,并且您将特定关联分配到该实例,则 Systems Manager 清单会降低全局关联的优先级并应用该特定关联。

  • 全局清单关联在 SSM 代理版本 2.0.790.0 或更高版本中可用。有关如何在实例上更新 SSM 代理的信息,请参阅。使用 Run Command 更新 SSM 代理

一键式配置清单收集(控制台)

可以使用以下过程为配置 Systems Manager 清单。Amazon Web Services 账户并在单个Amazon Web Services 区域。

配置 Systems Manager 清单的当前区域中的所有托管实例

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择清单

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( ) 以打开导航窗格中的,然后选择清单在导航窗格中。

  3. Managed instances with inventory enabled (启用了清单的托管实例) 卡上,选择 Click here to enable inventory on all instances (单击此处在所有实例上启用清单)

    
                                在当前的所有实例上启用 Systems Manager 清单Amazon Web Services 账户和Amazon Web Services 区域。

    如果成功,控制台会显示以下消息。

    
                                在当前的所有实例上启用 Systems Manager 清单Amazon Web Services 账户和Amazon Web Services 区域。

    根据您账户中的托管实例的数量,可能需要几分钟才能应用全局库存关联。等待几分钟,然后刷新页面。验证图形更改是否反映在所有托管实例上配置了清单。

使用控制台配置收集

本节包含有关如何通过使用 System Management 控制台将系统 Management Inventory 配置为收集托管实例中的元数据的信息。您可以快速收集特定Amazon Web Services 账户(以及可能在该账户中创建的任何未来实例),也可以选择通过使用标签或实例 ID 收集清单数据。

配置清单收集

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择清单

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( ) 以打开导航窗格中的,然后选择清单在导航窗格中。

  3. 选择设置清单

  4. 目标部分中,通过选择以下选项之一来标识您要运行此操作的实例。

    • Selecting all managed instances in this account (选择此账户中的所有托管实例) – 此选项选择没有现有清单关联的所有托管实例。如果您选择此选项,则在清单收集期间将跳过所有已有清单关联的实例,然后在清单结果中显示状态为已跳过。有关更多信息,请参阅 清单您的所有托管实例Amazon Web Services 账户

    • 指定标签 – 此选项可让您指定单个标签,用于标识您的账户中要收集其清单的实例。如果使用标签,则将来使用相同标签创建的所有实例也将报告清单。如果现有清单关联到所有实例,可以针对 All managed instances (所有托管实例) 目标组中的不同清单覆盖实例成员资格,使用标签选择特定实例作为目标。未来通过 All managed instances (所有托管实例) 选项进行清单收集的时候,将跳过具有指定标签的实例。

    • 手动选择实例 – 此选项可让您选择账户中的特定托管实例。使用此选项明确选择特定实例将覆盖 All managed instances (所有托管实例) 目标上的清单关联。未来通过 All managed instances (所有托管实例) 进行清单收集的时候,将跳过该实例。

      注意

      如果未列出您希望看到的 Amazon EC2 实例,请参阅Amazon EC2 托管实例可用性疑难解答了解故障排除提示。

  5. 计划部分中,选择您希望系统从实例中收集清单元数据的频率。

  6. Parameters 部分,使用列表启用或禁用不同类型的清单收集。如果要针对文件Windows 注册表创建清单搜索,请参阅以下示例。

    Files

    • 在 Linux 和macOS中,会收集 .sh 文件的元数据/home/ec2-user目录,不包括所有子目录。

      [{"Path":"/home/ec2-user","Pattern":["*.sh", "*.sh"],"Recursive":false}]
    • 在 Windows 上,会以递归方式收集程序文件夹 (包括子目录) 中的所有“.exe”文件的元数据。

      [{"Path":"C:\Program Files","Pattern":["*.exe"],"Recursive":true}]
    • 在 Windows 上,会收集指定日志模式的元数据。

      [{"Path":"C:\ProgramData\Amazon","Pattern":["*amazon*.log"],"Recursive":true}]
    • 在执行递归集合时会限制目录计数。

      [{"Path":"C:\Users","Pattern":["*.ps1"],"Recursive":true, "DirScanLimit": 1000}]

    Windows 注册表

    • 以递归方式针对特定路径收集所有键和值。

      [{"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Amazon","Recursive": true}]
    • 针对特定路径收集所有键和值 (禁用递归搜索)。

      [{"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Intel\PSIS\PSIS_DECODER", "Recursive": false}]
    • 使用 ValueNames 选项收集特定键。

      {"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\MachineImage","ValueNames":["AMIName"]}

    有关收集文件和 Windows 注册表清单的更多信息,请参阅使用文件和 Windows 注册表清单

  7. Advanced部分,选择将清单执行日志同步到 Amazon S3 存储桶如果您希望将关联执行状态存储到 Amazon S3 存储桶中,请参阅。

  8. 选择设置清单。Systems Manager 创建状态管理器关联并立即在实例上运行 Inventory。

  9. 在导航窗格中,选择状态管理器。验证是否创建了新的关联使用AWS-GatherSoftwareInventory文档. 关联计划使用 Rate 表达式。此外,确认 Status 字段显示 Success。如果选择将清单执行日志同步到 Amazon S3 存储桶,则过几分钟后,可以在 Amazon S3 中查看日志数据。要查看特定实例的清单数据,请在导航窗格中选择 Managed Instances

  10. 选择一个实例,然后选择 View details

  11. 在实例详细信息页面上,选择 Inventory。使用 Inventory type 列表筛选清单。