ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

Sumo LogicでBoxを可視化してみた!!~インストール編~

f:id:kkb1016:20190526033341p:plain
最近、ゆるキャン△の影響を受けてキャンプにハマっている小林です。

今日は、AWS re:Invent 2018でも注目されていた、「Sumo Logic」と弊社の取扱製品である「Box」の記事を書きたいと思います。

Sumo Logic とは

データの可視化・分析が行えるSaaSのサービスです。 AWSやクラウドサービスに連携するカタログが豊富で簡単にデータの可視化・分析が行えます。 百聞は一見にしかずという言葉もあるので、早速Boxのログで可視化を行ってみます。

Sumo Logicの弊社サイトは以下です!
Sumo Logic

BoxのログをSumo Logicに取り込もう!

公式のドキュメントは以下になりますので参考にしてください。

Box - Sumo Logic

セットアップの流れ

  1. コレクターのインストール
  2. SumoJanus for Boxパッケージをセットアップ
  3. プロパティファイルの編集
  4. Boxとの認証
  5. Sumo Logicでデータソースの設定

全体的な構成は、以下となります。

f:id:kkb1016:20190526030823p:plain

1.コレクターのインストール

まず、コレクターと呼ばれる、データ収集するためのツールをインストールします。 既に、インストール済みの場合は、次に進んでください。

以下から、インストールする環境に応じてダウンロードする手順を確認してください。
Installed Collectors - Sumo Logic

今回は、AWS上にEC2を立ち上げてコレクターをインストールしていきます。
コレクターのインストール手順は、 Sumo Logicのセットアップチュートリアルをやってみた [前編]ログファイルを取り込んでみる - ForgeVision Engineer Blog を参照ください。

2.SumoJanus for Boxパッケージをセットアップ

では、Boxのログデータを収集するために「Collect Events for Box」をサーバへインストールします。 今回は、AWS上にCentOS(EC2)を立ち上げてログの収集を行います。

SumoJanus for Boxパッケージをダウンロード

Linux版とWindows版が用意されていますので、作成する環境に応じてダウンロードをします。 今回は、CentOSであるため、Linux版をダウンロードします。

wgetでSumoJanus for Boxパッケージをダウンロード

# wget https://s3.amazonaws.com/script-collection/box/rc3.0.0/sumojanus-box-dist.3.0.0.tar.gz

SumoJanus for Boxパッケージをデプロイ

ダウンロードしたパスワードファイルを任意の場所に展開します。

# tar zxvf sumojanus-box-dist.3.0.0.tar.gz
sumojanus-box/README.md
sumojanus-box/VERSION.md
sumojanus-box/conf/sumologic.properties
sumojanus-box/conf/config.properties
sumojanus-box/conf/log4j.properties
sumojanus-box/data/
sumojanus-box/sumo-bundle/BoxCollector-3.0.0.jar
sumojanus-box/bin/SumoJanus_Box.bash
sumojanus-box/bin/README-Box.md
sumojanus-box/bin/SumoJanus_Box.bat
sumojanus-box/januscore-1.0.1.jar
sumojanus-box/bundle/SumoConfigService-1.0.1.jar
sumojanus-box/bundle/SumoUtils-2.0.1.jar

3.プロパティファイルの編集

以下のファイルを編集します。

# vi sumojanus-box/conf/sumologic.properties

以下の設定を追記し、保存します。

[boxcollector]
token_path = ${path}/data/box_enc.token
stream_pos_path = ${path}/data/box_stream_position.dat
# optional, default is admin event
#event_type = admin
# optional, encrypt token file or not. Default is false
encrypt_token_file = true
# Optional, Overwrite default encryption key
# encryption_key =
# optional, startTime to query for Event Log files, in epoch milliseconds, optional, default is 2 days back.
#startTime = 1435709058000
# optional, endTime to query for Event Log files, in epoch milliseconds
#endTime = 1436377600000

4.Boxとの認証

まず、JavaをEC2へインストールします。

Javaのインストール

Oracleからダウンロードしても構いませんが、今回は、OpenJDKとします。
Java SE Runtime Environment 8 - Downloads

# yum install java-1.8.0-openjdk

# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Boxアカウント認証

Boxにログインしている場合は、ログアウトしてください。

sumojanus-boxディレクトリへ移動し、以下のコマンドを実行します。
実行するとURLが出力されるので、URLをコピーしてブラウザでアクセスします。
※環境によっては、URLをコピーせずブラウザが立ち上がる環境もあります。

# bin/SumoJanus_Box.bash -s

~ 省略 ~

Cannot open a browser. Please open the following manually from THE SAME machine: 
https://app.box.com/api/oauth2/authorize?response_type=code&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&state=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx&redirect_uri=https://localhost:8080/
Inside BoxOAuth2Handler.getCode

Boxへログイン

URLにアクセスするとBoxのログイン画面が表示されますので、管理者アカウントでログインします。 f:id:kkb1016:20190609195755p:plain

ログインするとBoxへのアクセスを許可するか確認画面が表示されますので、 「Boxへのアクセスを許可」をクリックします。 f:id:kkb1016:20190609200339p:plain

Boxへのアクセスを許可をクリック後、このサイトにアクセスできませんと表示されるので、URLを修正します。 f:id:kkb1016:20190609200653p:plain

「https」プロトコルを「http」へ変更し、localhostの部分をEC2に割当てしているグローバルIPに修正します。 修正してアクセスすると、トークンファイル(./data/box_enc.token)が作成されます。 f:id:kkb1016:20190610105139p:plain

ブラウザ側でトークンファイルが作成完了したと同時に、 ターミナル上には、Boxの認証コードと「Framework exited successfully」と出力されます。

Code: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
03 Jun 2019 11:13:28,098  INFO SumoJanus:478 - Framework exited successfully

スクリプトを手動でテスト

sumojanus-boxのディレクトリで以下のコマンドを実行します。 出力を確認したら、Ctrl + Zなどログ取得を停止します。

# bin/SumoJanus_Box.bash

~ Boxからの取得したログが出力されます ~

Boxのデータポイントを削除

テスト実行をするとBoxのログデータ取得のデータポイントが保持されてしまうため、 sumojanus-box/data配下の「box_stream_position.dat」ファイルを削除します。

5.Sumo Logicでデータソースの設定

まず、Collectorの設定で以下のファイルを修正します。
※これを実施しないと、後続の手順ができなくなります。

プロパティファイルの修正

# vi /opt/SumoCollector/config/user.properties

accessid=xxxxxxxxxxxxxxxx
name=test
fipsJce=true

# 以下を追記します。
enableScriptSource = true

Sumo Logicの設定

以下の手順でSumo Logic側のデータソースの設定を行います。
※Collectorの設定が完了している前提です。 f:id:kkb1016:20190609214631p:plain f:id:kkb1016:20190609214747p:plain

以下のように設定を行います。 f:id:kkb1016:20190609214301p:plain

最後に「save」をクリックして保存します。 f:id:kkb1016:20190609214433p:plain

設定が完了するとログデータが取得されます。 f:id:kkb1016:20190609214907p:plain

アイコンをクリックすると検索画面に遷移します。 f:id:kkb1016:20190609215117p:plain

検索画面に遷移することで、Boxのログが取得できていることを確認できます。 f:id:kkb1016:20190609215220p:plain

最後に

簡単にBoxのログデータをSumo Logicに取得することができました。 次回は、BoxのApp Catalogを利用して、ダッシュボードで可視化を行って見たいと思います。