BoxのログをSumo Logicで可視化してみる~ログ取り込み編~

 2021.10.05  株式会社テリロジー 技術統括部

2020年~2021年にかけて内閣府や某大手企業様でのPPAPの全面禁止が注目を集めました。ご存じの方がほとんどであると思いますが、PPAPとは以下の一連の手順を揶揄したものです。
   「P」:Password付きzip暗号化ファイルを送ります
   「P」:Passwordを送ります
   「A」:暗号化します
   「P」:プロトコル

最近ではPPAPに関するセキュリティ面に関する問題や運用面に関する問題が挙げられており、様々な代替手段が取られるようになっています。
弊社でも基本的にPPAPは禁止しており、クラウドストレージサービスを使ってファイル送受信を行うようにしています。

ただ、せっかくセキュリティを高める目的で使うのであれば、ログの監視まで考えたいところです。
そこで今回はPPAPの代替手段の1つである、クラウドストレージサービス・「Box」のログをSumo Logicに取り込んで可視化してみることにしました。

BoxからSumo Logicへ直接ログを送ることができないため、BoxとSumo Logicの間に中間サーバが必要となります。
ログを取り込むまでの流れとしましては以下となります。

  1. 中間サーバを準備し、Installed Collectorのインストール
  2. Boxログを取り込むために必要な中間サーバの設定
  3. Sumo Logic側のデータソース設定

前提条件

  • BOXのユーザアカウントはシステム管理者もしくは共同管理者の権限が付与されていること
  • 共同管理者の場合「Run new reports and access existing reports」権限のみ必要
  • Webブラウザを使用してインターネットに接続できる環境であること
  • Javaが使えること

今回試した環境

  • Ubuntu 20.04 LTS Server
  • OpenJDK 11.0.11
  • Chrome 94.x

それでは流れに沿ってやっていきたいと思います。

Collectorのインストール

中間サーバからBoxのログをアップロードするためにInstalled Collectorを使用します。
もし既にインストール済みの環境を使用する場合は次に進んでください。

Sumo LogicのWebUIにログインして、まずはAccess Keyを作成します。
左側のAdministration -> Securityの順にクリックします。

Collectorのインストール	画像1

表示された画面上部のAccess Keys -> Add Access Keyをクリックします。

Collectorのインストール	画像2

Access Key Nameに任意の名前を入力しSaveをクリックします。

Collectorのインストール 画像3

Access IDとAccess Keyが表示されます。
Access Keyはこの画面を閉じると見れなくなってしまうのでコピーしておくようにしてください。

Collectorのインストール 画像4

次にCollectorのインストーラーをダウンロードします。

# wget "https://collectors.sumologic.com/rest/download/linux/64" -O SumoCollector.sh && chmod +x SumoCollector.sh

続いてCollectorをインストールします。
と には発行したAccess ID/Access Keyを入力します。

# ./SumoCollector.sh -q -Vsumo.accessid= -Vsumo.accesskey=

Sumo Logicの画面上のManage Data -> CollectionにCollectorが表示されたらインストールは完了です。
Collectorのインストール 画像5

Boxのログ取り込みに必要な中間サーバの設定

CollectorをインストールしたサーバにSumoJanus for Boxパッケージをダウンロードします。

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

ダウンロードしたパッケージを展開します。

# tar zxvf sumojanus-box-dist.3.0.0.tar.gz

プロパティファイルの編集を行います。

# 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

Javaをインストールします。

# apt install openjdk-11-jre-headless
# java -version

SumoJanus_Box.bashファイルを更新します。

# vi /opt/sumojanus-box/bin/SumoJanus_Box.bash

以下を変更します。

"export JAVAPATH="${JAVA_HOME}""

 ↓

"export JAVAPATH=/opt/SumoCollector/jre/""

Collectorのインストールしてあるディレクトリを指定します。
/opt/SumoCollector/jre  もしくは /usr/local/SumoCollector/jreとなると思われます。

続いてsumojanus-boxフォルダに移動して以下のコマンドを実行します。

# bin/SumoJanus_Box.bash -s

以下のようなメッセージが出てくるので表示されたURLをコピーしてWebブラウザでアクセスします。

≪省略≫
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=xxxxxxxxxxxxxxxxxxxxxxxx&state=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxx&redirect_uri=https://localhost:8080/

※この時にBoxからはログアウトしておくようにしてください。

Boxのログ取り込みに必要な中間サーバの設定 画像1

ログイン後、Boxへのアクセスを許可するかの画面が表示されるので「Boxへのアクセスを許可」をクリックします。

Boxのログ取り込みに必要な中間サーバの設定 画像2

「Boxへのアクセスを許可」をクリックすると「このサイトにアクセスできません」という画面が表示されます。
URLを以下に変更してください。

https → http
localhost → UbuntuサーバのIPアドレス

再度アクセスすると以下のような画面が表示されるのでブラウザは閉じます。

Boxのログ取り込みに必要な中間サーバの設定 画像3

それと同時にサーバ側も以下のようなメッセージが出てきます。
このメッセージが出てきたらサーバ側の準備は完了です。

Inside BoxOAuth2Handler.getCode
Code: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01 Oct 2021 14:19:00,677  INFO SumoJanus:478 – Framework exited successfully

すべての設定が完了したらサーバでBoxのログが取得できるか確認します。

# bin/SumoJanus_Box.bash

出力を確認したらCtrl+Zでログの取得を停止します。

データソースの設定

次にSumo Logicのデータソースの設定になります。
先ほどインストールしたCollectorのAdd -> Add Sourceをクリックします。
以下の画面でScriptを選択します。

データソースの設定 画像1

以下の設定を行います。

データソースの設定 画像2

Name:BoxCollector
Source Category:test/box
Frequency:Every 5 Minutes
Specify a timeout for your command:有効(チェックボックスにチェック) 60Minutes
Command:/bin/bash
Script:/opt/sumojanus-box/bin/SumoJanus_Box.bash
Working Directory:/opt/sumojanus-box

Boxのログを取り込めたことが確認できました。

データソースの設定 画像3

今回はログ取り込み編、ということで一旦ここまでとして、次回は今回取り込んだBoxのログにAppCatalogを適用してみたいと思います。

App Catalogとは、Sumo Logicの利用者が必要とするクエリーやダッシュボードを、アプリケーションカタログという形でSumo Logic側でテンプレート化したものです。
App Catalogが用意されているアプリケーションのログであれば、Sumo Logicにログを取り込んですぐに可視化が可能になります。

様々な製品のAppCatalogが公開されていますので、「この製品のログを取り込んで可視化してみたい!」などご要望ございましたらお気軽にお問い合わせください。

それでは。


RECENT POST「Sumo Logic」の最新記事


Sumo Logic

CSE Automation で Slack 連携してみた

Sumo Logic

Sumo Logic ダッシュボードやフォルダ共有について

Sumo Logic

Sumo Logicに関するサポート内容のご紹介

Sumo Logic

Insight Trainerの活用方法 ~Sumo Logic CSEチューニングをより簡単に~

BoxのログをSumo Logicで可視化してみる~ログ取り込み編~