tech.guitarrapc.cóm

Technical updates

SumoLogic APIをPowerShellで利用する

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を作っています。

guitarrapc/PSSumoAPI

SumoLogic API

公式ホームページのAPI入り口はこちら

APIs

じつはGitHub上に公開されています。

今回は、 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の削除」などが可能なサンプルを置いておきます。参考にどうぞ。