パート2: CollectorとSplunk Enterpriseインスタンスを設定する 🔗
Docker Composeを使用してサービスを設定したので、OpenTelemetry Collector設定のSplunk Distributionを作成してすべてのCollectorコンポーネントを組み立て、Splunk Enterpriseインデックス設定を作成します。チュートリアルの概要については、Tutorial: Use the Collector to send container logs to Splunk Enterprise を参照してください。
Collector の設定 🔗
Collectorはコンテナログを収集し、Splunk Enterpriseサービスに送信します。以下の手順に従ってCollectorを設定します:
ログ収集ディレクトリにotel-collector-config.ymlというファイルを作成します。
otel-collector-config.ymlファイルで、2つのロギングサービスからログを収集するために使用されるレシーバーを定義します:
receivers: # Each filelog receiver requires a unique name that follows the slash. filelog/output1: # The include field specifies the path from which the receiver collects the container logs. include: [ /output1/file.log ] filelog/output2: include: [ /output2/file.log ]
otel-collector-config.ymlファイルのレシーバーの後に、収集したログデータをSplunk Enterpriseで使用するために変換するプロセッサーを定義します:
# ... processors: # The batch processor helps regulate the data flow from the receivers. batch: # The transform processor is configured to set the `com.splunk.index` attribute to `index2` # for the logs with a `logging2` message, and `index1` for all other logs. transform: log_statements: - context: log statements: - set(attributes["com.splunk.index"], "index1") - set(attributes["com.splunk.index"], "index2") where ParseJSON(body)["message"] == "logging2" # The groupbyattrs processor groups the logs by their `com.splunk.index` attribute, # which is either `index1` or `index2`. groupbyattrs: keys: - com.splunk.index
otel-collector-config.ymlファイルのプロセッサーの後に、ログをSplunkサーバーのHTTP Event Collector (HEC) に送信するために使用するエクスポーターを定義します:
# ... exporters: splunk_hec/logs: # Splunk HTTP Event Collector token. token: "00000000-0000-0000-0000-0000000000000" # Splunk instance URL where the exporter sends the log data. endpoint: "https://splunk:8088/services/collector" tls: # Skips checking the certificate of the HEC endpoint when sending data over HTTPS. insecure_skip_verify: true
otel-collector-config.ymlファイルでエクスポーターを定義した後、サービスを定義します。このサービスは、3つのコンポーネントタイプを通じてロギングデータのフローを編成する
logs
パイプラインで構成されます:# ... service: pipelines: logs: receivers: [ filelog/output1, filelog/output2 ] processors: [ transform, groupbyattrs, batch ] exporters: [ splunk_hec/logs ]
Configure the Splunk Enterprise indexes 🔗
Splunk Enterpriseインデックスは、CollectorがSplunk Enterpriseサービスに送信するデータを格納します。以下の手順に従ってインデックスを設定します:
ログ収集ディレクトリにsplunk.ymlというファイルを作成します。
splunk.ymlファイルで、
index1
とindex2
インデックスを定義します:splunk: conf: indexes: directory: /opt/splunk/etc/apps/search/local content: index1: coldPath: $SPLUNK_DB/index1/colddb datatype: event homePath: $SPLUNK_DB/index1/db maxTotalDataSizeMB: 512000 thawedPath: $SPLUNK_DB/index1/thaweddb index2: coldPath: $SPLUNK_DB/index2/colddb datatype: event homePath: $SPLUNK_DB/index2/db maxTotalDataSizeMB: 512000 thawedPath: $SPLUNK_DB/index2/thaweddb
Next step 🔗
これで、Collectorを使用してコンテナログを収集、処理、エクスポートするコンポーネントを定義し、ログを保存するSplunk Enterpriseインデックスを定義しました。次に、Docker Composeを使用してサービスをデプロイし、すべてが期待通りに動作することを確認します。続行するには、Part 3: Deploy and verify the environment を参照してください。
さらに詳しく 🔗
For more information about the Collector, see Splunk Distribution of the OpenTelemetry Collector の利用開始.
For more information about the components used in this Collector configuration see the following documentation:
For more examples of how to use the HEC exporter, see https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/splunkhecexporter on GitHub.
Splunk Enterpriseインデックスの設定については、Splunk Enterprise 管理者マニュアル の`indexes.conf<https://docs.splunk.com/Documentation/Splunk/9.2.1/Admin/Indexesconf>`__ を参照してください。