> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 本地日志和指标

> ClickStack 本地及系统数据与指标入门

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

本入门指南可帮助你收集系统中的本地日志和指标，并将其发送到 ClickStack 进行可视化与分析。

**本示例仅适用于 OSX 和 Linux 系统**

<Tabs>
  <Tab title="托管 ClickStack">
    本指南假设您已完成[托管 ClickStack 入门指南](/zh/clickstack/deployment/managed)，并已[记录连接凭据](/zh/clickstack/getting-started/managed#next-steps)。

    <Steps>
      <Step>
        ### 创建自定义 OpenTelemetry 配置

        创建 `custom-local-config.yaml` 文件，内容如下：

        ```yaml theme={null}
        receivers:
          filelog:
            include:
              - /host/var/log/**/*.log        # 来自主机的 Linux 日志
              - /host/var/log/syslog
              - /host/var/log/messages
              - /host/private/var/log/*.log   # 来自主机的 macOS 日志
            start_at: beginning
            resource:
              service.name: "system-logs"

          hostmetrics:
            collection_interval: 1s
            scrapers:
              cpu:
                metrics:
                  system.cpu.time:
                    enabled: true
                  system.cpu.utilization:
                    enabled: true
              memory:
                metrics:
                  system.memory.usage:
                    enabled: true
                  system.memory.utilization:
                    enabled: true
              filesystem:
                metrics:
                  system.filesystem.usage:
                    enabled: true
                  system.filesystem.utilization:
                    enabled: true
              paging:
                metrics:
                  system.paging.usage:
                    enabled: true
                  system.paging.utilization:
                    enabled: true
                  system.paging.faults:
                    enabled: true
              disk:
              load:
              network:
              processes:

        service:
          pipelines:
            logs/local:
              receivers: [filelog]
              processors:
                - memory_limiter
                - batch
              exporters:
                - clickhouse
            metrics/hostmetrics:
              receivers: [hostmetrics]
              processors:
                - memory_limiter
                - batch
              exporters:
                - clickhouse
        ```

        此配置会收集 OSX 和 Linux 系统的系统日志和指标，并将结果发送到 ClickStack。该配置通过添加新的 receivers 和 pipelines 来扩展 ClickStack collector——你将引用基础 ClickStack collector 中已配置好的 `clickhouse` exporter 和 processors (`memory_limiter`、`batch`) 。

        <Info>
          **摄取时间戳**

          此配置会在摄取时调整时间戳，为每个事件分配更新后的时间值。理想情况下，你应在日志文件中使用 OTel processors 或 operators [预处理或解析时间戳](/zh/clickstack/ingesting-data/collector#processing-filtering-transforming-enriching)，以确保保留准确的事件时间。

          在此示例配置中，如果 receiver 或 file processor 被设置为从文件开头开始读取，则所有现有日志条目都会被赋予相同的调整后时间戳——也就是处理时的时间，而不是原始事件时间。之后追加到文件中的任何新事件，则会获得接近其实际生成时间的时间戳。

          为避免这种情况，你可以在 receiver 配置中将起始位置设为 `end`。这样可以确保只摄取新条目，并为其赋予接近真实到达时间的时间戳。
        </Info>

        有关 OpenTelemetry (OTel) 配置结构的更多信息，建议参阅[官方指南](https://opentelemetry.io/docs/collector/configuration/)。
      </Step>

      <Step>
        ### 启动 OpenTelemetry collector

        使用以下命令运行一个独立的 collector：

        ```shell theme={null}
        docker run -d \
          -p 4317:4317 -p 4318:4318 \
          --user 0:0 \
          -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
          -e CLICKHOUSE_ENDPOINT=${CLICKHOUSE_ENDPOINT} \
          -e CLICKHOUSE_USER=${CLICKHOUSE_USER} \
          -e CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD} \
          -v "$(pwd)/custom-local-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
          -v /var/log:/host/var/log:ro \
          -v /private/var/log:/host/private/var/log:ro \
          clickhouse/clickstack-otel-collector:latest
        ```

        collector 会立即开始收集本地系统日志和指标。
      </Step>

      <Step>
        ### 选择服务

        在 ClickHouse Cloud 主页面中，选择“托管 ClickStack”服务。

        <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/clickstack/select_service.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=98520705294af4f35b2987edef838ced" alt="选择服务" size="lg" width="3600" height="2040" data-path="images/clickstack/select_service.png" />
      </Step>

      <Step>
        ### 查看系统日志

        在左侧菜单中选择 `ClickStack`，进入 ClickStack UI 后，系统会自动完成身份验证。

        搜索 UI 中应已显示本地系统日志。展开过滤器，选择 `system.log`：

        <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-20.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=8c5ca8991d6f3dbba2f9f8f7f2e5de69" alt="HyperDX 本地日志" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-20.png" />
      </Step>

      <Step>
        ### 查看系统指标

        我们可以使用图表查看指标。

        通过左侧菜单进入 Chart Explorer。选择数据源 `Metrics`，并将聚合类型设为 `Maximum`。

        在 `Select a Metric` 菜单中，只需输入 `memory`，然后选择 `system.memory.utilization (Gauge)`。

        点击 `运行` 按钮，即可将内存利用率随时间变化的情况可视化。

        <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-21.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=11d30c7fd4793825f3e858ee26089d27" alt="内存随时间变化" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-21.png" />

        注意，返回的数值是浮点数形式的 `%` 值。为了更清晰地显示，请选择 `Set number format`。

        <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-22.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=42f0e4400582e559607ac4ff11faa383" alt="数值格式" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-22.png" />

        在随后出现的菜单中，从 `Output format` 下拉菜单里选择 `Percentage`，然后点击 `Apply`。

        <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-23.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=252e038070214d2e62012f75c67e77d9" alt="内存百分比随时间变化" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-23.png" />
      </Step>
    </Steps>
  </Tab>

  <Tab title="ClickStack 开源版">
    ### 创建自定义 OpenTelemetry 配置

    创建一个 `custom-local-config.yaml` 文件，内容如下：

    ```yaml theme={null}
    receivers:
      filelog:
        include:
          - /host/var/log/**/*.log        # 来自主机的 Linux 日志
          - /host/var/log/syslog
          - /host/var/log/messages
          - /host/private/var/log/*.log   # 来自主机的 macOS 日志
        start_at: beginning
        resource:
          service.name: "system-logs"

      hostmetrics:
        collection_interval: 1s
        scrapers:
          cpu:
            metrics:
              system.cpu.time:
                enabled: true
              system.cpu.utilization:
                enabled: true
          memory:
            metrics:
              system.memory.usage:
                enabled: true
              system.memory.utilization:
                enabled: true
          filesystem:
            metrics:
              system.filesystem.usage:
                enabled: true
              system.filesystem.utilization:
                enabled: true
          paging:
            metrics:
              system.paging.usage:
                enabled: true
              system.paging.utilization:
                enabled: true
              system.paging.faults:
                enabled: true
          disk:
          load:
          network:
          processes:

    service:
      pipelines:
        logs/local:
          receivers: [filelog]
          processors:
            - memory_limiter
            - batch
          exporters:
            - clickhouse
        metrics/hostmetrics:
          receivers: [hostmetrics]
          processors:
            - memory_limiter
            - batch
          exporters:
            - clickhouse
    ```

    此配置收集 OSX 和 Linux 系统的系统日志与指标，并将结果发送至 ClickStack。该配置通过添加新的接收器和管道来扩展 ClickStack collector——您可以引用已在基础 ClickStack collector 中配置的 `clickhouse` exporter 和处理器 (`memory_limiter`、`batch`) 。

    <Info>
      **摄取时间戳**

      此配置会在摄取时调整时间戳，为每个事件分配更新后的时间值。理想情况下，建议使用 OTel 处理器或日志文件中的 operator 来[预处理或解析时间戳](/zh/clickstack/ingesting-data/collector#processing-filtering-transforming-enriching)，以确保保留准确的事件时间。

      在此示例配置中，如果 receiver 或 file processor 被配置为从文件开头开始读取，则所有现有日志条目都会被赋予相同的调整后时间戳——也就是处理时间，而不是原始事件时间。之后追加到文件中的任何新事件，将获得接近其实际生成时间的时间戳。

      为避免这种情况，你可以在 receiver 配置中将起始位置设为 `end`。这样可确保只摄取新条目，并为其分配接近真实到达时间的时间戳。
    </Info>

    有关 OpenTelemetry (OTel) 配置结构的更多详情，请参阅[官方指南](https://opentelemetry.io/docs/collector/configuration/)。

    ### 使用自定义配置启动 ClickStack

    运行以下 docker 命令，使用自定义配置启动一体化容器：

    ```shell theme={null}
    docker run -d --name clickstack \
      -p 8080:8080 -p 4317:4317 -p 4318:4318 \
      --user 0:0 \
      -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
      -v "$(pwd)/custom-local-config.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
      -v /var/log:/host/var/log:ro \
      -v /private/var/log:/host/private/var/log:ro \
      clickhouse/clickstack-all-in-one:latest
    ```

    <Info>
      **Root 用户**

      我们以 root 用户身份运行 collector，以访问所有系统日志——这是访问基于 Linux 的系统中受保护路径下日志所必需的。不过，这种做法不建议用于 production 环境。在 production 环境中，应将 OpenTelemetry Collector 部署为本地 agent，并且只授予其访问目标日志来源所需的最小权限。

      请注意，我们将主机的 `/var/log` 挂载到容器内的 `/host/var/log`，以避免与容器自身的日志文件发生冲突。
    </Info>

    ### 探索系统日志

    如果在本地部署，请访问 [http://localhost:8080](http://localhost:8080) 以访问 ClickStack UI。

    数据源应已为您预先创建。搜索界面中应已填充本地系统日志。展开过滤器以选择 `system.log`：

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-20.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=8c5ca8991d6f3dbba2f9f8f7f2e5de69" alt="HyperDX 本地日志" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-20.png" />

    ### 探索系统指标

    我们可以使用图表来探索指标。

    通过左侧菜单进入 Chart Explorer。将 source 选择为 `Metrics`，并将聚合类型设置为 `Maximum`。

    在 `Select a Metric` 菜单中，先输入 `memory`，再选择 `system.memory.utilization (Gauge)`。

    点击运行按钮，即可可视化内存使用率随时间的变化情况。

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-21.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=11d30c7fd4793825f3e858ee26089d27" alt="内存随时间变化" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-21.png" />

    请注意，该数值以浮点数 `%` 的形式返回。若要使其显示更直观，请选择 `Set number format`。

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-22.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=42f0e4400582e559607ac4ff11faa383" alt="数字格式" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-22.png" />

    在随后出现的菜单中，您可以从 `Output format` 下拉菜单中选择 `Percentage`，然后点击 `Apply`。

    <Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/FZqG0tBuMc0GoOY1/images/use-cases/observability/hyperdx-23.png?fit=max&auto=format&n=FZqG0tBuMc0GoOY1&q=85&s=252e038070214d2e62012f75c67e77d9" alt="内存时间占比" size="lg" width="4800" height="2700" data-path="images/use-cases/observability/hyperdx-23.png" />
  </Tab>
</Tabs>
