SumoLogicはSasS型のログ分析ツールです。 なぜログ分析サービスをSaaS型や他いろいろなもので利用するかというと、次があります。
- 膨大な量のログ分析
- 収集したログの管理 (リテンション、取得)
- 一貫したコンソール画面の提供
さて、運用していくと手間だと感じやすいのが「取得するコレクターやログの設定管理」です。例えば、 SumoLogicは、 SaaS型であり取得するログの指定は以下の2つ方法があります。
- CollectorにインストールしたホストでSource設定をJson指定
- Web管理画面で指定したSourceを取得
直にサーバーの設定を触るのは極力避けたいです。 今回紹介するのは、Web管理画面へのSumoLogic APIを叩くことで、 Web管理画面でのCollectorやSource管理を簡単にしよう作戦です。 何しろSumoLogicはWeb管理画面での使わなくなったCollectorやSourceのBulk削除、Sourceをまとめて追加などは対応していないので!
Sourceの削除など全然たりない未実装ですが、 CollectorやSource取得が容易になるようにModuleを作っています。
SumoLogic API
公式ホームページのAPI入り口はこちら
じつはGitHub上に公開されています。
- CollectorとSource管理 : Collector Management API
- 検索API : Search API
今回は、 CollectorとSource管理を見てみましょう。
PSSumoAPI
利用前提
- SumoLogicアカウント
- 一台のWindowsやLinuxにSumo Collectorをインストールする
事前にアカウントは作って下さいませー。 ModuleはCollectorとSourceが対象ですん。 (Sourceは取得と追加のみですが) Helpはまだ作っていないです。
コマンド一覧です。
CommandType Name ModuleName ----------- ---- ---------- Function Get-SumoApiCollectors PS-SumoAPI Function Get-SumoApiCollectorsSource PS-SumoAPI Function Get-SumoCredential PS-SumoAPI Function New-SumoCredential PS-SumoAPI Function Remove-SumoApiCollectors PS-SumoAPI
利用例
ReadMeは後で埋めるので.....とりあえず簡単に紹介を。
認証作成 : New-SumoCredential
SecureStringPassでModuleパスに一時保管しています。 ※違うPCやユーザーではデクリプトできません。 消去Clearや変更Setはなく作成Newのみなのですが (SetはNewで上書きでも) ご容赦を。
使い方
gist22e26177dceeb016bfff234072db555d
- save : 認証を保存するパスを指定可能。デフォルトはモジュールパス
- User : 認証に利用するユーザーを指定
こんな感じで認証を作っておきます。
$user ="Input UserName" # First time to create Credential New-SumoCredential -User $user
認証読み込み : Get-SumoCredential
New-SumoCredentialで生成した認証情報を読み込みます。
使い方
gist22e26177dceeb016bfff234072db555d
こんな感じで認証を読み込みます。
$user ="Input UserName" $credential = Get-SumoCredential -User $user -force
Collector の取得 : Get-SumoApiCollectors
Collector一覧を取得します。
使い方
gistb88dfc7345f403546dbf365d8c63188c
- CollectorIds : ColelctorのIDを指定可能。指定が無ければ全て取得
- Credential : Get-SumoCredentialで読み込んだ認証情報を指定
Invoke-RestMethodでGetを送っています。 利用はこのような形で。
gistb88dfc7345f403546dbf365d8c63188c
などがあります。
Module に足していないSumoLogic API
例えばソースの登録が足りません。以下のようなスクリプトで現在は可能ですが、これはModuleに追加する予定です。
gist9211234c8d25321b0f9e9d661d5c6309
他にも「現在利用しなくなったCollectorの削除」などが可能なサンプルを置いておきます。参考にどうぞ。