とろろこんぶろぐ

かけだしR&Dフロントエンジニアの小言

Stackdriverで最低限のログ収集と死活監視を行う方法

ログ収集も死活監視もない

リリースしたことに満足して,ログも収集せず死活監視もしていなかった。そんなときに発生した502エラーに気づけずに、サービスを1日くらい止めてしまった。

少しでも原因がわかるようにクライアントのログをstackdriverで収集し、落ちたことに気が付けるようにヘルスチェックもするようにした。

ログ収集

cloud.google.com

stackdriverは、Googleが提供している便利モニタリングサービスでGCPはもちろんAWSにも対応している優れモノなんだそう。

今回GAE上でサービスを動かしているので、stackdriverの導入はとっても簡単で、GCPの左メニューのモニタリングからstackdriverを選択して有効化するだけで、適当にやってくれる。

設定すると、Error Reportingなどを見ると、エラー発生箇所がわかるようになっている。すごい。

f:id:ka2jun8:20181110114705p:plain

アクセスが増えて来たら鬼のように発生するかもしれないと思うと、ちょっと怖くもある。

死活監視

サービスが落ちたら通知してほしい。stackdriverでは、Uptime Checksを持っていてhealth checkしてくれる。

f:id:ka2jun8:20181110115240p:plain

まずは、URL、パス、頻度を指定すればOK。 その次に、Alertingで通知の設定をする。 今回はメールに通知がくるようにしたが、slackにも飛ばせるっぽい。 上記のように設定しておけば、落ちたときにメールが来る(設定してから落ちてないからまだメールは来たことないけど)。

余談

hatenaがmackerelというサーバ監視のサービスをやってる。結構見た目も良さそうなので、トライアルだけ入ってみた。

mackerel.io

mackerelもサーバ監視ツールで、mackerel agentを仕込むことができれば、どうやら無料で使い続けられそう。

通知はメールやSlackだけじゃなく、Lineにも通知できるようになっていた。

しかしAWSのEC2ならまだしも、GAEだとエージェントをどう入れたらいいのかわからない。

一旦外形監視で試してみたらなかなかよかったので,ほんとうは使い続けたかったなあと思ったので、余談。

まとめ

stackdriver、ログ収集と死活監視ができてすごい。 mackerelも良さそうだけど、GAEだとエージェントの繋ぎ方がよくわからなくて、使えないのが惜しい。