# 安装 Collector

LLMS index: [llms.txt](/llms.txt)

---

你可以在多种操作系统和多种架构上部署 OpenTelemetry Collector。
以下说明展示了如何下载并安装 Collector 的最新稳定版本。

如果你还不熟悉 OpenTelemetry Collector 的部署模型、组件和相关代码库，
请先查阅[数据收集][Data Collection]和[部署方法][Deployment Methods]页面。

## Docker

以下命令会拉取一个 Docker 镜像，并在容器中运行 Collector。
将 `0.149.0` 替换为你想要运行的 Collector 版本。

   <ul class="nav nav-tabs" id="tabs-1" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
          data-td-tp-persist="dockerhub" aria-controls="tabs-01-00" aria-selected="true">
        DockerHub
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
          data-td-tp-persist="ghcr.io" aria-controls="tabs-01-01" aria-selected="false">
        ghcr.io
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-1-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker pull otel/opentelemetry-collector-contrib:0.149.0
</span></span><span class="line"><span class="cl">docker run otel/opentelemetry-collector-contrib:0.149.0
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-01-01" role="tabpanel" aria-labelled-by="tabs-01-01-tab" tabindex="1">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker pull ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
</span></span><span class="line"><span class="cl">docker run ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
</span></span></code></pre></div>
    </div>
</div>


要从你的工作目录加载一个自定义配置文件，将该文件挂载为卷：

   <ul class="nav nav-tabs" id="tabs-2" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab"
          data-td-tp-persist="dockerhub" aria-controls="tabs-02-00" aria-selected="true">
        DockerHub
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab"
          data-td-tp-persist="ghcr.io" aria-controls="tabs-02-01" aria-selected="false">
        ghcr.io
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-2-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-02-00" role="tabpanel" aria-labelled-by="tabs-02-00-tab" tabindex="2">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker run -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:0.149.0
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-02-01" role="tabpanel" aria-labelled-by="tabs-02-01-tab" tabindex="2">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker run -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/config.yaml:/etc/otelcol-contrib/config.yaml ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.149.0
</span></span></code></pre></div>
    </div>
</div>


## Docker Compose

你可以像以下示例那样，将 OpenTelemetry Collector 添加到你现有的 `docker-compose.yaml` 文件中：

```yaml
otel-collector:
  image: otel/opentelemetry-collector-contrib
  volumes:
    - ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yaml
  ports:
    - 1888:1888 # pprof 扩展
    - 8888:8888 # Collector 暴露的 Prometheus 指标
    - 8889:8889 # Prometheus 导出器指标
    - 13133:13133 # health_check 扩展
    - 4317:4317 # OTLP gRPC 接收器
    - 4318:4318 # OTLP HTTP 接收器
    - 55679:55679 # zpages 扩展
```

## Kubernetes

以下命令将部署一个以 DaemonSet 形式运行的代理和一个网关实例：

```sh
kubectl apply -f https://raw.githubusercontent.com/open-telemetry/opentelemetry-collector/v0.149.0/examples/k8s/otel-config.yaml
```

上述示例旨在作为起点，在实际生产使用前需要进行扩展和定制。
有关生产环境的定制和安装，请参阅 [OpenTelemetry Helm Chart][OpenTelemetry Helm Charts]。

你也可以使用 [OpenTelemetry Operator][] 来配置和维护一个 OpenTelemetry Collector 实例，
其功能包括自动升级处理、基于 OpenTelemetry 配置的 `Service` 配置、自动将边车注入 Deployment 等。

有关如何在 Kubernetes 中使用 Collector 的指南，请参阅
[Kubernetes 入门指南](/docs/platforms/kubernetes/getting-started/)。

## Nomad

你可以[在 HashiCorp Nomad 上开始使用 OpenTelemetry][Getting Started with OpenTelemetry on HashiCorp Nomad]中找到将
Collector 作为代理、网关以及完整演示部署的参考作业文件。

## Linux

