Y

Google Cloud Loggingが突然ログ出力しなくなった時にやったこと

はじめに

nginxのログをCloud Loggingに保存、BigQueryに転送して日次集計していますが、ある日BigQueryに保存されなくなり、原因を調べてみた時のメモです。

Cloud Loggingにもログが表示されていない

Cloud LoggingからBigQueryエクスポートの設定を行うと、日次でテーブルが作成されます(クエリー対象の容量を削減できるので便利です)。本来作成されるはずの2016-01-06分が作成されていませんでした。

BigQueryの画面

スクリーンショット 2016-01-07 11.31.10.png

さらに調べてみると、そもそもCloud Loggingにある時間以降からログ出力されていませんでした。

xxx.xxx.xxx.xxx - - [06/Jan/2016:03:20:09 +0900] "GET / HTTP/1.1"

google-fluentd再起動

とりあえずgoogle-fluentdのプロセスを確認します。

zono@hostname:~$ ps ax | grep fluentd
/usr/sbin/google-fluentd

プロセスは存在します。テストでsyslogにログを出力します。

logger "Some test message"

ログはsyslogには出力しますが、Cloud Loggingの画面には表示されません。 再起動して、再度ログ出力をテストします。

zono@hostname:~$ sudo service google-fluentd restart
Restarting google-fluentd: 
 * google-fluentd
logger "Some test message"

今度はCloud Loggingの画面に表示されています。

BigQueryへのストリーミング

google-fluentdリスタート後すぐにBigQueryの本日分のテーブルができていました。

スクリーンショット 2016-01-07 13.15.50.png

まとめ

結論として原因不明だけど、とりあえずgoogle-fluentdをリスタートしたら直った。というメモでした。

Cloud Loggingが動作しなかった時のログがBigQueryに保存されていません。nginxのaccess.logにはログ出力されているので、それをBigQueryにロードできるので今度試してみます。

また今回の障害をすぐ検知するための仕組みも今後用意しないといけませんね。(psコマンドでプロセスが生きていたので他の方法で検知できるか調べないと)

参考

Google Cloud Logging(beta)を試す!

Real-time logs analysis using Fluentd and BigQuery

Configuring Logs Export

GAE/GCEのログ監視 & GAE/GCEのエラーログをCloud Logging -> Cloud Pub/Sub からの GASでSlackへ流す

Installing the Cloud Logging Agent

TipMe

TipMe with IndieSquare