APIを使ってログを送信する
取り込みAPIを使用すると、 IBM Cloud Logs インスタンスにログを送信できます。
ベアラートークンを使った認証
リクエストを認証するには、 IBM Cloud® Identity and Access Management (IAM) アクセス トークンを取得する必要があります。
IBM CloudCLI を使用してトークンを取得するには、以下の手順を実行します:
-
IBM Cloud にログインします。
ログインするエンティティがIBM Cloud Logsサービスの「
Senderロールを持っていることを確認してください。 -
以下のコマンドを実行します。
ibmcloud iam oauth-tokens -
このトークンを HTTP リクエストのAuthorizationヘッダーにBearerという形式で入れる
.
たとえば、次の CLI コマンドを実行すると、IAM ベアラー トークンを取得し、それを環境変数としてエクスポートできます。
export IAM_TOKEN=`ibmcloud iam oauth-tokens --output json | jq -r '.iam_token'`
cURLてログを送信する
次の表にエンドポイントの詳細を示します。
| 詳細 | 値 |
|---|---|
URL |
<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles |
HTTP Method |
POST |
ヘッダー Content-Type |
application/json |
ヘッダー Authorization |
Bearer $IAM_TOKEN |
説明
INSTANCE_ID: ログを送信するIBM Cloud Logsインスタンスの GUID。REGION: IBM Cloud Logs インスタンスがあるリージョン。IAM_TOKEN: ログへの送信の承認を要求するために使用される IAM ベアラー トークン。 権限logs.data.sendが必要です。
ログラインを送信するには、以下のcURLコマンドを使用する:
curl -v --location "<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles" \
--header "Content-Type: application/json" \
--header "Authorization: $IAM_TOKEN" \
--data '[{
"applicationName": "ENTER_APPLICATION_NAME",
"subsystemName": "ENTER_SUBSYSTEM_NAME",
"severity": "ENTER_SEVERITY",
"computerName": "ENTER_VALUE",
"text": ENTER_LOG_LINE,
"category": "ENTER_VALUE",
"className": "ENTER_VALUE",
"methodName": "ENTER_VALUE",
"threadId": "ENTER_VALUE"
}]'
次の表は、リクエスト内のログ行ごとに含めることができる JSON オブジェクトの概要を示しています。
| プロパティー名 | プロパティー・タイプ | 必須 | 詳細情報 |
|---|---|---|---|
applicationName |
string |
ある | |
subsystemName |
string |
ある | |
text |
string/json |
ある | Ajax または同様のテクノロジを使用している場合は、 JSON.stringify () を使用してデータを送信する必要がある場合があります。 |
severity |
number |
いいえ | 1 – Debug2 – Verbose3 – Info4 – Warn5 – Error6 – Critical指定されていない場合は 1 – Debug が使用されます。 |
timestamp |
number |
いいえ | UTC ミリ秒。 指定されていない場合は、ログがゲートウェイに到達した時刻が使用されます。 |
computerName |
string |
いいえ | |
category |
string |
いいえ | |
className |
string |
いいえ | |
methodName |
string |
いいえ | |
threadId |
string |
いいえ | |
hiResTimestamp |
string |
いいえ | UTCナノ秒 |
severity を指定しない場合、ログには 1 – Debug の重大度が割り当てられます。
1 回のリクエストあたり最大2MB 、つまり中サイズのログ約 3,000 個を送信できます。
たとえば、次のコマンドを実行して、 eu-es リージョンのインスタンスにログを送信できます。
curl -v --location "https://90d208cc-e1dd-4fb2-a938-358e5996f056.ingress.eu-es.logs.cloud.ibm.com/logs/v1/singles" \
--header "Content-Type: application/json" \
--header "Authorization: $IAM_TOKEN" \
--data '[{
"applicationName": "cs-rest-test3",
"subsystemName": "cs-rest-test3",
"computerName": "computer test3",
"text": {"key":"value","message":"148.145.31.214 - user [24/Oct/2023:15:54:46 +0000] \"PATCH /maximized/Triple-buffered_Managed/core.hmtl HTTP/1.1\" 400 7074 1.666 \"-\" \"Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_4 rv:6.0) Gecko/1929-02-10 Firefox/37.0\" \"-\"","countryme":"Italy"},
"category": "cat-1",
"className": "class-1",
"methodName": "method-1",
"threadId": "thread-1"
}]'
-v オプションは、コマンドが正常に完了したかどうか、または認証や接続の問題があったかどうかを判断するのに役立つ詳細な出力を提供します。