Ruby on Rails (RoR) ログ ソースのセットアップ

RoR が生成する複数行のログ エントリでは、いくつか追加の設定手順が必要になります。必須の要素はログ ファイル パス、タイム ゾーン、複数行のセットアップです。

  1. アプリケーションが実行されるコンピュータにコレクタをインストールします。

  2. ローカル ファイル ソースを作成します。続いて、[File Path (ファイル パス)] で、config.log_path について指定されたログ パスを入力します。

  3. タイムスタンプのパースを有効にします。ログにタイムスタンプの一部としてタイム ゾーンが含まれていない場合、メッセージのタイム ゾーンを指定する必要があります。必ず、タイム ゾーンを正しく設定してください。タイムゾーンの設定に誤りがあると、問題が起こる場合があります。たとえば検索では、データが将来表示されることになります。さらに、ダッシュボードにはデータが表示されません。

  4. 複数行の処理を有効にします。そのためには、[Boundary Regex (境界正規表現)] で、RoR ログの最初の行の内容を入力します。通常 (設定やプラットフォームに応じて異なる)、先頭の単語は「Starting」または「Processing」になります。ログをチェックして確定します。文字列 ^Processing.* または ^Starting.* を入力します。
  5. 「Starting」または「Processing」より前の日付などを出力するように RoR ログを設定した場合、それにも一致する必要があります。たとえば、^\[[0-9/:\s]+\]\s+Processing.* のようになります。

  6. [Save (保存)] をクリックします。 

  7. Sumo Logic Web アプリケーションで、[Manage Data (データの管理)] > [Collection (コレクション)] > [Status (ステータス)] の順に進み、ログが取り込まれることを確認します。2、3 分待ってもデータが取り込まれない場合、ファイル パスが正しいこと、Sumo Logic コレクタにログへの読み取りアクセス権があること、タイム ゾーンが正しく設定されていることを確認してください。

RoR ログのパース

ログを取り込んだら、パースは単純です。ログは、次のようになっている場合があります。

[29514] [07-10-13 12:54] : 
Processing SomeComponent#show (for 111.111.111.111 at 2013-07-10 12:54:19) [GET]
[29514] [07-10-13 12:54] :   Parameters: {"slug"=>"2013/7/7/4502012/someurl", "action"=>"show", "controller"=>"somecomponent"}
[29514] [07-10-13 12:54] : Rendering template within layouts/somecomponent
[29514] [07-10-13 12:54] : Rendering somecomponent/article
[29514] [07-10-13 12:54] : Completed in 934ms (View: 850, DB: 75) | 200 OK [http://www.somecompany.com/someurl]
[31594] [07-10-13 12:54] : 

このような形式の場合、次のように検索クエリを実行できます。

_sourceCategory=*RoR*
| parse "Completed in *ms (View: *, DB: *)
| * OK" as totalTime,viewTime,dbTime,returnCode
| timeslice by 1m
| avg(totalTime) as avgTotalTime by _timeslice

Ruby on Rails の最新情報については、http://guides.rubyonrails.org/ を参照してください。