はじめに
本記事では、Macマシン(M1チップ搭載)上でInstana Agentのログを収集し、OpenTelemetry Collectorを活用してInstanaバックエンドに送信する手順を解説します。
アーキテクチャ
実現ステップ
1. Instana Agentのダウンロードと展開
2. Agent側にInstana Backend関連情報の設定
以下のファイルを編集し、Instanaバックエンドのホスト、ポート、プロトコル、エージェントキーを設定します。
ファイル: /Users/userXXX/Downloads/installations/instana-agent_static/etc/instana/com.instana.agent.main.sender.Backend.cfg
host=ingress-XXXXX-saas.instana.io
port=443
protocol=HTTP/2
key=XXXXXXXXXXXXXXX
3. OpenTelemetry Collection Pluginの有効化
以下の設定を追加し、OpenTelemetry Collection Pluginを有効化します。
ファイル: /Users/userXXX/Downloads/installations/instana-agent_static/etc/instana/configuration.yaml
# OpenTelemetry Collector
com.instana.plugin.opentelemetry:
enabled: true
4. OpenTelemetry Collector Contribのダウンロード
以下のコマンドを使用して、Opentelemetryの公式サイトからMac M1に対応したOpenTelemetry Collector Contribをダウンロードします。
curl -L https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.116.1/otelcol-contrib_0.116.1_darwin_arm64.tar.gz -o otelcol-contrib.tar.gz
補足情報:
OpenTelemetry Collectorには、Core(otelcol)とContrib(otelcol-contrib)の2つのバージョンがあります。Coreは最小限の基本機能を提供し、パフォーマンスに優れていますが、Contribは拡張機能が豊富で、ファイルログやシスログなど追加のReceiversやProcessorsをサポートしています。今回の場合に、Contribを利用することになります。
5. OpenTelemetry Collectorの設定
ダウンロードしたアーカイブを展開し、otelcol-contrib
バイナリと同じディレクトリに以下の内容でmac_config.yaml
を作成します。
mac_config.yamlの例
receivers:
filelog:
include: [ "/Users/userXXX/Downloads/installations/instana-agent_static/data/log/agent.log" ]
include_file_path: true
include_file_name: true
preserve_leading_whitespaces: true
operators:
- type: recombine
combine_field: body
is_first_entry: body matches "^[^\\s]"
source_identifier: attributes["log.file.path"]
processors:
transform/severity_parse:
log_statements:
- context: log
statements:
- set(severity_text, "Fatal") where IsMatch(body.string, ".*FATAL.*")
- set(severity_text, "Error") where IsMatch(body.string, ".*ERROR.*")
- set(severity_text, "Warn") where IsMatch(body.string, ".*WARN.*")
- set(severity_text, "Info") where IsMatch(body.string, ".*INFO.*")
batch: {}
exporters:
otlp/instanaAgent:
endpoint: "localhost:4317"
tls:
insecure: true
service:
pipelines:
logs:
receivers: [filelog]
processors: [transform/severity_parse, batch]
exporters: [otlp/instanaAgent]
6. OpenTelemetry Collectorの起動
以下のコマンドを使用してOTEL Collectorを起動します。
./otelcol-contrib --config=./mac_config.yaml
7. Instana Agentの起動
Instana Agentのインストールディレクトリに移動し、以下のコマンドでAgentを起動します。
./start
ステータスを確認します。
./status
8. ポートの確認
以下のコマンドを使用してポート4317
と4318
がリッスンされているかを確認します。
% netstat -a | grep 4317
% netstat -a | grep 4318
9. Instana UIでエージェントの確認
Instana UIにアクセスし、Macのエージェントが検知されているか確認します。
10. ログ収集の確認
Instana UIの「分析」→「ログ」画面で、エージェントログが収集されているか確認します。