Elasticsearchクエリ
Elasticsearch Query モニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください
Splunk Distribution of OpenTelemetry Collector は、elasticsearch-queryモニタータイプの Smart Agent レシーバーを使用して、Elasticsearch からメトリクス化された集約レスポンスを取得します。このインテグレーションにより、Elasticsearch 集約タイプと集約名に基づいて Splunk Observability Cloud のデータポイントが構築されます。
メリット
インテグレーションを設定すると、これらの機能にアクセスできるようになります:
-
メトリクスを表示します。独自のカスタムダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードの詳細については、「Splunk Observability Cloudでダッシュボードを表示する」を参照してください。
-
Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他リソースのデータ駆動型の視覚化を表示します。ナビゲータの詳細については、「Splunk Infrastructure Monitoring でナビゲーターを使用する」を参照してください。
-
Metric Finder へアクセスし、モニターから送信されたメトリクスを検索します。詳細は、「メトリクス・ファインダーとメタデータ・カタログを検索する」を参照してください。
データモデルの変換
このインテグレーションは、Elasticsearch のレスポンスを Splunk Observability Cloud のデータポイントに変換します。
高いレベルでは、以下のようなタイプの反応を評価します:
-
termsおよびfilters集約などの 1 つ以上のバケット集約内のメトリクス集約。データポイントのディメンションは、集約名(ディメンション名)と各バケットのkey(ディメンション値)によって決定されます。メトリクス名は、メトリクス集約名のタイプと、複数値集約の場合のその値から派生します。metric_aggregation_typeというディメンションも、対応するデータポイントに設定されます。 -
バケット集約なしで適用されるメトリクス集約は、同じように変換されます。
-
サブ集約としてメトリクス集約を持たないバケット集約は、
<name_of_aggregation>.doc_countと呼ばれるメトリクスに変換され、各バケットのkeyとは別にbucket_aggregation_nameディメンションを持ちます。
string フィールドに対して実行する必要があります。例:avgメトリクス集計
terms バケット集約のサブ集約としての avg メトリクス集約:
```json
{
"aggs":{
"host" : {
"terms":{"field" : "host"},
"aggs": {
"average_cpu_usage": {
"avg": {
"field": "cpu_utilization"
}
}
}
}
}
}
```
このクエリの結果は、elasticsearch_query.average_cpu_usage と呼ばれるメトリクスになり、データポイントは host ディメンションを持ち、その値はレスポンス内のバケットの key となります。メトリクス集約のタイプ(avg)は、metric_aggregation_type ディメンションとしてデータポイント上に設定されます。
例えば、以下の json は4つのデータポイントを提供し、それぞれ host の値が異なります:
```json
"aggregations" : {
"host" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "helsinki",
"doc_count" : 13802,
"average_cpu_usage" : {
"value" : 49.77438052456166
}
},
{
"key" : "lisbon",
"doc_count" : 13802,
"average_cpu_usage" : {
"value" : 49.919866685987536
}
},
{
"key" : "madrid",
"doc_count" : 13802,
"average_cpu_usage" : {
"value" : 49.878350963628456
}
},
{
"key" : "nairobi",
"doc_count" : 13802,
"average_cpu_usage" : {
"value" : 49.99789885523837
}
}
]
}
}
```
例:extended_stats メトリクス集約
terms バケット集約のサブ集約としての extended_stats メトリクス集約:
```json
{
"aggs":{
"host" : {
"terms":{"field" : "host"},
"aggs": {
"cpu_usage_stats": {
"extended_stats": {
"field": "cpu_utilization"
}
}
}
}
}
}
```
```json
"aggregations" : {
"host" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "helsinki",
"doc_count" : 13996,
"cpu_usage_stats" : {
"count" : 13996,
"min" : 0.0,
"max" : 100.0,
"avg" : 49.86660474421263,
"sum" : 697933.0
}
},
{
"key" : "lisbon",
"doc_count" : 13996,
"cpu_usage_stats" : {
"count" : 13996,
"min" : 0.0,
"max" : 100.0,
"avg" : 49.88225207202058,
"sum" : 698152.0
}
},
{
"key" : "madrid",
"doc_count" : 13996,
"cpu_usage_stats" : {
"count" : 13996,
"min" : 0.0,
"max" : 100.0,
"avg" : 49.92469276936267,
"sum" : 698746.0
}
},
{
"key" : "nairobi",
"doc_count" : 13996,
"cpu_usage_stats" : {
"count" : 13996,
"min" : 0.0,
"max" : 100.0,
"avg" : 49.98320948842527,
"sum" : 699565.0
}
}
]
}
}
```
この場合、各バケットは5つのメトリクスを出力します:
1. `cpu_usage_stats.count`
2. `cpu_usage_stats.min`
3. `cpu_usage_stats.max`
4. `cpu_usage_stats.avg`
5. `cpu_usage_stats.sum`
ディメンションは前の例と同じ方法で導き出されます。
インストール
このインテグレーションを導入するには、以下の手順に従ってください:
-
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/elasticsearch-query:
type: elasticsearch-query
... # Additional config
次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:
service:
pipelines:
metrics:
receivers: [smartagent/elasticsearch-query]
設定オプション
Splunk Distribution of OpenTelemetry Collector がどのように既存の環境を統合し、補完できるかを示す具体的な使用例については、GitHub の設定例を参照してください。
Kubernetesについては、GitHubのkubernetes.yamlでエージェントとゲートウェイのYAMLファイルを参照してください。
Prometheus については、GitHub の Prometheus Federation Endpoint Example で、OTel Collector が Splunk Enterprise と既存の Prometheus デプロイメントでどのように動作するかの例を参照してください。
コンフィギュレーション設定
次の表に、このインテグレーションの設定オプションを示します:
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
いいえ |
| 読み取りと書き込みの両方の操作に対する HTTP タイムアウト時間。これは、 「https://golang.org/pkg/time/#ParseDuration」が受け付ける継続時間文字列である必要があります。(デフォルト: |
|
|
いいえ |
|
各リクエストで使用される Basic Auth ユーザー名 (ある場合)。 |
|
|
いいえ |
|
各リクエストで使用するBasic Authパスワード (ある場合)。 |
|
|
いいえ |
| trueの場合、エージェントはHTTPSを使用してサーバに接続します プレーン HTTP の代わりに HTTPS を使用します。(デフォルト: |
|
|
いいえ |
| HTTP ヘッダー名と値のマップ。同じメッセージヘッダーの カンマ区切りの複数の値もサポートしています。 |
|
|
いいえ |
| useHTTPSがtrueで、このオプションもtrueの場合、エクスポータ TLS 証明書は検証されません。(デフォルト: |
|
|
いいえ |
| TLS証明書に署名したCA証明書へのパス。
|
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLS証明書へのパス |
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLSキーへのパス |
|
|
〇 |
| |
|
|
〇 |
| |
|
|
いいえ |
| クエリ対象のインデックス。何も指定されていない場合、所与のクエリが すべてのインデックスに適用されます。検索クエリを複数のインデックスに適用するには、インデックスをカンマ区切りで指定します(デフォルト: |
|
|
はい |
| Elasticsearch リクエストボディの検索リクエストを受け取ります。詳細については、 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html の Elasticsearch ドキュメントを参照してください。 |
メトリクス
Splunk Distribution of OpenTelemetry Collector は、このレシーバーに対してメトリクスの組み込みフィルターリングを行いません。
トラブルシューティング
__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____
_________ __ ______ _____________ _____ _________
-
______ _ ____ __ ___ ______ _______ _______
-
_______ ______ ________
_________ __ ___________ _________ ___ ____ _____ _____
-
___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________
-
____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______