Ruby on Rails (RoR) ログ Source のセットアップ
RoR が生成する複数行のログ エントリでは、いくつか追加の設定手順が必要になります。必須の要素はログ ファイル パス、タイム ゾーン、複数行のセットアップです。
-
アプリケーションが実行されるコンピュータに Collector をインストールします。
-
ローカル ファイル Source を作成します。続いて、[File Path (ファイル パス)] で、
config.log_path
について指定されたログ パスを入力します。 -
タイムスタンプの parse を有効にします。ログにタイムスタンプの一部としてタイム ゾーンが含まれていない場合、メッセージのタイム ゾーンを指定する必要があります。必ず、タイム ゾーンを正しく設定してください。タイムゾーンの設定に誤りがあると、問題が起こる場合があります。たとえば検索では、データが将来表示されることになります。さらに、ダッシュボードにはデータが表示されません。
- 複数行の処理を有効にします。そのためには、[Boundary Regex (境界正規表現)] で、RoR ログの最初の行の内容を入力します。通常 (設定やプラットフォームに応じて異なる)、先頭の単語は「Starting」または「Processing」になります。ログをチェックして確定します。文字列
^Processing.*
または^Starting.*
を入力します。 -
「Starting」または「Processing」より前の日付などを出力するように RoR ログを設定した場合、それにも一致する必要があります。たとえば、
^\[[0-9/:\s]+\]\s+Processing.*
のようになります。 -
[Save (保存)] をクリックします。
-
Sumo Logic Web アプリケーションで、[Manage Data (データの管理)] > [Collection (コレクション)] > [Status (ステータス)] の順に進み、ログが取り込まれることを確認します。2、3 分待ってもデータが取り込まれない場合、ファイル パスが正しいこと、Sumo Logic Collector にログへの読み取りアクセス権があること、タイム ゾーンが正しく設定されていることを確認してください。
RoR ログの parse
ログを取り込んだら、parse は単純です。ログは、次のようになっている場合があります。
[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/ を参照してください。