> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/welcome/cn/elastic-compute/get-started/create-an-instance/install-qemu-guest-agent.md).

# 安装 QEMU Guest Agent

[QEMU Guest Agent](https://qemu-project.gitlab.io/qemu/interop/qemu-ga.html) 是一个辅助守护进程，安装在虚拟机内部。它用于在主机和虚拟机之间交换信息，并在虚拟机内部执行命令。该代理使用 QEMU 的原生虚拟机代理。官方代理在安全性认证、维护和支持方面是一个全面且可靠的选择。

弹性算力通过 zenConsole 中的 **性能** 选项卡提供您的实例指标的高级视图。所有实例在创建时都有基本的性能数据可用。然而，安装 QEMU 虚拟机代理可以提供更深入的实例行为洞察，包括以下附加指标：

* 系统负载平均值 - 最近 1 分钟
* 系统负载平均值 - 最近 5 分钟
* 系统负载平均值 - 最近 15 分钟
* 内存利用率
* 磁盘利用率
* 运行时间

{% hint style="info" %} <mark style="color:blue;">**注**</mark>

* <mark style="color:blue;">只有在创建实例时选择了默认的公网 IP，QEMU 虚拟机代理才能成功安装并收集数据。</mark>
* <mark style="color:blue;">对于 Windows 操作系统，默认已安装 QEMU 虚拟机代理。您可以根据需要禁用数据收集。</mark>
  {% endhint %}

对于使用 Rocky、CentOS、AlmaLinux、Alpine 和 FreeBSD 操作系统的实例，您需要手动配置代理以激活它，具体步骤如下。

### **Rocky/CentOS/AlmaLinux**

代理默认是禁用的。您需要修改 `/etc/sysconfig/qemu-ga` 文件。

1. 使用文本编辑器打开文件：

   ```bash
   sudo vi /etc/sysconfig/qemu-ga
   ```
2. 更新 `FILTER_RPC_ARGS` 以启用所需的 RPC。添加以下行或在已存在的情况下进行修改：

   <pre class="language-sh"><code class="lang-sh"><strong>FILTER_RPC_ARGS="--block-rpcs=guest-file-seek,guest-file-flush,guest-exec,guest-exec-status"
   </strong>
   # 虚拟机代理命令，用逗号分隔允许的 RPC 以启用，
   # 或者为空列表以禁用所有 RPC。
   #
   # 您可以使用 "qemu-ga --allow-rpcs='?'" 获取 RPC 命令列表。
   # 在允许列表中，逗号和命令之间不应有空格。
   FILTER_RPC_ARGS="--allow-rpcs=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-sync-delimited,guest-sync,guest-ping,guest-get-time,guest-set-time,guest-info,guest-shutdown,guest-fsfreeze-status,guest-fsfreeze-freeze,guest-fsfreeze-freeze-list,guest-fsfreeze-thaw,guest-fstrim,guest-suspend-disk,guest-suspend-ram,guest-suspend-hybrid,guest-network-get-interfaces,guest-get-vcpus,guest-set-vcpus,guest-get-disks,guest-get-fsinfo,guest-set-user-password,guest-get-memory-blocks,guest-set-memory-blocks,guest-get-memory-block-info,guest-get-host-name,guest-get-users,guest-get-timezone,guest-get-osinfo,guest-get-devices,guest-ssh-get-authorized-keys,guest-ssh-add-authorized-keys,guest-ssh-remove-authorized-keys,guest-get-diskstats,guest-get-cpustats"
   </code></pre>
3. 重启 QEMU 虚拟机代理服务

   ```sh
   sudo systemctl restart qemu-guest-agent
   ```

### **Alpine Linux**

代理默认是禁用的。

1. 启动 QEMU 虚拟机代理服务：

   ```bash
   sudo rc-service qemu-guest-agent start
   ```
2. 检查 QEMU 虚拟机代理服务的状态：

   ```bash
   sudo rc-service qemu-guest-agent status
   ```
3. 编辑 QEMU 虚拟机代理的初始化脚本：
   * 使用文本编辑器打开初始化脚本：

     ```bash
     sudo vi /etc/init.d/qemu-guest-agent
     ```
   * 找到 `command_args` 行并修改它以启用详细日志记录：

     ```sh
     command_args="--verbose -m ${GA_METHOD:-virtio-serial} -p ${GA_PATH:-/dev/virtio-ports/org.qemu.guest_agent.0} -l /var/log/qemu-ga.log -d"
     ```
4. 重启 QEMU 虚拟机代理服务：

   ```bash
   sudo rc-service qemu-guest-agent restart
   ```

### **FreeBSD**

代理默认是禁用的。

1. 使用文本编辑器打开 QEMU 虚拟机代理配置文件：

   ```bash
   sudo vi /etc/rc.conf
   ```
2. 添加以下行以启用 QEMU 虚拟机代理服务：

   ```sh
   qemu_guest_agent_enable="YES"
   ```
3. 启动 QEMU 虚拟机代理服务：

   ```sh
   sudo service qemu_guest_agent start
   ```
4. 检查 QEMU 虚拟机代理服务的状态：

   ```sh
   sudo service qemu_guest_agent status
   ```

代理默认是禁用的。您可以查看[官方文档](https://www.freshports.org/emulators/qemu-guest-agent)以获取更多详细信息。

代理默认是禁用的。您可以查看[官方文档](https://www.freshports.org/emulators/qemu-guest-agent)以获取更多详细信息。

1. 修改 `/etc/rc.conf` 以启用 QEMU guest agent：
   * 使用文本编辑器打开 `/etc/rc.conf`：

     ```sh
     sudo vi /etc/rc.conf
     ```
   * 添加以下行以启用和配置 QEMU guest agent：

     ```sh
     qemu_guest_agent_enable="YES"
     qemu_guest_agent_flags="-d -v -l /var/log/qemu-ga.log"
     ```
2. 启动 QEMU guest agent 服务：

   ```sh
   sudo service qemu-guest-agent start
   ```
3. 验证 QEMU guest agent 服务的状态：

   ```sh
   sudo service qemu-guest-agent status
   ```

#### 预期输出

* 服务未运行时的状态：

  ```sh
  sudo service qemu-guest-agent status
  qemu_guest_agent 未运行。
  ```
* 服务启动时的输出：

  ```sh
  sudo service qemu-guest-agent start
  启动 qemu_guest_agent。
  1715676493.359902: debug: Guest agent version 8.2.2 started
  ```
* 服务运行时的状态：

  ```sh
  sudo service qemu-guest-agent status
  qemu_guest_agent 正在以进程 ID 2051 运行。
  ```
