はじめに
システム管理者として Splunk Observability Cloud の設定を担当するかた向けに、API で作業を効率化する方法をまとめておきたいと思います。
この記事では、はじめの一歩として「認証トークンの取得手順」をまとめておきます。
記事の内容
- コマンドで自分の認証トークンを取得する準備とサンプル
(ブラウザで管理画面にログインせず取得する方法)
今後の設定作業では本記事の手順で取得したトークンを利用します。
参考にしたドキュメント
ドキュメントが分散していますが、認証トークンについては下記3つのページが参考になります。
- デベロッパーガイド > Authenticate API Requests
- API リファレンス > Session Tokens
- 製品ドキュメント > Retrieve and manage user API access tokens using Splunk Observability Cloud
設定作業用トークンについて
下記3種類のトークンがありますが、ブラウザ操作不要な「セッショントークン」を利用することにします。
- ユーザーAPIアクセストークン (User API Access Token)
- ブラウザでログインして自分のプロファイル画面(下図)から取得
- ※ログアウトすると使えなくなる
- セッショントークン (session token)
- コマンドでログインして取得
- 組織トークン (org token)
- 管理者が事前に作成しておくもの
管理者ユーザーのユーザーAPIアクセストークン/セッショントークンが必要な設定項目も存在します。該当する項目は こちらのドキュメント に記載されています。
準備
環境に合わせて事前に以下の項目を用意しておきます。
項目 | 値 |
---|---|
ユーザー名 | ログインに使うメールアドレス |
レルム (Realm) | 日本リージョンの場合は jp0 |
組織ID (ORG ID) | 組織に紐付くID |
Realm と ORG ID はプロファイル画面の Organizations タブを開くと確認できます。
トークン取得コマンド
curl コマンドのサンプルです。
(レルムが異なる場合は jp0 部分を置き換えてください)
curl -X POST "https://api.jp0.signalfx.com/v2/session" \
-H "Content-Type: application/json" \
-d '{
"email": "(ユーザー名)",
"organizationId": "(組織ID)",
"password": "(パスワード)"
}'
出力結果の例です。「accessToken」の値がセッショントークンで使う文字列になります。
{
"accessToken" : "XXXXXXXXXXXXXXXXXXXX",
"authMethod" : "UNDEFINED",
"capabilities" : null,
"createdBy" : "xxxxxxxxxxx",
"createdMs" : 1714483820334,
"disabled" : false,
"email" : "(ユーザー名)",
"expiryMs" : 1717075820334,
"id" : "xxxxxxxxxxx",
"organizationId" : "(組織ID)",
"personaId" : "xxxxxxxxxxx",
"readOnly" : false,
"sessionType" : "ORG_USER",
"updatedBy" : null,
"updatedMs" : 1714483820334,
"userId" : "xxxxxxxxxx",
"userName" : null
}
※ID情報などは xxx で伏せ字に変更してます。
expiryMs はトークンの有効期限です。ミリ秒単位のUNIX時間表記なので、末尾3桁を削除して日付に変換してみると、トークン作成から30日間有効であることがわかると思います。
トークンの削除
作業完了後、しばらくトークンを使わない場合は削除しておくと安全です。
以下、トークンを削除する curl コマンドのサンプルです。
curl -X DELETE "https://api.jp0.signalfx.com/v2/session" \
-H "Content-Type: application/json" \
-H "X-SF-TOKEN: (先ほど取得したaccessTokenの値)"
コマンド実行が成功した場合、何も画面に出力されないので、??と思うかもしれませんが、トークンは削除され再利用できなくなってます。
おわりに
自分が引っかかったポイントもあったので、以降の作業をスムーズに進めるための最初の一歩目として情報を整理しました。この後はチャートやダッシュボード、ディテクターといった設定作業を進めていきたいと思います。