このページは、まだ日本語ではご利用いただけません。翻訳中です。
古いプラグインバージョンのドキュメントを閲覧しています。
You can use the HTTP Log plugin to send Kong Gateway logs to Splunk.
Note: The following example uses Splunk 9.0.2. If you are using a different version of Splunk, check the Splunk documentation for the appropriate method.
Prerequisites
You have a Splunk authorization token.
Send raw text to HEC
To send raw text, use the /services/collector/raw Splunk endpoint.
For example, assuming that Splunk is running at https://example.splunkcloud.com:8088/ and its secure token is 123456,
you can enable an HTTP Log plugin instance using the following configuration:
次のリクエストを行います。
curl -X POST http://localhost:8001/services/{serviceName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "http-log",
  "config": {
    "headers": {
      "Authorization": "Splunk 123456"
    },
    "http_endpoint": "https://example.splunkcloud.com:8088/services/collector/raw",
    "method": "POST",
    "timeout": 3000,
    "retry_count": 1
  }
}
    '
| SERVICE_NAME | IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 | 
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: http-log-example
plugin: http-log
config:
  headers:
    Authorization: Splunk 123456
  http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
  method: POST
  timeout: 3000
  retry_count: 1
" | kubectl apply -f -
次に、次のようにserviceに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate service SERVICE_NAME konghq.com/plugins=http-log-example
SERVICE_NAMEを、このプラグイン構成が対象とするサービスの名前に置き換えます。 kubectl get serviceを実行すると、利用可能なイングレスを確認できます。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: http-log
  service: SERVICE_NAME|ID
  config:
    headers:
      Authorization: Splunk 123456
    http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
    method: POST
    timeout: 3000
    retry_count: 1
| SERVICE_NAME | IDを、このプラグイン構成の対象となるサービスの idまたはnameに置き換えてください。 | 
前提条件: パーソナルアクセストークンの設定
terraform {
  required_providers {
    konnect = {
      source  = "kong/konnect"
    }
  }
}
provider "konnect" {
  personal_access_token = "kpat_YOUR_TOKEN"
  server_url            = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_http_log" "my_http_log" {
  enabled = true
  config = {
    headers = {
      Authorization = "Splunk 123456"
    }
    http_endpoint = "https://example.splunkcloud.com:8088/services/collector/raw"
    method = "POST"
    timeout = 3000
    retry_count = 1
  }
  control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
  service = {
    id = konnect_gateway_service.my_service.id
  }
}
次のリクエストを行います。
curl -X POST http://localhost:8001/routes/{routeName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "http-log",
  "config": {
    "headers": {
      "Authorization": "Splunk 123456"
    },
    "http_endpoint": "https://example.splunkcloud.com:8088/services/collector/raw",
    "method": "POST",
    "timeout": 3000,
    "retry_count": 1
  }
}
    '
| ROUTE_NAME | IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 | 
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: http-log-example
plugin: http-log
config:
  headers:
    Authorization: Splunk 123456
  http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
  method: POST
  timeout: 3000
  retry_count: 1
" | kubectl apply -f -
次に、次のようにingressに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate ingress INGRESS_NAME konghq.com/plugins=http-log-example
INGRESS_NAMEを、このプラグイン構成がターゲットとするイングレス名に置き換えます。 kubectl get ingressを実行すると、利用可能なイングレスを確認できます。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: http-log
  route: ROUTE_NAME|ID
  config:
    headers:
      Authorization: Splunk 123456
    http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
    method: POST
    timeout: 3000
    retry_count: 1
| ROUTE_NAME | IDを、このプラグイン構成が対象とするルートのid またはnameに置き換えてください。 | 
前提条件: パーソナルアクセストークンの設定
terraform {
  required_providers {
    konnect = {
      source  = "kong/konnect"
    }
  }
}
provider "konnect" {
  personal_access_token = "kpat_YOUR_TOKEN"
  server_url            = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_http_log" "my_http_log" {
  enabled = true
  config = {
    headers = {
      Authorization = "Splunk 123456"
    }
    http_endpoint = "https://example.splunkcloud.com:8088/services/collector/raw"
    method = "POST"
    timeout = 3000
    retry_count = 1
  }
  control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
  route = {
    id = konnect_gateway_route.my_route.id
  }
}
次のリクエストを行います。
curl -X POST http://localhost:8001/consumers/{consumerName|Id}/plugins \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "http-log",
  "config": {
    "headers": {
      "Authorization": "Splunk 123456"
    },
    "http_endpoint": "https://example.splunkcloud.com:8088/services/collector/raw",
    "method": "POST",
    "timeout": 3000,
    "retry_count": 1
  }
}
    '
