|
| 1 | +--- |
| 2 | +title: OpenTelemetry Collector Contribをインストールする |
| 3 | +linkTitle: 1.1 インストールを確認する |
| 4 | +weight: 1 |
| 5 | +--- |
| 6 | + |
| 7 | +## Collector が動作していることを確認する |
| 8 | + |
| 9 | +これで、Collector が動いているはずです。root権限で `systemctl` コマンドを使って、それを確かめてみましょう。ステータス表示を中止するには `q` を押してください。 |
| 10 | + |
| 11 | +{{< tabs >}} |
| 12 | +{{% tab title="Command" %}} |
| 13 | + |
| 14 | +``` bash |
| 15 | +sudo systemctl status otelcol-contrib |
| 16 | +``` |
| 17 | + |
| 18 | +{{% /tab %}} |
| 19 | +{{% tab title="Status Output" %}} |
| 20 | + |
| 21 | +``` text |
| 22 | +● otelcol-contrib.service - OpenTelemetry Collector Contrib |
| 23 | + Loaded: loaded (/lib/systemd/system/otelcol-contrib.service; enabled; vendor preset: enabled) |
| 24 | + Active: active (running) since Tue 2023-05-16 08:23:23 UTC; 25s ago |
| 25 | + Main PID: 1415 (otelcol-contrib) |
| 26 | + Tasks: 5 (limit: 1141) |
| 27 | + Memory: 22.2M |
| 28 | + CPU: 125ms |
| 29 | + CGroup: /system.slice/otelcol-contrib.service |
| 30 | + └─1415 /usr/bin/otelcol-contrib --config=/etc/otelcol-contrib/config.yaml |
| 31 | +
|
| 32 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: NumberDataPoints #0 |
| 33 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: Data point attributes: |
| 34 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: -> exporter: Str(logging) |
| 35 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: -> service_instance_id: Str(df8a57f4-abdc-46b9-a847-acd62db1001f) |
| 36 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: -> service_name: Str(otelcol-contrib) |
| 37 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: -> service_version: Str(0.75.0) |
| 38 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: StartTimestamp: 2023-05-16 08:23:39.006 +0000 UTC |
| 39 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: Timestamp: 2023-05-16 08:23:39.006 +0000 UTC |
| 40 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: Value: 0.000000 |
| 41 | +May 16 08:23:39 ip-10-0-9-125 otelcol-contrib[1415]: {"kind": "exporter", "data_type": "metrics", "name": "logging"} |
| 42 | +``` |
| 43 | + |
| 44 | +{{% /tab %}} |
| 45 | +{{< /tabs >}} |
| 46 | + |
| 47 | +このワークショップでは、ここで設定した `otelcol-contrib` のスタンドアローンで動作するバイナリーを使っていきます。サービスを停止して、自動起動を無効化するために、次のコマンドを使ってください: |
| 48 | + |
| 49 | +{{< tabs >}} |
| 50 | +{{% tab title="Command" %}} |
| 51 | + |
| 52 | +``` bash |
| 53 | +sudo systemctl stop otelcol-contrib |
| 54 | +``` |
| 55 | + |
| 56 | +{{% /tab %}} |
| 57 | +{{< /tabs >}} |
| 58 | + |
| 59 | +{{< tabs >}} |
| 60 | +{{% tab title="Command" %}} |
| 61 | + |
| 62 | +``` bash |
| 63 | +sudo systemctl disable otelcol-contrib |
| 64 | +``` |
| 65 | + |
| 66 | +{{% /tab %}} |
| 67 | +{{< /tabs >}} |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +{{% expand title="{{% badge style=primary icon=user-ninja %}}**Ninja:** Open Telemetry Collector Builder (ocb) を使って、独自のコレクターを作る {{% /badge %}}" %}} |
| 72 | + |
| 73 | +このパートでは、お使いのシステムに以下のものがインストールされている必要があります: |
| 74 | + |
| 75 | +- Go (latest version) |
| 76 | + |
| 77 | + ``` bash |
| 78 | + cd /tmp |
| 79 | + wget https://golang.org/dl/go1.20.linux-amd64.tar.gz |
| 80 | + sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz |
| 81 | + ``` |
| 82 | + |
| 83 | + `.profile` を編集して、次の環境変数をセットします: |
| 84 | + |
| 85 | + ``` bash |
| 86 | + export GOROOT=/usr/local/go |
| 87 | + export GOPATH=$HOME/go |
| 88 | + export PATH=$GOPATH/bin:$GOROOT/bin:$PATH |
| 89 | + ``` |
| 90 | + |
| 91 | + そして、シェルのセッションを更新します: |
| 92 | + |
| 93 | + ``` bash |
| 94 | + source ~/.profile |
| 95 | + ``` |
| 96 | + |
| 97 | + Go のバージョンを確認します: |
| 98 | + |
| 99 | + ``` bash |
| 100 | + go version |
| 101 | + ``` |
| 102 | + |
| 103 | +- ocb のインストール |
| 104 | + - ocb バイナリーを [project releases](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/cmd%2Fbuilder%2Fv0.80.0) |
| 105 | + からダウンロードして、次のコマンドを実行します: |
| 106 | + |
| 107 | + ```bash |
| 108 | + mv ocb_0.80.0_darwin_arm64 /usr/bin/ocb |
| 109 | + chmod 755 /usr/bin/ocb |
| 110 | + ``` |
| 111 | + |
| 112 | + 別のアプローチとして、Go のツールチェーンを使ってバイナリをローカルにビルドする方法もあります: |
| 113 | + |
| 114 | + ```bash |
| 115 | + go install go.opentelemetry.io/collector/cmd/[email protected] |
| 116 | + mv $(go env GOPATH)/bin/builder /usr/bin/ocb |
| 117 | + ``` |
| 118 | + |
| 119 | +- (Optional) Docker |
| 120 | + |
| 121 | +## なぜ独自のコレクターをビルドするの? |
| 122 | + |
| 123 | +コレクターのデフォルトのディストリビューション(core および contrib)は、含まれれるコンポーネントが少なすぎたり、もしくは多すぎたりします。 |
| 124 | + |
| 125 | +本番環境で contrib コレクターを実行することはできますが、インストールされているコンポーネントの量が多く、デプロイに必要ではないものも含まれるため、一般的には推奨されません。 |
| 126 | + |
| 127 | +## 独自のコレクターをビルドする利点は? |
| 128 | + |
| 129 | +独自のコレクターバイナリー(通常は「ディストリビューション」と呼ばれる)を作成することで、必要なものだけをビルドすることができます。 |
| 130 | + |
| 131 | +メリットは次のとおりです: |
| 132 | + |
| 133 | +1. バイナリーのサイズが小さい |
| 134 | +2. 一般的な Go の脆弱性スキャナーを利用できる |
| 135 | +3. 組織独自のコンポーネントを組み込むことができる |
| 136 | + |
| 137 | +## カスタムコレクターをビルドするときの注意事項は? |
| 138 | + |
| 139 | +さて、これは Ninja ゾーンの人たちにあえて言うことではないかもしれませんが: |
| 140 | + |
| 141 | +1. Go の開発経験を、必須ではないが、推奨される |
| 142 | +1. Splunk の **サポートがない** |
| 143 | +1. ディストリビューションのライフサイクルを管理しなければならない |
| 144 | + |
| 145 | +プロジェクトは安定性に向けて進んでいますが、行われた変更がワークフローを壊す可能性があることに注意してください。Splunk チームは、より高い安定性とサポートを提供し、デプロイメントニーズに対応するためのキュレーションされた経験を提供しています。 |
| 146 | + |
| 147 | +## Ninja ゾーン |
| 148 | + |
| 149 | +必要なツールをすべてインストールしたら、以下のディレクトリ構造に従い、 `otelcol-builder.yaml` という新しいファイルを作成します: |
| 150 | + |
| 151 | + |
| 152 | +``` bash |
| 153 | +. |
| 154 | +└── otelcol-builder.yaml |
| 155 | +``` |
| 156 | + |
| 157 | +ファイルを作成したら、インストールするコンポーネントのリストと追加のメタデータを追加する必要があります。 |
| 158 | + |
| 159 | +この例では、導入設定に必要なコンポーネントのみをインストールするためのビルダーマニフェストを作成します: |
| 160 | + |
| 161 | +```yaml |
| 162 | +dist: |
| 163 | + name: otelcol-ninja |
| 164 | + description: A custom build of the Open Telemetry Collector |
| 165 | + output_path: ./dist |
| 166 | +
|
| 167 | +extensions: |
| 168 | +- gomod: go.opentelemetry.io/collector/extension/ballastextension v0.80.0 |
| 169 | +- gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.80.0 |
| 170 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarder v0.80.0 |
| 171 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.80.0 |
| 172 | +
|
| 173 | +exporters: |
| 174 | +- gomod: go.opentelemetry.io/collector/exporter/loggingexporter v0.80.0 |
| 175 | +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.80.0 |
| 176 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.80.0 |
| 177 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.80.0 |
| 178 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.80.0 |
| 179 | +
|
| 180 | +processors: |
| 181 | +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.80.0 |
| 182 | +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.80.0 |
| 183 | +
|
| 184 | +receivers: |
| 185 | +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.80.0 |
| 186 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.80.0 |
| 187 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.80.0 |
| 188 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.80.0 |
| 189 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.80.0 |
| 190 | +``` |
| 191 | + |
| 192 | +_ocb_ のためのyamlファイルを作成して更新したら、 次のコマンドを実行します: |
| 193 | + |
| 194 | +```shell |
| 195 | +ocb --config=otelcol-builder.yaml |
| 196 | +``` |
| 197 | + |
| 198 | +すると、次のようなディレクトリ構造が作成されます: |
| 199 | + |
| 200 | +``` text |
| 201 | +├── dist |
| 202 | +│ ├── components.go |
| 203 | +│ ├── components_test.go |
| 204 | +│ ├── go.mod |
| 205 | +│ ├── go.sum |
| 206 | +│ ├── main.go |
| 207 | +│ ├── main_others.go |
| 208 | +│ ├── main_windows.go |
| 209 | +│ └── otelcol-ninja |
| 210 | +└── otelcol-builder.yaml |
| 211 | +``` |
| 212 | + |
| 213 | +### リファレンス |
| 214 | + |
| 215 | +1. [https://opentelemetry.io/docs/collector/custom-collector/](https://opentelemetry.io/docs/collector/custom-collector/) |
| 216 | + |
| 217 | +{{% /expand %}} |
| 218 | + |
| 219 | +--- |
| 220 | + |
| 221 | +## デフォルト設定 |
| 222 | + |
| 223 | +OpenTelemetry Collector は YAML ファイルを使って設定をしていきます。これらのファイルには、必要に応じて変更できるデフォルト設定が含まれています。提供されているデフォルト設定を見てみましょう: |
| 224 | + |
| 225 | +{{< tabs >}} |
| 226 | +{{% tab title="Command" %}} |
| 227 | + |
| 228 | +```bash |
| 229 | +cat /etc/otelcol-contrib/config.yaml |
| 230 | +``` |
| 231 | + |
| 232 | +{{% /tab %}} |
| 233 | +{{% tab title="config.yaml" %}} |
| 234 | + |
| 235 | +```yaml { lineNos="table" wrap="true"} |
| 236 | +extensions: |
| 237 | + health_check: |
| 238 | + pprof: |
| 239 | + endpoint: 0.0.0.0:1777 |
| 240 | + zpages: |
| 241 | + endpoint: 0.0.0.0:55679 |
| 242 | +
|
| 243 | +receivers: |
| 244 | + otlp: |
| 245 | + protocols: |
| 246 | + grpc: |
| 247 | + http: |
| 248 | +
|
| 249 | + opencensus: |
| 250 | +
|
| 251 | + # Collect own metrics |
| 252 | + prometheus: |
| 253 | + config: |
| 254 | + scrape_configs: |
| 255 | + - job_name: 'otel-collector' |
| 256 | + scrape_interval: 10s |
| 257 | + static_configs: |
| 258 | + - targets: ['0.0.0.0:8888'] |
| 259 | +
|
| 260 | + jaeger: |
| 261 | + protocols: |
| 262 | + grpc: |
| 263 | + thrift_binary: |
| 264 | + thrift_compact: |
| 265 | + thrift_http: |
| 266 | +
|
| 267 | + zipkin: |
| 268 | +
|
| 269 | +processors: |
| 270 | + batch: |
| 271 | +
|
| 272 | +exporters: |
| 273 | + logging: |
| 274 | + verbosity: detailed |
| 275 | +
|
| 276 | +service: |
| 277 | +
|
| 278 | + pipelines: |
| 279 | +
|
| 280 | + traces: |
| 281 | + receivers: [otlp, opencensus, jaeger, zipkin] |
| 282 | + processors: [batch] |
| 283 | + exporters: [logging] |
| 284 | +
|
| 285 | + metrics: |
| 286 | + receivers: [otlp, opencensus, prometheus] |
| 287 | + processors: [batch] |
| 288 | + exporters: [logging] |
| 289 | +
|
| 290 | + extensions: [health_check, pprof, zpages] |
| 291 | +``` |
| 292 | +
|
| 293 | +{{% /tab %}} |
| 294 | +{{< /tabs >}} |
| 295 | +
|
| 296 | +おめでとうございます!OpenTelemetry Collector のダウンロードとインストールに成功しました。あなたは OTel Ninja になる準備ができました。しかしまずは、設定ファイルと OpenTelemetry Collector の異なるディストリビューションについて見ていきましょう。 |
| 297 | +
|
| 298 | +{{% notice style="note" %}} |
| 299 | +
|
| 300 | +Splunk は、自社で完全にサポートされた OpenTelemetry Collector のディストリビューションを提供しています。このディストリビューションは、[Splunk GitHub Repository](https://github.com/signalfx/splunk-otel-collector) からインストールするか、Splunk Observability Cloud のウィザードを使用して、簡単なインストールスクリプトを作成し、コピー&ペーストすることで利用できます。このディストリビューションには、OpenTelemetry Collector Contrib ディストリビューションにはない追加機能や強化が含まれています。 |
| 301 | +
|
| 302 | +- Splunk の OpenTelemetry Collector ディストリビューションは本番環境でテスト済みであり、多くの顧客が本番環境で使用しています。 |
| 303 | +- このディストリビューションを使用する顧客は、公式の Splunk サポートから、SLA の範囲内で直接支援を受けることができます。 |
| 304 | +- メトリクスとトレース収集のコア構成体験に将来的な破壊的変更がないことを心配せずに、Splunk の OpenTelemetry Collector ディストリビューションを使用または移行することができます(OpenTelemetry ログ収集の設定はベータ版です)。Collector 自身のメトリクスに破壊的変更がある可能性はあります。 |
| 305 | +
|
| 306 | +{{% /notice %}} |
| 307 | +
|
| 308 | +このセクションでは、ホストメトリクスを Splunk Observability Cloud に送信するために、設定ファイルの各セクションを詳しく見ていき、変更する方法について説明します。 |
0 commit comments