每个 Collector 发布版本都包含适用于 Linux amd64/arm64/i386 系统的 APK、DEB 和
RPM 安装包。安装后你可以在 `/etc/otelcol/config.yaml` 中找到默认配置。

> 注意：需要 `systemd` 才能进行自动服务配置。

### DEB 安装 {#deb-installation}

要在 Debian 系统上开始使用，请运行以下命令：

    <ul class="nav nav-tabs" id="tabs-4" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-04-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-00" role="tab"
          data-td-tp-persist="amd64" aria-controls="tabs-04-00" aria-selected="true">
        AMD64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-04-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-01" role="tab"
          data-td-tp-persist="arm64" aria-controls="tabs-04-01" aria-selected="false">
        ARM64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-04-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-02" role="tab"
          data-td-tp-persist="i386" aria-controls="tabs-04-02" aria-selected="false">
        i386
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-4-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-04-00" role="tabpanel" aria-labelled-by="tabs-04-00-tab" tabindex="4">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get -y install wget
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_amd64.deb
</span></span><span class="line"><span class="cl">sudo dpkg -i otelcol_0.149.0_linux_amd64.deb
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-04-01" role="tabpanel" aria-labelled-by="tabs-04-01-tab" tabindex="4">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get -y install wget
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_arm64.deb
</span></span><span class="line"><span class="cl">sudo dpkg -i otelcol_0.149.0_linux_arm64.deb
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-04-02" role="tabpanel" aria-labelled-by="tabs-04-02-tab" tabindex="4">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo apt-get update
</span></span><span class="line"><span class="cl">sudo apt-get -y install wget
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_386.deb
</span></span><span class="line"><span class="cl">sudo dpkg -i otelcol_0.149.0_linux_386.deb
</span></span></code></pre></div>
    </div>
</div>


### RPM 安装 {#rpm-installation}

要在 Red Hat 系统上开始使用，请运行以下命令：

    <ul class="nav nav-tabs" id="tabs-5" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-05-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-05-00" role="tab"
          data-td-tp-persist="amd64" aria-controls="tabs-05-00" aria-selected="true">
        AMD64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-05-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-05-01" role="tab"
          data-td-tp-persist="arm64" aria-controls="tabs-05-01" aria-selected="false">
        ARM64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-05-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-05-02" role="tab"
          data-td-tp-persist="i386" aria-controls="tabs-05-02" aria-selected="false">
        i386
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-5-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-05-00" role="tabpanel" aria-labelled-by="tabs-05-00-tab" tabindex="5">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo yum update
</span></span><span class="line"><span class="cl">sudo yum -y install wget systemctl
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_amd64.rpm
</span></span><span class="line"><span class="cl">sudo rpm -ivh otelcol_0.149.0_linux_amd64.rpm
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-05-01" role="tabpanel" aria-labelled-by="tabs-05-01-tab" tabindex="5">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo yum update
</span></span><span class="line"><span class="cl">sudo yum -y install wget systemctl
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_arm64.rpm
</span></span><span class="line"><span class="cl">sudo rpm -ivh otelcol_0.149.0_linux_arm64.rpm
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-05-02" role="tabpanel" aria-labelled-by="tabs-05-02-tab" tabindex="5">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo yum update
</span></span><span class="line"><span class="cl">sudo yum -y install wget systemctl
</span></span><span class="line"><span class="cl">wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_386.rpm
</span></span><span class="line"><span class="cl">sudo rpm -ivh otelcol_0.149.0_linux_386.rpm
</span></span></code></pre></div>
    </div>
</div>


### Linux 手动安装 {#manual-linux-installation}

