ログAdd-onを使うことのメリット
ログAdd-onを使用することのメリットは多数あります。特に、旧来のオンプレミスでファイルとして保存されたログしか扱ったことのない人には、その便利さは革命的だと思います。実際私も初めてPapertrailに触れたときには、その便利さに相当の衝撃を受けました。
以降、それらの優位点をファイルで保存されたログを扱う場合と比較しながら紹介していきます。また、LogentriesとPapertrailで機能的な際がある場合はそれも紹介します。
Webでの表示
まず最もベーシックな機能として、Webブラウザ上でのログ表示があります。しかも、リアルタイムで現在実行中のログがtailのようにブラウザ上を流れていきます。
ファイルベースのログの場合、わざわざSSHでアプリケーションサーバにログインし、tailなどのコマンドで表示しなければなりません。それと比べると、どこからでも参照できるWeb表示には大きな優位性があります。
検索
続いて検索です。Logentries、PapertrailともにWebビュー上で検索を行えますが、検索可能な期間がプランによって異なります。Logentriesはプランによって7日〜30日、Papertrailは2日〜7日となっています。
Papertrailは検索可能期間が短いのですが、次節で紹介するAmazon S3[5]へのアーカイブ機能を無償プランから使えるので、ファイルとしてダウンロードして検索することが可能です。
Logentriesでは次に挙げるように、かなり強力なオプション検索が行えます。
- 正規表現
- KeyValuePairまたはJSON形式で出力されたログに対する、keyとvalueを使用した式検索(【例】id=1 AND last_logedin>=2015-05-25)
- COUNT、SUMなどの簡単なグループ化演算
詳細はLogentriesのドキュメントを確認ください。
なお、両者ともよく使う検索条件は保存しておいて再利用することが可能です。
[5] AWSが提供するストレージサービス。
Amazon S3へのアーカイブ
それなりにアクセスのあるサービスでは、日々のログのサイズも大きくなります。PapertrailにもLogentriesにも、それらを日ごとに分割してAmazon S3に自動的に保存してくれる機能があります。
この機能はPapertrailでは無償プランから使えますが、LogentriesではEntryPlusプラン(29米ドル/月)からのオプション機能です。
実運用中のサービスがダウンして、その原因が実は膨大なログによるディスクフルというのもたまに聞く話ですが、Herokuではそのようなことは起こりません。
メールあるいはチャットなどへの通知
Papertrail、Logentriesとも、保存された検索条件にマッチしたログが現れた場合に、メールやSlack、HipChatなどのチャットツールを介して、そのことを通知する機能を持っています。
例えば、「ログに“Fatal error”という文字列が現れたら、指定のメールアドレスにメールを送信する」というように設定しておけば、アプリケーションに何か問題が発生したときにすぐに気がつくことができて便利です。
データベースのダウンなど、エラーの種類によっては一度発生すると以降、延々と起こり続けるものもありますが、通知設定で、
- 一定時間内で何回以上発生した場合のみ通知する
- 一定時間内で一度通知したものは再通知しない
などの設定ができるので、SPAMのように延々とエラー通知メールが届き続けるという事態にはなりません。
個人的には、これがログAdd-onで最も重宝する機能です。
Logentriesが持つその他の機能
Papertrailの機能は概ねここまでに紹介したとおりですが、Logentriesにはさらにいくつかの機能があります。
タグ
正規表現を使用して、それにマッチしたログにタグを付けることができます。このタグはログ表示時に同時に表示されます。
Anomaly通知(有償プランのみ)
検索で使用できるグループ化機能を利用して、その値が閾(しきい)値を超えた場合に通知を行う機能です。
例えば、Accessログを監視し、Accessが集中した際にそのことを通知するといった使い方ができます。
Inactivity通知(有償プランのみ)
指定した検索条件にマッチするログが指定の時間内に「現れなかった」場合に通知を行う機能です。
例えば、アプリ内でメールボックスのpollingを行っているような場合に、その機能が正常に動作しているかどうかを監視するといった使い方ができます。
グラフ
タグ付けされたログの件数やグループ化検索条件の結果をグラフ化して、常にDashboardに表示しておくようにできます。
LogentriesとPapertrail、どちらを使うべきか?
前提として両者とも無償プランがあるので、まずは両方追加して使ってみるのがよいと思います。
機能的にはLogentriesのほうがはるかに高機能です。記憶があまり定かではありませんが、3年前に評価したときとはまったくの別物になっていて驚きました。単なるログサービスにとどまらず、モニタリング機能にまで踏み込んでいる印象があります。
ただ、その結果としてUIが少しゴチャゴチャしており、ログ表示や検索も若干重たいように感じました(おそらくはタグ表示やグループ化検索のため)。
一方、Papertrailはとてもシンプルです。機能的には通知系の機能が少し変わったくらいで、3年前からほとんど変わってないように思います。
それが良いことなのかどうかは意見の分かれるでしょうが、モニタリングには別のAdd-on(Librato、NewRelicなど)を使うことが多いですし、個人的にはログサービスに期待する機能はすでに必要十分に備えていると思います。
両者とも課金の単位はログ転送量ですが、Logentriesの方は月単位、Papertrailの方は日単位と、単位が異なります。このままだと比較が難しいので、Papertrailの単位を月換算(30倍)した料金表を作ってみました。
転送量/月 | Logentries | Papertrail |
---|---|---|
300MB | - | Free |
1.5GB | - | $7 |
3GB | - | $15 |
5GB | Free | - |
6GB | - | $29 |
15GB | $9 | $65 |
30GB | - | $125 |
40GB | $29 | - |
75GB | $49 | - |
150GB | $99 | $375 |
300GB | $399 | $425 / $725 |
600GB | $799 | $825 / $950 / $1,090 |
1.2TB | - | $1,420 / $1,985 |
1.3TB | $1,688 | - |
Papertrailのほうに複数の金額が書かれた項目があるのは、転送量が同じで検索可能期間の異なる複数のプランがあるからです(1日、3日、7日があります)。
意外でしたが、Logentriesのほうが大分安いです。コスト、使い勝手などを検討して、ご自身の良いと思うほうを選択してください。
まとめ
以上、HerokuのログAdd-onの機能について見てきました。ログの表示、検索、パージなどはサービスを運用するために必要な機能ではありますが、それらはビジネスの本質ではありません。
こうした本質的でない機能をAdd-on(外部サービス)に任せて、自社開発ではビジネスの本質部分に集中することができるというのがPaaSの大きな魅力の1つであり、それだけでも検討する価値はあります。