最近、ゆるキャン△の影響を受けてキャンプにハマっている小林です。
今日は、AWS re:Invent 2018でも注目されていた、「Sumo Logic」と弊社の取扱製品である「Box」の記事を書きたいと思います。
Sumo Logic とは
データの可視化・分析が行えるSaaSのサービスです。 AWSやクラウドサービスに連携するカタログが豊富で簡単にデータの可視化・分析が行えます。 百聞は一見にしかずという言葉もあるので、早速Boxのログで可視化を行ってみます。
Sumo Logicの弊社サイトは以下です!
Sumo Logic
BoxのログをSumo Logicに取り込もう!
公式のドキュメントは以下になりますので参考にしてください。
https://help.sumologic.com/07Sumo-Logic-Apps/18SAAS_and_Cloud_Apps/Box
セットアップの流れ
- コレクターのインストール
- SumoJanus for Boxパッケージをセットアップ
- プロパティファイルの編集
- Boxとの認証
- Sumo Logicでデータソースの設定
全体的な構成は、以下となります。
1.コレクターのインストール
まず、コレクターと呼ばれる、データ収集するためのツールをインストールします。 既に、インストール済みの場合は、次に進んでください。
以下から、インストールする環境に応じてダウンロードする手順を確認してください。
https://help.sumologic.com/03Send-Data/Installed-Collectors
今回は、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版をダウンロードします。
Linux版
https://s3.amazonaws.com/script-collection/box/rc3.0.0/sumojanus-box-dist.3.0.0.tar.gzWindows版
https://s3.amazonaws.com/script-collection/box/rc3.0.0/sumojanus-box-dist.3.0.0.zip
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とします。
技術リソース | Oracle 日本
# 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のログイン画面が表示されますので、管理者アカウントでログインします。
ログインするとBoxへのアクセスを許可するか確認画面が表示されますので、 「Boxへのアクセスを許可」をクリックします。
Boxへのアクセスを許可をクリック後、このサイトにアクセスできませんと表示されるので、URLを修正します。
「https」プロトコルを「http」へ変更し、localhostの部分をEC2に割当てしているグローバルIPに修正します。 修正してアクセスすると、トークンファイル(./data/box_enc.token)が作成されます。
ブラウザ側でトークンファイルが作成完了したと同時に、 ターミナル上には、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の設定が完了している前提です。
以下のように設定を行います。
最後に「save」をクリックして保存します。
設定が完了するとログデータが取得されます。
アイコンをクリックすると検索画面に遷移します。
検索画面に遷移することで、Boxのログが取得できていることを確認できます。
最後に
簡単にBoxのログデータをSumo Logicに取得することができました。 次回は、BoxのApp Catalogを利用して、ダッシュボードで可視化を行って見たいと思います。