| CONSUMER_NAME | IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 | 
まず、KongPlugin リソースを作成します:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: http-log-example
plugin: http-log
config:
  headers:
    Authorization: Splunk 123456
  http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
  method: POST
  timeout: 3000
  retry_count: 1
" | kubectl apply -f -
次に、次のようにKongConsumerオブジェクトに注釈を付けて、KongPluginリソースをイングレスに適用します。
kubectl annotate KongConsumer CONSUMER_NAME konghq.com/plugins=http-log-example
CONSUMER_NAMEを、このプラグイン構成が対象とするコンシューマーの名前に置き換えます。 kubectl get KongConsumerを実行すると、利用可能なコンシューマを確認できます。
KongConsumerオブジェクトの詳細については、 コンシューマと認証情報のプロビジョニングをご参照ください。
注: KongPluginリソースは一度だけ定義するだけで、ネームスペース内の任意のサービス、コンシューマー、またはルートに適用できます。プラグインをクラスター全体で利用可能にしたい場合は、KongPluginの代わりにKongClusterPluginとしてリソースを作成してください。
このセクションを宣言型構成ファイルに追加します。
plugins:
- name: http-log
  consumer: CONSUMER_NAME|ID
  config:
    headers:
      Authorization: Splunk 123456
    http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
    method: POST
    timeout: 3000
    retry_count: 1
| CONSUMER_NAME | IDを、このプラグイン構成の対象となるコンシューマのidまたはnameに置き換えてください。 | 
前提条件: パーソナルアクセストークンの設定
terraform {
  required_providers {
    konnect = {
      source  = "kong/konnect"
    }
  }
}
provider "konnect" {
  personal_access_token = "kpat_YOUR_TOKEN"
  server_url            = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_http_log" "my_http_log" {
  enabled = true
  config = {
    headers = {
      Authorization = "Splunk 123456"
    }
    http_endpoint = "https://example.splunkcloud.com:8088/services/collector/raw"
    method = "POST"
    timeout = 3000
    retry_count = 1
  }
  control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
  consumer = {
    id = konnect_gateway_consumer.my_consumer.id
  }
}
次のリクエストを行います。
curl -X POST http://localhost:8001/plugins/ \
    --header "accept: application/json" \
    --header "Content-Type: application/json" \
    --data '
    {
  "name": "http-log",
  "config": {
    "headers": {
      "Authorization": "Splunk 123456"
    },
    "http_endpoint": "https://example.splunkcloud.com:8088/services/collector/raw",
    "method": "POST",
    "timeout": 3000,
    "retry_count": 1
  }
}
    '
KongClusterPlugin作成する リソースを作成し、グローバルとしてラベル付けします。
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
  name: <global-http-log>
  annotations:
    kubernetes.io/ingress.class: kong
  labels:
    global: "true"
config:
  headers:
    Authorization: Splunk 123456
  http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
  method: POST
  timeout: 3000
  retry_count: 1
plugin: http-log
宣言型構成ファイルにpluginsエントリを追加します。
plugins:
- name: http-log
  config:
    headers:
      Authorization: Splunk 123456
    http_endpoint: https://example.splunkcloud.com:8088/services/collector/raw
    method: POST
    timeout: 3000
    retry_count: 1
前提条件: パーソナルアクセストークンの設定
terraform {
  required_providers {
    konnect = {
      source  = "kong/konnect"
    }
  }
}
provider "konnect" {
  personal_access_token = "kpat_YOUR_TOKEN"
  server_url            = "https://us.api.konghq.com/"
}
Kong Konnectゲートウェイプラグインを作成するには、Terraform 構成に以下を追加します。
resource "konnect_gateway_plugin_http_log" "my_http_log" {
  enabled = true
  config = {
    headers = {
      Authorization = "Splunk 123456"
    }
    http_endpoint = "https://example.splunkcloud.com:8088/services/collector/raw"
    method = "POST"
    timeout = 3000
    retry_count = 1
  }
  control_plane_id = konnect_gateway_control_plane.my_konnect_cp.id
}
Based on this configuration, the HTTP Log plugin sends the logs to https://example.splunkcloud.com:8088/services/collector/raw with a secure token.
Logs are sent as JSON objects. See the Log Format reference for details.
 
                      