Logpushジョブの管理
IBM Cloud® Internet Services エンタープライズレベルのプランでは、 HTTP、DNS、Rangeリクエストの詳細なログに加え、自社ドメインに関するファイアウォールイベントのログも確認できます。 これらのログは、デバッグや分析に役立ちます。特に、起点の Ingress のログやアプリケーション・サーバーのログなどの他のデータ・ソースと組み合わせると有用です。
開始前に
コンソールを使用してLogpushジョブを作成する前に、以下の情報を確認し、必要な前提条件を満たしてください:
-
現在、 CIS コンソールは以下の宛先をサポートしています:
- IBM Cloud ログ
- Cloud Object Storage
- IBM QRadar
- Splunk
-
Logpush を使用する前に、 ログの保存を有効にしておく ことを確認してください。
-
宛先が CIS で明示的にサポートされていない場合でも、カスタム HTTP 宛先であればLogpushでアクセスできる可能性があります。 これには、独自のカスタム HTTP ログサーバーも含まれます。
エラーを避けるため、宛先が圧縮コンテンツ
{"content":"tests"}を含むtest.txt.gzという名前の gzip ファイルアップロードを受け入れられることを確認する。 -
Splunk のみ: QRadar または Splunk にログを送信する場合、 CIS はアクセス可能な IP アドレスとポートをチェックし、 HTTP 受信者の証明書を検証します。 すべてのパラメータが有効な場合、Logpushジョブが作成され、 HTTP Receiverログソース( QRadar )または HTTP Event Collector( Splunk )にイベントの送信を開始します。
コンソールでLogpushジョブを作成する
コンソールでLogpushジョブを作成するには、以下の手順に従ってください:
-
CIS コンソールで、 アカウント > 過去ログ に移動し、 作成 をクリックする。
-
利用可能なオプションからデスティネーション・サービス・タイプを選択し、設定する:
- IBM Cloud ログ
-
-
サービスタイプのオプションから IBM Cloud ログを選択します。
-
次へ をクリックします。
-
インスタンスID を入力してください。
-
インスタンスのリージョンを選択してください。
-
APIキー を入力してください。
IBM Cloud LogsインスタンスがセットアップされているアカウントのAPIキーが必要です。 ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、 Update a Logpush job APIを 使用してローテーションすることができます。
IBM Cloud Logsサービスでは、ユーザーまたはサービスIDにSender IAMロールが付与されていなければならない。
-
次へ をクリックします。
-
- Cloud Object Storage
-
-
サービスタイプ Cloud Object Storage を選択します。
-
次へ をクリックします。
-
Cloud Object Storage インスタンス ID、バケット名、バケットリージョン、バケットパス(オプション)、API キーを入力します。
オプション:ログを日ごとのフォルダに整理するを有効にする。
Cloud Object Storage の宛先値は一意でなければなりません。 競合を避けるため、一意のバケットパスを使用してください。
Cloud Object Storage インスタンスがセットアップされているアカウント API キーが必要です。 ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、 Update a Logpush job APIを 使用してローテーションすることができます。
Cloud Object Storage サービスの場合、ユーザーまたはサービス ID は、バケットの Object Writer IAM ロールを付与されている必要があります。
-
次へ をクリックします。
-
- IBM QRadar
-
- を選択する。 IBM QRadar を選択します。
- 次へ をクリックします。
- QRadar URL を入力し、ログソースポートを選択する。
- 次へ をクリックします。
- Splunk
-
-
サービスタイプ Splunk を選択します。
-
次へ をクリックします。
-
Splunk 生の HTTP イベントコレクタ URL、チャネル ID、および認証トークンを入力します。
安全性の低い認証方法を選択することもできますが、これはお勧めできません。
-
次へ をクリックします。
-
-
logpushジョブの設定を見直す:
-
Logpushの詳細が正しいことを確認してください。
-
必要なタイムスタンプ形式と 周波数設定を選択します。
-
Enablementスイッチ をオンに切り替えることで、Logpushジョブを有効にするかどうかを選択します。
-
Logpushジョブに含めるログフィールドを選択してください。
スイッチを使用して、 すべてのフィールドを選択するか、 すべてのフィールドを展開することができます。 デフォルト設定に戻すこともできる。
-
完了をクリックして、Logpush ジョブを作成します。
-
Logpushジョブが作成され、設定された宛先にログの送信を開始する。
CLI から Logpush ジョブを作成する
CLIを使用して ibmcloud cis logpush-job-create CLIを使用してLogpushジョブを作成できます。
特定のドメインの Logpush ジョブを作成し、ジョブを有効にするには、以下のコマンドを実行します。
ibmcloud cis logpush-job-create DNS_DOMAIN_ID --destination PATH --name JOB_NAME --fields all --enable true
ここで、
-destination: 保存先のパスを指定します。 サポートされている宛先へのパスは以下の通りです
| IBM Cloud ログ |
|---|
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
例えば LogsインスタンスがセットアップされているアカウントのAPIキーが必要です。 IBM Cloud ユーザー用APIキーまたはサービスID用APIキーのいずれかを使用できます。 このキーは、Logpush ジョブ用の無記名トークンを生成するために使用されます。 APIキーは、「 Logpushジョブの更新」API を使用して更新することができます。 重要: ユーザーまたはサービス ID には、 IBM Cloud Logs サービスにおいて「Sender」IAM ロールが付与されている必要があります。 |
| Cloud Object Storage |
|---|
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>&ibm_api_key=<IBM_API_KEY>
例えば: |
| IBM QRadar |
|---|
<QRADAR_URL>:<LOG_SOURCE_PORT>
例えば: |
| Splunk |
|---|
splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&header_Authorization=<SPLUNK_AUTH_TOKEN>&sourcetype=<SOURCE_TYPE>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>
例えば: |
| カスタム HTTP |
|---|
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>
例えば: |
--name: Logpushジョブの名前を指定します。
--fields: ログファイルに含めるログフィールドの一覧を指定します。 複数のフィールドを区切るには、コンマを使用します。 利用可能なログフィールドの包括的な一覧を取得するには、 ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET コマンドを使用するか、 all を使用して、利用可能なすべてのフィールドをログファイルに含めるようにします。
--enable: Logpushジョブを有効または無効にするためのフラグです。 有効な値は、true または false (デフォルト) です。
コマンドの例
サポート対象のデスティネーションのCLIの例:
- IBM Cloud ログ
- 例
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination "ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=xxxxxxxx" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - Cloud Object Storage
- 例
```sh {: pre}
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination cos://cis-test-bucket/logs/{DATE}?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd&ibm_api_key=XXX --name logpushcreate --enable true --fields all --timestamps rfc3339 --dataset http_requests --frequency low -i cis-demo --output JSON
```
- IBM QRadar
-
例
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination https://qradar.example.com:8088 --name logpushJobQRadar --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - Splunk
-
例
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination splunk://cis-analytics.ibm.com:8088/services/collector/raw?header_Authorization=Splunk%20e6d94e8c-5792-4ad1-be3c-29bcaee0197d&channel=f1aafa4f-684f-4c29-a040-7fe184b03712&sourcetype=cloudflare:json&insecure-skip-verify=false --name logpushJobSplunk --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - カスタム HTTP
-
例
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination https://logs.example.com?header_Authorization=a64VuywesDu5Aq" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
APIを使ったLogpushジョブの作成
IBM Cloud ログ、 Cloud Object Storage、または Splunk を使用している場合は、 Logpush ジョブを作成する API を使用して Logpush ジョブを作成できます。
APIでデータセットの使用可能なログフィールドを取得する
ログフィールドは、Logpushジョブの logpull_options で指定し、送信先に送信される内容をカスタマイズすることができます。 Logpush データセットで利用可能なログフィールドを取得するには、以下の手順に従います
- 正しい変数を使用して API 環境をセットアップします。
- API コマンドで使用する以下の値を変数に格納します。
CRN: サービス・インスタンスの URL エンコードされた完全な CRN。
ZONE_ID: ドメイン ID。
DATASET: 検査中のLogpushデータセット。 http_requests, range_events, dns_logs, firewall_events のいずれか。
-
すべての変数が開始されたら、Logpush ジョブを作成します。
curl -X GET https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/datas/$DATASET/fields \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN"'
ログを送信先に送信するためのログプッシュジョブの作成
宛先( IBM Cloud Logs、 Cloud Object Storage、または Splunk )にLogpushジョブを作成するには、以下の手順に従います
- 正しい変数を使用して API 環境をセットアップします。
- API コマンドで使用する以下の値を変数に格納します。
CRN: サービスインスタンスの完全な URL エンコードされたクラウドリソース名(CRN)。
ZONE_ID: ドメイン ID。
--request body: Logpush ジョブ本体を作成するための情報 ( logpush_job_DESTINATION_req ) DESTINATION は以下の値のいずれかです
| IBM Cloud ログ |
|---|
|
重要 :ユーザーまたはサービス ID には、 IBM Cloud Logs サービスにおいて「 Sender 」IAM ロールが付与されている必要があります。
|
| Cloud Object Storage |
|---|
cos: データがプッシュされる Object Storage バケットを特定するための情報。 cos :
重要 : お客様サービス ID は、 Object Storage バケットに対して「 Object Writer 」IAM ロールを保有している必要があります。 |
| IBM QRadar |
|---|
qradar: QRadar HTTP データがプッシュされるレシーバーを特定するための情報。 |
| Splunk |
|---|
|
|
| カスタム HTTP |
|---|
destination_conf: データをプッシュするカスタム HTTP の宛先を設定するための情報。 Logpushで使用するヘッダーは、クエリパラメータの前に header_ を付加して指定することができます(例: header_Authorization=XXXX )。 |
name: Logpush ジョブの名前。
enabled: ジョブが有効かどうか。 true または false。
logpull_options: 構成ストリング。 例えば、fields=RayID,ZoneID×tamps=rfc3339 です。
dataset: プルされるデータ・セット。 http_requests, dns_logs, range_events, firewall_events のいずれか。
frequency: CIS がユーザーの宛先にログのバッチを送信する頻度。 high または low。
-
すべての変数が開始されたら、Logpush ジョブを作成します。
- IBM Cloud ログ
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "ibmcl": { "instance_id": "f8k3309c-585c-4a42-955d-76239cccf8k3", "region": "us-south", "api_key": "f8k3NQI22dPwNVCcmS62YFL1tm9vaehY6C9jxdtnf8k3" }, "ibmcl_names": { "application_name": "cis-edge-logs", "subsystem_name": "stage-firewall-logs" } "dataset": "http_requests", "enabled": true, "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "name": "CIS-Edge-Requests", "frequency": "low" }'
{: pre} Cloud Object Storage : ```sh curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "cos": { "bucket_name": "example_bucket", "path": "temp/", "id": "cos_instance_id", "region": "us-east" }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-COS", "frequency": "low", "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "ownership_challenge": "xxxxxxx" }'- IBM QRadar
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "qradar": { "url": "https://example.qradar.ibmcloud.com", "port": 8088 }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-QRadar", "frequency": "low", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
{: pre} Splunk : ```sh curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "splunk": { "endpoint_url": "example.splunkcloud.com:8088/services/collector/raw", "channel_id": "def3c136-7a01-4655-b17f-8e25a780ef2c", "skip_verify": false, "source_type": "cloudflare:json", "auth_token": "Splunk fake3585-0f38-4d62-8b43-c4b78584fake" }, "dataset": "http_requests", "enabled": true, "name": "CIS-Splunk-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'- カスタム HTTP
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "destination_conf": "https://logs.example.com?header_Authorization=a64VuywesDu5Aq", "dataset": "http_requests", "enabled": true, "name": "CIS-Custom-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
{: pre}