ForgeVision Engineer Blog

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

Sumo Logicを使ってApacheアクセスログからメトリクスグラフを作成する

クラウドインテグレーション事業部の尾谷です。

今回は、Sumo Logic の「Logs-to-Metrics」機能を使って、Apache のアクセスログからメトリクスグラフを作る方法をご紹介します。

f:id:otanikohei:20190709103412p:plain


【前提】ログを集計する環境を用意する

グラフを作る前提として、元となるデータが必要です。
元データを Sumo Logic に取り込む必要があります。
本ブログでは、以下の検証環境を用いて Sumo Logic にログを取り込みグラフ化する方法とご説明していきます。

f:id:otanikohei:20190709114941p:plain

  1. EC2 インスタンス上で「apache-loggen」というツールを動かす
  2. apache-loggen」が継続してダミーの Access ログを生成する
  3. EC2 インスタンスに Sumo Logic の「Collector」というエージェントをインストールする
  4. Collector」エージェントが Sumo Logic にログを吸い上げる
  5. 吸い上げたログを使って、Sumo Logic の画面操作でメトリクスグラフを作成する

といった流れになります。
 
なお、この検証環境は、これまでに当エンジニアブログでご紹介してきた方法で構築ができます。
本ブログの最後に、各ブログ記事のリンクを掲載しておきます。

※ もちろん、本番環境や開発環境で直接お試しいただいても構わないのですが、検証環境であれば安心してご確認いただけるかと思います。  

ダミーログの出力についての補足

ダミーログの出力とインストール方法について少し補足しておきます。

今回は以下コマンドで、毎秒 2 行のダミーログを出力しました。

$ apache-loggen --rate=2 --progress ./access_log

コマンドを投入すると、以下のようにダミーのアクセスログが継続して出力されていきます。
f:id:otanikohei:20190708182037g:plain

「Collector」のコマンドについての補足

以前 Windows 版の「Collector」エージェント・インストール方法をご説明しました。
本ブログでは Linux を使って説明していますので、簡単に Linux 版のインストール方法を記載しておきます。

  1. Sumo Logic から Linux 用の「Collector」のシェルスクリプトをダウンロードする。
  2. SSH SCP などで Linux インスタンスにシェルスクリプトを送り込む。
  3. root 権限でシェルスクリプトを実行する。
  4. ユーザー許諾契約書が表示されるので、[ENTER] キーをクリックして読み進める。
  5. [ACCESS ID] と [ACCESS KEY] を設定する。

無事インストールが完了すると、以下の場所に インスタンスが表示されます。 f:id:otanikohei:20190708195545p:plain

インスタンス名をクリックすると名前や説明をカスタマイズすることができます。 ちなみにこの「名前」は後述する「_collector」です。 f:id:otanikohei:20190708200233p:plain

Sumo Logic でログを表示する

それでは、Sumo Logic でログを表示してみます。
前の手順で追加されたインスタンスの右側にある [Add...] をクリックして、[Add Source] をクリックします。 f:id:otanikohei:20190708200524p:plain

ダイアログが表示されますので、名前とファイルパスを指定して、[Save] をクリックします。 f:id:otanikohei:20190708201223p:plain

作成されたリストにマウスカーソルを合わせるとリンクアイコンが表示されるのでクリックします。 ちなみにこのリストは「_source」です。「_collector」にネストされる形で「_source」が出来上がります。 f:id:otanikohei:20190708201804p:plain

可視化されたログのパラメータを確認してみてください。「_collector」と「_source」が AND 条件で自動的に追加されています。
f:id:otanikohei:20190708202449p:plain

フィールドを追加する

表示されたログには「Time」と「Message」の 2 つのフィールドしかなく、分析するにはキーとなるフィールドが不足しているように感じます。
そのため、フィールドを追加してみます。
 
ここから細かなマウス操作が多くなるため、更に画像を多めに説明して参ります。

Parse Selected text

まず、Message に表示された ログを 1 行選択してください。
そして、右クリックして表示されたコンテキストメニュから [Parse Selected Text] をクリックしてください。 f:id:otanikohei:20190708203201p:plain

