0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LogDNAのAPIを使ってログをエクスポートする

Posted at

LogDNAではREST APIを利用してログのエクスポートができる。もちろんGUIからもログの検索やエクスポートができるが、環境によっては(たとえばIBM Cloudで利用できるLogDNAのサービスでは)GUIの操作がモッサリしていることがあるので、APIを利用したほうが早かったりする。

サービスキーの登録

これはGUIから行う。すでに登録済であれば不要だが、無い場合は"Generate Service Key"を押下して作成する。

スクリーンショット 2021-01-24 2.07.09.png

API呼び出し

公式のAPIリファレンスを参照し、必要なパラメータをセットする。
fromとtoは必須パラメータとなる。なお、UNIX時間で入力する必要がある。

以下のようにコマンドを実行する。

curl -sS "https://api.jp-tok.logging.cloud.ibm.com/v1/export?from=$(($(date +%s)-2592000))000&to=$(date +%s)000&hosts=<対象ホスト>&apps=<対象ログ名など>&query=<検索キーワード>&size=20000" \
-u "SERVICE_KEY:<サービスキー>" | jq -r '._line'
  • この例では、IBM Cloud東京リージョンにデプロイしたインスタンスをターゲットとし、現在時刻から30日前まで(IBM CloudのLogDNAサービスの最大保管日数)、サイズは2万行で指定している。
  • 公式のAPIリファレンスではsizeは最大10000との記載があるが、実際には20000まで有効。
  • JSONL形式でエクスポートされる。ログ本文のみを抜き出すには、jqコマンドで._lineを抽出するのがよい。
  • どういうわけか、from=30日前、to=現在という指定でも、新→旧の順番で結果が返却されるので、逆順にしたい場合はtacコマンドを使うのがよいと思う。
  • query部分はGUIを利用しているときと同じように、ORやAND、マイナス条件を指定することが可能。URLエンコードする必要があるため、例えばABC OR XYZという条件で指定したい場合はABC+OR+XYZと記載する。
  • appsの箇所は、appと指定しても動作する。というか、私の経験ではappsとするかappとするかによって、異なる結果が返却されることがあった…(appsではヒットしないことも)。両方試してみることをおすすめします。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?