

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

# 高级配置
<a name="inspector-vm-scanner-advanced-config"></a>

 本节介绍了 Inspector VM 扫描仪的高级配置选项。

## 配置本地输出
<a name="inspector-vm-scanner-local-outputs"></a>

 Inspector 虚拟机扫描器提供以下选项来配置本地输出的写入方式：
+ `--send-results`必须设置为`telemetry`或`disabled`。如果你通过`disabled`，检查员虚拟机扫描器将不发送 SBOM 就继续进行操作。

**提示**  
`--state-dir`与一起`--send-results disabled`使用可在本地保存 SBOM。
+ `--log-dir`配置写入日志的位置。默认情况下，日志写入标准输出。
+ `--log-level`配置日志的粒度。默认情况下，这是信息。
+ `--log-retention`配置保留日志的天数。如果发现的日志文件早`--log-retention`于中的值`--log-dir`，则会将其删除。默认情况下，这是 7 天。
+ `--debug`配置调试级别的日志记录并强制为当前执行创建专用的日志文件（而不是尝试每天维护一个日志文件）。
+ `--state-dir`配置 sBOM 的写入位置。默认情况下，不保存 sBOM。
+ `--metric-dir`配置指标日志的写入位置。默认情况下，不保存指标日志。
+ `--cpu-profile`启用 Go 运行时 CPU 分析器并配置写入结果的位置。
+ `--mem-profile`启用 Go 运行时内存分析器并配置写入结果的位置。
+ `--config-path`指示 Inspector VM 扫描器从本地配置文件中派生参数。如果在 CLI 和配置文件中都传递相同的参数，则优先考虑 CLI 值。
  + 检查器虚拟机扫描器配置文件在 TOML 中指定，所有参数名称都与 CLI 相同。
  + 默认情况下，Inspector VM Scanner 在 Linux 和 macOS `/opt/aws/inspector/etc/config` 上或在`C:\\ProgramData\\Amazon\\Inspector\\Config\\config`上查找配置文件Windows。该文件没有扩展名，但使用 TOML 格式。
  + 当您指定时`--config-path`，指定的路径优先于默认路径。

 以下示例显示了一个配置文件：

```
# Configuration file for Inspector VM Scanner
log-level = "INFO"
send-results = "telemetry"
cpu-profile = "cpuprofile"
mem-profile = "memprofile"
log-dir = "log"
state-dir = "state"
debug = false
log-retention = 7
scan-timeout = 300

[sbom]
max-scan-depth = 5
target-directory = ["~"]
```

## 配置资源使用情况
<a name="inspector-vm-scanner-resource-usage"></a>

 Inspector VM 扫描器提供以下选项来配置资源使用情况：
+ `--scan-timeout`强制扫描仪在指定的秒数后超时。默认情况下，扫描仪不会超时。
+ `--nice-priority`设置进程的`nice`优先级（适用于 Unix 系统）。默认情况下，这是 3。
+ `--cpu-limit`对 CPU 使用率设置了硬性上限（适用于使用 Linux 的系统`cgroups`）。默认情况下，这是 65%。
+ `--process-priority`配置进程的优先级（适用于Windows系统）。默认情况下，这是`BELOW NORMAL`优先级。

**注意**  
`--cpu-limit`和`--process-priority`的默认值与 Inspector SSM 插件相同。

