Prometheus・エクスポーター
Prometheus エクスポータモニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください
Splunk Distribution of OpenTelemetry Collectorは、Prometheus Exporterエンドポイントからすべてのメトリクスタイプを読み取るために、Smart Agentレシーバーと prometheus-exporter モニタータイプを使用します。
Prometheus Exporter は、Prometheus 以外のシステムから統計情報を取得し、Prometheus メトリクスに変換するソフトウェアです。Prometheus メトリクスタイプの説明については、「メトリクスタイプ」を参照してください。
このモニターはKubernetes、Linux、Windowsで利用できます。
メリット
インテグレーションを設定すると、これらの機能にアクセスできるようになります:
-
メトリクスを表示します。独自のカスタムダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードの詳細については、「Splunk Observability Cloudでダッシュボードを表示する」を参照してください。
-
Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他リソースのデータ駆動型の視覚化を表示します。ナビゲータの詳細については、「Splunk Infrastructure Monitoring でナビゲーターを使用する」を参照してください。
-
Metric Finder へアクセスし、モニターから送信されたメトリクスを検索します。詳細は、「メトリクス・ファインダーとメタデータ・カタログを検索する」を参照してください。
インストール
このインテグレーションを導入するには、以下の手順に従ってください:
-
Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:
-
[設定] セクションの説明に従ってインテグレーションを設定します。
-
Splunk Distribution of OpenTelemetry Collector を再起動します。
設定
Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:
-
Smart Agent レシーバーを設定ファイルに含めます。
-
レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。
-
「Collector でSmart Agent モニターを使用する」を参照してください。
-
Smart Agent レシーバーの設定方法を参照してください。
-
一般的な構成オプションのリストについては、「モニターの共通設定」を参照してください。
-
Collector の詳細については、「はじめに:Collector を理解して使用する」を参照してください。
-
例
このインテグレーションを有効にするには、Collector構成に以下を追加します:
receivers:
smartagent/prometheus-exporter:
type: prometheus-exporter
discoveryRule: port >= 9100 && port <= 9500 && container_image =~ "exporter"
extraDimensions:
metric_source: prometheus
... # Additional config
次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:
service:
pipelines:
metrics:
receivers: [smartagent/prometheus-exporter]
Splunk Distribution of OpenTelemetry Collector が既存の環境をどのように統合し、補完できるかを示す具体的な使用例については、構成例を参照してください。
OTel Collector が Splunk Enterprise と既存の Prometheus デプロイメントでどのように動作するかの例については、GitHub の Prometheus フェデレーションエンドポイントの例を参照してください。
設定オプション
次の表は、prometheus-exporter モニターの設定オプションを示します:
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
いいえ |
| 読み取りと書き込みの両方の操作に対する HTTP タイムアウト時間。これは、 func ParseDurationが受け付ける期間文字列 |
|
|
いいえ |
|
各リクエストで使用される Basic Auth ユーザー名 (ある場合)。 |
|
|
いいえ |
|
各リクエストで使用するBasic Authパスワード (ある場合)。 |
|
|
いいえ |
| true の場合、エージェントはサーバーへの接続にプレーン HTTP の代わりに HTTPS を使用します。(デフォルト: |
|
|
いいえ |
| HTTP ヘッダー名と値のマップ。 同じメッセージヘッダーの カンマ区切りの複数の値もサポートしています。 |
|
|
いいえ |
| useHTTPSが true で、このオプションも true である場合、エクスポータの TLS 証明書は検証されません。(デフォルト: |
|
|
いいえ |
| TLS証明書に署名したCA証明書へのパス。
|
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLS証明書へのパス |
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLSキーへのパス |
|
|
はい |
|
エクスポーターのホスト |
|
|
はい |
|
エクスポーターのポート |
|
|
いいえ |
| 認証にポッドサービスアカウントを使用します。(デフォルト:
|
|
|
いいえ |
| エクスポーター・サーバー上のメトリクス・エンドポイントへのパス。通常は
|
|
|
いいえ |
| Prometheusエクスポーターから出力されるすべてのメトリクスを フィルタリングせずに送信します。このオプションは、Prometheus エクスポータモニターを直接使用する場合には、組み込みのフィルタリングがないため効果がなく、他のモニターに埋め込む場合にのみ効果があります。(デフォルト: |
認証
基本的なHTTP認証には、username と password オプションを使用します。
Kubernetes 上で、監視対象サービスに認証が必要な場合は、useServiceAccount オプションを使用して、接続時にエージェントのサービスアカウントを使用します。Smart Agent のサービスアカウントに、監視対象サービスに対する十分な権限があることを確認してください。
メトリクス
このインテグレーションで利用可能なメトリクスはありません。
Prometheusのメトリクス法換算の詳細
これがPrometheusのメトリクスの変換方法です:
-
ゲージは Splunk Infrastructure Monitoring ゲージに直接変換されます。
-
カウンターは、Infrastructure Monitoring の累積カウンターに直接変換されます。
-
タイプされていないメトリクスは、Infrastructure Monitoring ゲージに直接変換されます。
-
サマリー・メトリクスは、3つの異なるメトリクスに変換されます。
<basename>はメトリクスのルート名です:-
合計カウントは、
<basename>_countと呼ばれる累積カウンターに変換されます。 -
合計値は、
<basename>と呼ばれる累積カウンターに変換されます。 -
各分位値は、
<basename>_quantileと呼ばれるゲージに変換され、分位値を指定するquantileと呼ばれるディメンションを含みます。
-
-
ヒストグラム・メトリクスは、3つの異なるメトリクスに変換されます。
<basename>は、メトリクスのルート名です:-
合計カウントは、
<basename>_countと呼ばれる累積カウンターに変換されます。 -
合計値は、
<basename>と呼ばれる累積カウンターに変換されます。 -
各ヒストグラムのバケットは、
<basename>_bucketと呼ばれる累積カウンターに変換され、そのバケット内の最大値を指定するupper_boundと呼ばれるディメンションを含みます。このメトリクスは、上限以下の値を持つイベントの数を指定します。
-
すべてのPrometheusラベルは、Infrastructure Monitoringのディメンションに直接変換されます。
これはサービスディスカバリーをサポートしているため、port >= 9100 && port <= 9500 && containerImage =~ "exporter"のようなディスカバリールールを設定することができます。これは、標準的なエクスポータポートの範囲内にある "exporter" という単語が含まれるコンテナイメージでエクスポータを実行していることを想定しています。
Kubernetesでは、Pod specで定義されているコンテナポート名でマッチングを試みることもできます。これは、 k8s-apiオブザーバーのディスカバリールールの name 変数です。
エクスポーターは冗長になりがちなので、ここでフィルターをかけると非常に便利です。
トラブルシューティング
ログには errornet/http: HTTP/1.xtransportconnectionbroken:malformedHTTPresponse が含まれています
net/http: HTTP/1.x transport connection broken: malformed HTTP response net/http: HTTP/1.x transport connection broken: malformed HTTP response 解決策: useHTTPS で HTTPS を有効にします。
ログには errorforbidden:User\"system:anonymous\"cannotgetpath\"/metrics\" が含まれています
forbidden: User \"system:anonymous\" cannot get path \"/metrics\" forbidden: User \"system:anonymous\" cannot get path \"/metrics\" 解決方法: useServiceAccount をアクティブにして、Splunk Distribution of OpenTelemetry Collector が実行されているサービスアカウントに必要なアクセス許可があることを確認します。
サポートを受ける
__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____
_________ __ ______ _____________ _____ _________
-
______ _ ____ __ ___ ______ _______ _______
-
_______ ______ ________
_________ __ ___________ _________ ___ ____ _____ _____
-
___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________
-
____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______