ダイアログが表示されるので、試しに一番左側にあるグローバル IP アドレスをドラッグして選択します。 すると、「Click to extract this value」という黄色いポップアップが表示されますのでクリックします。 f:id:otanikohei:20190708203551p:plain

グローバルIPアドレスが「*」に変わりました!これが 1 つめのフィールドになります。試しに「Fields」に「IP_Address」と入力して「Submit」ボタンをクリックしてみます。
f:id:otanikohei:20190708203811p:plain

「Start」ボタンをクリックすると、パラメータに式が追加され、フィールドが増えました。
f:id:otanikohei:20190708204141p:plain

この調子でフィールドを追加していきます。「*」の位置を調整すると良い感じになるので、是非いろいろ試していただきたいのですが、私が追加したものを参考情報として掲載しておきます。

| parse "* - - [*] \"* * *\" * * \"*\" \"* (compatible; MSIE 9.0; * 6.1; Trident/5.0)\"" as IP_Address,Time,Method,Category,Protocol,Status_Code,Byte,Path,Browser,OS

f:id:otanikohei:20190708205410p:plain

メトリクス表示する

ここまでご準備いただきましたら、メトリクスを作成できます! メトリクスグラフは、サッと作ってしまいます。
 
「Manage Data」> 「Settings」 > 「Logs-to-Metrics」 > 「+ Add Logs-to-Metrics Rule」の順でクリックしてください。 f:id:otanikohei:20190708210051p:plain

1. Parse Log Messages

「← Add Logs-to-Metrics Rule」画面に遷移します。
「1. Parse Log Messages」には、名前とスコープを設定します。
名前は任意で大丈夫です。
 
スコープは「_source」か「_collector」を設定してください。
その他にも「_sourceCategory」などが設定できます。
先ほど作成したパラメータからコピペしてくると楽に作成できます。正しく設定できれば、チェックマークが付き、「2.Preview Parse Expression」にログが表示されます。 f:id:otanikohei:20190708210648p:plain

Parse Expression

またフィールドが「Message」だけになってしまうので「フィールドを追加する」で解説した要領でフィールドを追加してください。
正しく設定できると、「Message」しか表示されていなかったプレビュに追加したフィールドが表示されます。 f:id:otanikohei:20190708211502p:plain

3. Select Metrics and Dimensions

追加したフィールドを使って、メトリクスグラフを作成できます。
試しに Byte を選択してみます。「Count the number of log messages」のトグルボタンをクリックしてONにしてから、「Estimate DPM」ボタンをクリックします。
過去 1 時間にヒットしたログの数が表示されます。「Save」をクリックしてください。
f:id:otanikohei:20190709105823p:plain

画面が戻るとリストが追加されています。
マウスカーソルを合わせて、表示されたアイコンをクリックしてください。
f:id:otanikohei:20190708212705p:plain

グラフが表示されるまで少し時間がかかるかも知れません。
f:id:otanikohei:20190709103412p:plain  

最後に

ログの表示方法も含めて、一連で解説したためかなり長くなりました。
流れをご理解いただくとスムーズにメトリクスが追加いただけるかと存じます。
また、本記事を読んで、「Sumo Logicの基本操作を知りたい」「Sumo Logicの便利な使い方を知りたい」という方はハンズオントレーニングを実施しますので、ご連絡をお待ちしています!

開催概要

  • 日時:2019年7月18日(木) 14:00~17:00 (13:30~受付開始)
  • 場所:WeWork京橋「14G会議室」(東京都中央区京橋3-1-1 東京スクエアガーデン 14F)
  • 定員:8名
  • 費用:無料
  • 協賛:Sumo Logicジャパン株式会社
  • 主催:フォージビジョン株式会社

Sumo Logicハンズオントレーニングのお申込み

下記の「お申込みはこちらから」をクリックして、
お問い合わせ種別から「Sumo Logicハンズオントレーニングのお申込み」を選択し、以下の項目を入力いただきお申込みをお願いします。


ご参考

  • 「apache-loggen」ツールについては、以下記事でご紹介しております。 techblog.forgevision.com

  • Windows版「Collector」インストール方法は以下記事でご紹介しております。 techblog.forgevision.com