## 配置扫描目标
<a name="inspector-vm-scanner-scan-targets"></a>

 Inspector VM Scanner 利用检查员 SBOM 生成器进行库存收集。因此，Inspector VM Scanner 的许多扫描覆盖范围选项都直接从 SBOM 生成器中获取。

 默认情况下，Inspector 虚拟机扫描器不会扫描您的整个文件系统。它收集操作系统包，并在Windows其上使用Windows更新（知识库）数据来识别需要更新的系统软件。它还会检查常用编程语言包及其依赖项的常见安装位置。

 安装在自定义或非标准位置（例如非系统驱动器上的数据库或应用程序服务器）的软件，只有在添加时才会对其进行扫描。要涵盖此类软件，请将其作为自定义路径添加到您的 Amazon EC2 扫描设置中。在 “增强 EC2 扫描” 下，自定义路径适用于LinuxWindows、和macOS实例，除默认位置外，还会进行扫描。有关更多信息，请参阅 Amazon Inspector 深度检查的[自定义路径](https://docs.amazonaws.cn/inspector/latest/user/scanning-resources.html#deep-inspection-paths)。

 您还可以在调用 VM Scanner 期间使用本节中的高级选项为每个实例添加目录。除了默认目录外，`--target-directory`还会扫描您添加的目录。

 Inspector 虚拟机扫描器提供以下选项来配置扫描目标：
+ `--max-scan-depth`配置扫描从每个扫描位置穿过的最大目录级别数。
+ `--target-directory`除默认目录外，还添加一个或多个要扫描的目录。例如，在配置文件中`[sbom]`，将其指定为数组`target-directory = ["D:\\oracle"]`。
+ `--override-scanners`配置精确的文件扫描器，覆盖 Inspector 虚拟机扫描器的默认值。
+ `--additional-scanners`将文件扫描器配置为在 Inspector 虚拟机扫描器默认值之外使用。

 您可以使用以下命令列出所有可用的扫描仪：

```
./inspector-vm-scanner sbom --list-scanners
```

## 管理定期执行
<a name="inspector-vm-scanner-periodic-execution"></a>

 当你通过软件包管理器安装 Inspector VM Scanner 时，安装会创建一个自动执行扫描的计划任务。您可以查看、修改或禁用此时间表。

### Linux (systemd)
<a name="inspector-vm-scanner-linux-systemd"></a>

 **查看服务状态和最近的运行情况 ** 

```
systemctl status inspector-vm-scanner
```

 **查看实时日志 ** 

```
journalctl -u inspector-vm-scanner -f
```

 **查看最近的日志 ** 

```
journalctl -u inspector-vm-scanner --since "1 hour ago"
```

 **检查当前的计时器间隔 ** 

```
systemctl cat inspector-vm-scanner.timer
```

#### 更改扫描间隔
<a name="inspector-vm-scanner-change-interval"></a>

**重要**  
 不要`/usr/lib/systemd/system/`直接在中编辑单元文件。软件包更新会覆盖这些文件。`systemctl edit`改为使用，这将创建可在更新后生效的永久替代。

 默认间隔是每 3 小时一次。要更改它，请运行：

```
sudo systemctl edit inspector-vm-scanner.timer
```

 在打开的编辑器中，添加以下内容（此示例将间隔设置为 6 小时）：

```
[Timer]
OnBootSec=
OnUnitActiveSec=
OnBootSec=0
OnUnitActiveSec=21600s
```

 在您的值生效之前，空分配会清除默认值。保存后，重新启动计时器：

```
sudo systemctl daemon-reload
sudo systemctl restart inspector-vm-scanner.timer
```

 要验证替代是否生效，请运行`systemctl cat inspector-vm-scanner.timer`。要恢复为默认值，请运行`sudo systemctl revert inspector-vm-scanner.timer`。

#### 启用或禁用自动执行
<a name="inspector-vm-scanner-enable-disable"></a>

```
sudo systemctl enable inspector-vm-scanner.timer   # Enable automatic runs.
sudo systemctl disable inspector-vm-scanner.timer  # Disable automatic runs.
```

### Windows （任务计划程序）
<a name="inspector-vm-scanner-windows-task-scheduler"></a>

 **查看任务状态和上次运行时间 ** 

```
Get-ScheduledTask -TaskName "Inspector VM Scanner" | Get-ScheduledTaskInfo
```

 **查看最近的任务日志 ** 

```
Get-ScheduledTaskInfo -TaskName "Inspector VM Scanner"
```

 **查看详细的任务历史记录 ** 

```
schtasks /query /tn "Inspector VM Scanner" /v /fo list
```

 **查看当前任务计划 ** 

```
Get-ScheduledTask -TaskName "Inspector VM Scanner" | Select-Object -ExpandProperty Triggers
```

 **更新任务计划 ** 

 要更改扫描频率，请执行以下操作：

```
# Modify trigger to run daily at 2 AM
$trigger = New-ScheduledTaskTrigger -Daily -At 2:00AM
Set-ScheduledTask -TaskName "Inspector VM Scanner" -Trigger $trigger
```

 **启用或禁用任务 ** 

```
Enable-ScheduledTask -TaskName "Inspector VM Scanner"   # Enable automatic runs
Disable-ScheduledTask -TaskName "Inspector VM Scanner"  # Disable automatic runs
```

### macOS（已启动）
<a name="inspector-vm-scanner-macos-launchd"></a>

 **查看已启动的任务 ** 

```
sudo launchctl print system/com.amazon.inspector.vm-scanner
```

 **执行单个任务 ** 

```
sudo launchctl start com.amazon.inspector.vm-scanner
```