Linux [版本][releases]提供了多种架构版本供下载。你可以下载包含可执行文件的压缩包并手动安装：

     <ul class="nav nav-tabs" id="tabs-6" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-06-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-00" role="tab"
          data-td-tp-persist="amd64" aria-controls="tabs-06-00" aria-selected="true">
        AMD64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-06-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-01" role="tab"
          data-td-tp-persist="arm64" aria-controls="tabs-06-01" aria-selected="false">
        ARM64
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-06-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-02" role="tab"
          data-td-tp-persist="i386" aria-controls="tabs-06-02" aria-selected="false">
        i386
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-06-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-06-03" role="tab"
          data-td-tp-persist="ppc64le" aria-controls="tabs-06-03" aria-selected="false">
        ppc64le
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-6-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-06-00" role="tabpanel" aria-labelled-by="tabs-06-00-tab" tabindex="6">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_amd64.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_linux_amd64.tar.gz
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-06-01" role="tabpanel" aria-labelled-by="tabs-06-01-tab" tabindex="6">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_arm64.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_linux_arm64.tar.gz
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-06-02" role="tabpanel" aria-labelled-by="tabs-06-02-tab" tabindex="6">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_386.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_linux_386.tar.gz
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-06-03" role="tabpanel" aria-labelled-by="tabs-06-03-tab" tabindex="6">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_linux_ppc64le.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_linux_ppc64le.tar.gz
</span></span></code></pre></div>
    </div>
</div>


### 自动服务配置 {#automatic-service-configuration}

默认情况下，`otelcol` systemd 服务在安装后会以 `--config=/etc/otelcol/config.yaml` 选项启动。

要使用不同的设置，请在 `/etc/otelcol/otelcol.conf` systemd 环境文件中设置 `OTELCOL_OPTIONS`
变量为相应的命令行选项。你可以运行 `/usr/bin/otelcol --help` 来查看所有可用选项。
你还可以通过将其他环境变量添加到该文件中来传递给 `otelcol` 服务。

如果你修改了 Collector 的配置文件或 `/etc/otelcol/otelcol.conf`，请通过以下命令重启 `otelcol` 服务以应用更改：

```sh
sudo systemctl restart otelcol
```

要查看 `otelcol` 服务的输出，请运行：

```sh
sudo journalctl -u otelcol
```

## macOS

macOS [发布版本][releases] 适用于 Intel 和 ARM 系统。发布包为
gzip 压缩的 tarball（`.tar.gz`）。要解压它们，请运行以下命令：

   <ul class="nav nav-tabs" id="tabs-7" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-07-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-07-00" role="tab"
          data-td-tp-persist="intel" aria-controls="tabs-07-00" aria-selected="true">
        Intel
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-07-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-07-01" role="tab"
          data-td-tp-persist="arm" aria-controls="tabs-07-01" aria-selected="false">
        ARM
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-7-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-07-00" role="tabpanel" aria-labelled-by="tabs-07-00-tab" tabindex="7">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_darwin_amd64.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_darwin_amd64.tar.gz
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-07-01" role="tabpanel" aria-labelled-by="tabs-07-01-tab" tabindex="7">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">curl --proto <span class="s1">&#39;=https&#39;</span> --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.149.0/otelcol_0.149.0_darwin_arm64.tar.gz
</span></span><span class="line"><span class="cl">tar -xvf otelcol_0.149.0_darwin_arm64.tar.gz
</span></span></code></pre></div>
    </div>
</div>


每个 Collector 发布版本都包含一个解压后可运行的 `otelcol` 可执行文件。

## Windows

Windows [发布版本][releases]被打包为 gzip 压缩的 tarball（`.tar.gz`）。每个
Collector 发布版本都包含一个可运行的 `otelcol.exe` 可执行文件。

## 从源码构建 {#build-from-source}

你可以使用以下命令基于本地操作系统构建最新版本的 Collector：

```sh
git clone https://github.com/open-telemetry/opentelemetry-collector.git
cd opentelemetry-collector
make install-tools
make otelcorecol
```

[data collection]: /docs/concepts/components/#collector
[deployment methods]: /docs/collector/deploy/
[opentelemetry helm charts]: /docs/platforms/kubernetes/helm/
[opentelemetry operator]: /docs/platforms/kubernetes/operator/
[getting started with opentelemetry on hashicorp nomad]: https://github.com/hashicorp/nomad-open-telemetry-getting-started
[releases]: https://github.com/open-telemetry/opentelemetry-collector-releases/releases
