tech.guitarrapc.cóm

C#, PowerShell, Swift, Cloud, Serverless Technical Update and Features

SumoLogic API を PowerShell で利用する

SumoLogic は SasS 型のログ分析ツールです。 なぜ ログ分析 サービスを SaaS型 や他いろいろなもので利用するかというと、

  • 膨大な量のログ分析
  • 収集したログの管理 (リテンション、取得)
  • 一貫したコンソール画面の提供

などがあるでしょう。 さて、運用していくと手間だと感じやすいのがこれです。

取得するコレクターやログの設定管理

例えば、 SumoLogic は、 SaaS型であり 取得するログの指定は以下の2つ方法があります。

  1. Collector にインストールしたホストでSource設定をJson指定
  2. Web管理画面で指定した Source を取得

直にサーバーの設定を触るのは極力避けたいわけです。 今回紹介するのは、Web管理画面への SumoLogic API を叩くことで、 Web管理画面での Collector やSource管理を簡単にしよう作戦です。 何しろ SumoLogic は Web管理画面での 使わなくなった Collector や Source のBulk 削除、Sourceをまとめて追加などは対応していないので! ====

SumoLogic API

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

APIs

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

Collector と Source 管理 : Collector Management API 検索 API : Search API

今回は、 Collector と Source 管理を見てみましょう。

GitHub

Source の削除など全然たりない未実装ですが、 Collector や Source 取得が容易になるように Module を作っています。

guitarrapc/PSSumoAPI

利用前提

  1. SumoLogic アカウント
  2. 一台の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

 
  1. save : 認証を保存するパスを指定可能です。デフォルトはモジュールパスです。
  2. User : 認証に利用するユーザーを指定します。

こんな感じで認証を作っておきます。

$user ="Input UserName"

# First time to create Credential
New-SumoCredential -User $user

認証読み込み : Get-SumoCredential

New-SumoCredential で生成した認証情報を読み込みます。 使い方:

gist22e26177dceeb016bfff234072db555d

 
  1. User : 認証に利用するユーザーを指定します。

こんな感じで認証を読み込みます。

$user ="Input UserName"
$credential = Get-SumoCredential -User $user -force

Collector の取得 : Get-SumoApiCollectors

Collector 一覧を取得します。 使い方:

gistb88dfc7345f403546dbf365d8c63188c

 
  1. CollectorIds : Colelctor のIDを指定可能です。指定が無ければ全て取得します。
  2. Credential : Get-SumoCredential で読み込んだ認証情報を指定してください。

Invoke-RestMethod で Get を送っています。 利用はこのような形で。

gistb88dfc7345f403546dbf365d8c63188c

 

などがあります。疲れたので全部はしません。

Module に足していないSumoLogic API

例えば、 Source の登録です。 以下のようなスクリプトで現在は可能ですが、これは Module に追加する予定です。

gist9211234c8d25321b0f9e9d661d5c6309

 

他にも 「現在利用しなくなった Collector の削除」などが可能なサンプルを置いておきます。参考にどうぞ。

https://github.com/guitarrapc/PS-SumoAPI/tree/master/Sample

まとめ

API 叩いてサクッと出来るのは楽ちんです。 自分が使うものから実装しますが (てへぺろ Source登録などは、 Workflow なり 並列化しないと現状は遅いのですけど。 ぜひ SumoLogic を使ってみてください。