{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/post/research-of-log-collection-and-monitoring-in-heroku/",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG","author":"Leko - CTO at Yuimedi"}},"markdownRemark":{"id":"c6a31d52-2a28-5d88-af67-3d5e24022696","excerpt":"こんにちは。 Go に入門してからは Heroku に Go のアプリをデプロイするようになり、それをきっかけに Heroku について調べる機会が多くなりました。 今回は Heroku でログ収集＋監視をする方法について調べてみました。 単にログを見るだけならheroku logs…","html":"<p>こんにちは。<br>\nGo に入門してからは Heroku に Go のアプリをデプロイするようになり、それをきっかけに Heroku について調べる機会が多くなりました。</p>\n<p>今回は Heroku でログ収集＋監視をする方法について調べてみました。<br>\n単にログを見るだけなら<code>heroku logs</code>コマンドで十分なのですが、特定のログが吐かれた時や、高負荷時などを検知して携帯に通知できるような仕組みを探してみたので備忘録を残します。</p>\n<!--more-->\n<h2 id=\"結論\" style=\"position:relative;\"><a href=\"#%E7%B5%90%E8%AB%96\" aria-label=\"結論 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>結論</h2>\n<p><a href=\"https://papertrailapp.com/?thank=15fc38\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Papertrail</a>を採用しました。<br>\n以下に調査の詳細を書いていきます。</p>\n<h2 id=\"作っているものの要件\" style=\"position:relative;\"><a href=\"#%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AE%E8%A6%81%E4%BB%B6\" aria-label=\"作っているものの要件 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>作っているものの要件</h2>\n<ul>\n<li>1000~10000 リクエスト/日 程度の小さな API サーバ</li>\n<li>言語は Go、WAF は<a href=\"https://github.com/gin-gonic/gin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">gin</a>で実装</li>\n<li><strong>趣味プロダクト</strong> でサーバの管理したくないので Heroku にデプロイ</li>\n</ul>\n<p>趣味プロダクトなら、という目線で見ているので業務レベルでの選定はしてません。悪しからず。</p>\n<h2 id=\"ログ収集監視に求めるもの\" style=\"position:relative;\"><a href=\"#%E3%83%AD%E3%82%B0%E5%8F%8E%E9%9B%86%E7%9B%A3%E8%A6%96%E3%81%AB%E6%B1%82%E3%82%81%E3%82%8B%E3%82%82%E3%81%AE\" aria-label=\"ログ収集監視に求めるもの permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ログ収集＋監視に求めるもの</h2>\n<p>調べるにあたってログ収集に求めていたものは以下でした。</p>\n<ul>\n<li>基本無料 + お手頃な有料プランが有ること</li>\n<li>ソースコードに影響しない</li>\n<li>導入が簡単</li>\n<li>通知機能</li>\n</ul>\n<p><strong>基本無料</strong>を求めるのは、開発環境にお金を払いたくないから。<br>\n性能はしょぼくてもいいので動いてくれること。本番と開発用で違うプラグイン使ったり、環境判定のコードなどを混ぜたくないためです。<br>\nあわせて <strong>お手頃な有料プラン</strong> も求めているのは、本番環境ではお金を払うためです。<br>\nもちろん無料でも十分な性能ならぜひ利用したいですが、無料にこだわっているわけではないので。でも、有料プランの最低料金の障壁があまりに高いと、少し財布の紐が硬くなってしまいます。<br>\n要約すると <strong>「小さく初めて必要性がでたらプランを上げる」</strong> ことができるステップが存在することを求めています。</p>\n<p>次に <strong>ソースコードに影響しない</strong> は、バグリスクの削減と、プログラムの動作速度を可能な限り早めるためです。<br>\nソース内でどこぞのサーバと通信したりなんだり、ということをしてしまうと遅いってレベルじゃなくなってしまうので論外です。<br>\n<strong>アプリケーションサーバはあくまで標準(エラー)出力 or ログファイルに出力するだけ</strong> 。<br>\nそれを受け取った Heroku のログを見てくれるものを探しています。</p>\n<p><strong>導入が簡単</strong> なのは言うまでもなく<del>面倒</del>複雑さを減らし、ドハマりやエッジケースでにっちもさっちもいかなくなることを防いで丸く納めるためです。</p>\n<p><strong>通知機能</strong> をログ収集サーバがすべきかについては諸説ありますが、今回の要件なら本格的なサーバの監視をするわけではないので、まぁログサーバ側で見ればいいよね、といった感じです。<br>\n<strong>「特定のログが吐かれたら＊＊、なるべくリアルタイムで監視＋通知の自由度が高い」</strong> ものを求めています。<br>\nここはちょっと欲が出ているので、最悪無くてもいいやと思って探しました。</p>\n<h2 id=\"調べたものと概要\" style=\"position:relative;\"><a href=\"#%E8%AA%BF%E3%81%B9%E3%81%9F%E3%82%82%E3%81%AE%E3%81%A8%E6%A6%82%E8%A6%81\" aria-label=\"調べたものと概要 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>調べたものと概要</h2>\n<p>調べて・試してみた情報と、その概要です。</p>\n<h3 id=\"断念-log-drain--ホスティング\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-log-drain--%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0\" aria-label=\"断念 log drain  ホスティング permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: Log drain + ホスティング</h3>\n<ul>\n<li>Heroku のログを他サーバに垂れ流せる機能</li>\n<li>Heroku 使ってんのにログサーバを自前で管理しなきゃいけない</li>\n<li>いいホスティングサービスが見つからなかった</li>\n</ul>\n<h3 id=\"断念-treasuredata--fluentd\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-treasuredata--fluentd\" aria-label=\"断念 treasuredata  fluentd permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: TreasureData + fluentd</h3>\n<ul>\n<li>14 日の無料体験アカウント＋その後有料</li>\n</ul>\n<h3 id=\"断念-bonsaiio--elasticsearch--kibana\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-bonsaiio--elasticsearch--kibana\" aria-label=\"断念 bonsaiio  elasticsearch  kibana permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: Bonsai.io + Elasticsearch + Kibana</h3>\n<ul>\n<li>最低でも有料</li>\n</ul>\n<h3 id=\"断念-mackerel\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-mackerel\" aria-label=\"断念 mackerel permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: Mackerel</h3>\n<ul>\n<li><a href=\"http://help-ja.mackerel.io/entry/advanced/monitoring-heroku\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ドキュメント</a>が丁寧にかかれているのですが、<del>めんどくせ</del>と思ってしまい断念</li>\n</ul>\n<h3 id=\"採用-papertrail\" style=\"position:relative;\"><a href=\"#%E6%8E%A1%E7%94%A8-papertrail\" aria-label=\"採用 papertrail permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>採用: <a href=\"https://papertrailapp.com/?thank=15fc38\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Papertrail</a></h3>\n<ul>\n<li>いい感じ</li>\n</ul>\n<p>1 つずつ詳細を書きたいと思います。</p>\n<h2 id=\"断念-log-drain--ホスティング-1\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-log-drain--%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0-1\" aria-label=\"断念 log drain  ホスティング 1 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: Log drain + ホスティング</h2>\n<p>Heroku には<a href=\"https://devcenter.heroku.com/articles/log-drains\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Log Drains</a>という機能があります。</p>\n<blockquote>\n<p>Logplex のドレイン（外部への排出機能）は、Heroku のログを外部のシステムログ管理用サーバーへ長期間アーカイブするために、転送することを許可しています。Heroku のシステムログのパケットを取得可能とするためには、Logplex のドレイン、またはシステムログ管理用サーバー自体を設定する必要があります。この設定の後で、システムログの URL（ホスト名とポート番号を含む）をドレインとして追加する必要があります。<br>\nドレインするログは、 RFC5424 に沿ってフォーマットされます。これらは RFC6587 で説明される TCP プロトコルと octet counting framing method を経由し伝達されます。<br>\nログ監視系のサービスを見つけるには、Heroku アドオンを訪問して下さい。<br>\n— <a href=\"https://github.com/herokaijp/devcenter/wiki/logging#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%AD%E3%82%B0%E3%82%92%E5%A4%96%E9%83%A8%E3%81%B8%E3%83%89%E3%83%AC%E3%82%A4%E3%83%B3%E6%8E%92%E5%87%BA%E3%81%99%E3%82%8B\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">システムログを外部へドレイン（排出）する</a></p>\n</blockquote>\n<p>邦訳記事に感謝します。<br>\nということで、 <strong>ドレインの機能を使用してログをどこかしらのサーバへ垂れ流せばよいのでは？</strong> という過程で調査をすすめていきました。<br>\nログサーバを自前でホスティングすれば Fluentd+Elasticsearch+Kibana だったり BigQuery だったりと何でもやれますが、Heroku にしたきっかけが自分でサーバを持ちたくないことなので、本末転倒になってしまうため選外としました。</p>\n<blockquote>\n<p><a href=\"http://hakobera.hatenablog.com/entry/2014/02/03/122029\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Heroku アプリのログを fluentd で ElasticSearch に突っ込んで Kibana で監視する方法 – hakobera’s blog</a></p>\n</blockquote>\n<h2 id=\"断念-treasuredata--fluentd-1\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-treasuredata--fluentd-1\" aria-label=\"断念 treasuredata  fluentd 1 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: TreasureData + fluentd</h2>\n<p>ログの収集や解析を調べているとだいたいセットで出てくる「fluentd」、実際に使ったことが無いのでなんとなく概要しか分からないのですが、これを期に使ってみようかと思いました。</p>\n<p>ということで「heroku fluentd」と調べてみたところ、fluentd を制作していらっしゃる<a href=\"http://docs.fluentd.org/articles/install-on-heroku\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">TreasureData さんの記事</a>が見つかりました。</p>\n<p>だがしかし TreasureData のアカウントが必要。 しかも TreasureData のアカウントは 14 日間のフリートライアル。その後は、、、調べてもわからなかったので資料請求してみましたが、それでも料金プランなどの記載はありませんでした。</p>\n<p>ものすごく高機能で高性能で高精度で、名だたる企業さんも導入していたりといい事尽くしですが、 <strong>これだけ色々できて有名なサービスで値段調べても出てこないなら toB 向けで、かつ安いわけない</strong> 。と勝手に推測し、残念ながら趣味プロダクトの身の丈には合わないと判断して断念しました。</p>\n<blockquote>\n<p>こちらの記事も参考になりました。<br>\n<a href=\"http://qiita.com/kiyoto/items/24e15ac38804ca48b06d\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">TreasureData – 世界最速で Fluentd を立ち上げる on Heroku – Qiita</a></p>\n</blockquote>\n<h2 id=\"断念-bonsaiio--elasticsearch--kibana-1\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-bonsaiio--elasticsearch--kibana-1\" aria-label=\"断念 bonsaiio  elasticsearch  kibana 1 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: <a href=\"https://bonsai.io\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Bonsai.io</a> + Elasticsearch + Kibana</h2>\n<p>「Kibana hosting」と調べたら偶然出てきたサービスです。<br>\nElasticsearch のクラスタリング、Kibana のホスティングあたりをまるっと提供してくれる粋なサービスです。<br>\n<a href=\"https://elements.heroku.com/addons/bonsai\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Heroku のアドオンもあった</a>ので見てみたところ、 <strong>残念ながら最低でも 10$/m</strong> 。<br>\n月千円くらいええやんケチ と自分に突っ込んでしまいましたが、まだ妥協するには早い。他に選択肢がなければ 1000 円払おう。と考えつつ、保留しました。</p>\n<p>※結果としては後述の<a href=\"https://papertrailapp.com/?thank=15fc38\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Papertrail</a>を採用したので見送りになりました。</p>\n<h2 id=\"断念-mackerel-1\" style=\"position:relative;\"><a href=\"#%E6%96%AD%E5%BF%B5-mackerel-1\" aria-label=\"断念 mackerel 1 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>断念: Mackerel</h2>\n<p><a href=\"http://help-ja.mackerel.io/entry/advanced/monitoring-heroku\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ドキュメント</a>が丁寧に書かれていて大変申し訳無いのですが、設定手順長い。めんどくさい。と思ってしまいました。</p>\n<p>Mackerel の料金的には無料でもある程度使えるし有料プランも月 2000 円と悪くないお手軽さなのですが、この高機能さが必要になったら求めてみようと思います。今回は断念。</p>\n<h2 id=\"採用-papertrail-1\" style=\"position:relative;\"><a href=\"#%E6%8E%A1%E7%94%A8-papertrail-1\" aria-label=\"採用 papertrail 1 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>採用: <a href=\"https://papertrailapp.com/?thank=15fc38\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Papertrail</a></h2>\n<p>採用しました。まさに条件ピッタリなサービスでした。<br>\n最初にログドレインについて調べていたので、Heroku のアドオン検索画面で「drain」と調べたら偶然ヒットしました。</p>\n<p>Fluentd, Elasticsearch, Kibana などのナウい感じではないですが、 <strong>ちょうど趣味プロダクトのスケール感に合いそうでちょいど良い</strong> ともっとも感じたサービスです。</p>\n<p>このサービス通知機能が協力で、ログをフィルタして、<code>n</code>分間に<code>m</code>行以上マッチするログが出現したら<code>**</code>する、という設定ができます。<br>\n通知の方法も豊富で、Slack や HipChat、Zapier や Pushover、更にはメール通知や WebHook も使えるのでもはや何でもありです。</p>\n<p><a href=\"https://elements.heroku.com/addons/papertrail\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Heroku のアドオンも基本無料、次が 7$</a>とお手軽感満載。</p>\n<p>Heroku でよく出るログはあらかじめフィルタとして登録しておいてくれるし、なんだこの優しさは。初心者向けとはこういうことを言うんだと感動するちょうど良さでした。<br>\nログが収集されるまでのラグも 3~10 秒くらいなので速くはないですが、余裕の許容範囲内です。</p>\n<p>ログのアーカイブを S3 に転送できたり、サービスで保持できるログ容量の拡張も細かくできるので、いざとなれば札束で殴ることができそうです。<br>\nまた、Heroku で自動的に吐かれてしまうログを収集しないこともできるので、ケチろうと思えばケチれるという幅の広さも魅力の一つだと思います。</p>\n<p>導入も最初手間取りましたが必要な手順は少なく、通知の設定も簡単です。<br>\n導入にあたり下記の２記事が参考になりました。ありがとうございます。</p>\n<blockquote>\n<p>— <a href=\"http://d.hatena.ne.jp/itmammoth/20130729/1375112798\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">heroku のログ管理は Papertrail がいい感じ – Oh! My! Enter! ～バッチを起動しようと勢いよくキーを叩いたら、それはシフトキーだった～</a><br>\n— <a href=\"http://qiita.com/yukofeb/items/f7c0b4f9bdc11a9daf40\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">heroku に papertrail を導入して、アラートを hubot 経由で slack へ通知する</a></p>\n</blockquote>\n<p>デフォルトでついてるデプロイのログと、Dyno のステータスが変わった時のログ、あとアプリケーションのログであるキーワードに引っかかるログが 1 時間に 1000 行以上出たら要警戒、それぞれを Slack に通知するように Alert を設定しました。<br>\n要警戒と言いつつ、特に何もやばくないんですが今後アプリケーションログを監視するなら事前に試しておきたいので設定してみた次第です。<br>\nSlack が私の携帯に入っているので、これでわざわざログを見に行かなくても、しかるべきタイミングでメッセージ（を通知する push 通知）が届きアラートとして使用できそうです。<br>\nHeroku もデフォルトでアクセスログも残してくれており、Papertrail もそれを収集・フィルタできるので、落ち着いたタイミングでアクセスログの解析などもできそうです。</p>\n<h2 id=\"まとめ\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81\" aria-label=\"まとめ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめ</h2>\n<p>色々と試してみましたが、ホットな話題には触れられない結果に終わりました。<br>\n代わりにバズ Word に惑わされず自分の要件に合うものを探し続けたら見つかったので、その点何かを探す時のモチベーションにしたいなと思いました。</p>\n<p>もしこの記事を読んでいて同じような悩みを抱えてる方がいらっしゃいましたら<a href=\"https://papertrailapp.com/?thank=15fc38\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Papertrail</a>を使ってみると良いと思います。</p>","timeToRead":11,"frontmatter":{"title":"Herokuでのログ収集と監視について調べてみた","tags":["fluentd","Go","Heroku","Papertrail","TreasureData"],"date":"November 06, 2015","featuredImage":null}}},"pageContext":{"slug":"/research-of-log-collection-and-monitoring-in-heroku/","previous":{"fields":{"slug":"/how-to-install-nodegit-with-electron/"},"frontmatter":{"title":"Electronにnodegitが入らない","tags":["Electron","Git","Nodejs"]}},"next":{"fields":{"slug":"/how-to-implement-frequency-ui-in-form/"},"frontmatter":{"title":"フォーム周りで地味に使うUIと実現方法","tags":["Advent Calendar","JavaScript","Qiita"]}}}},
    "staticQueryHashes": ["2585454260","2954598359"]}