-
監視アセスメント
- 何を監視すべきか
- なぜ監視すべきか
-
題材: レストランの広告サイト Tater.ly
- レストランは広告を出す
- Tater.lyは広告収入得る
- ユーザはレビューを見たり投稿したりする
ビジネスKPI
- CEO等と会話をしよう
-
ビジネスメトリクスに落とし込む
- レストランのレビュー数
- アクティブなレストランの数
- ユーザ数
- AU
- 検索実行数
- レビュー投稿数
- 広告購入数
- 上記各項目の変化の方向と変化率
-
NPS
- ユーザから
- レストランから
フロントエンド監視
- RUM: Real User Monitoringメトリクス使え
アプリケーションとサーバーの監視
- インフラのアーキテクチャ図をもとにメトリクスとログを洗い出す
-
気にしなくていいものも洗い出す
- Webホスティングプロバイダを使っているのでハードウェアやネットワークの管理についてはあまり気にしなくていい、など
-
メトリクス
- ページロード時間
-
ユーザログイン
- 成功数
- 失敗数
- 実行時間
-
AU
- DAU
- WAU
-
検索
- 実行数
- レイテンシ
-
レビュー
- レビュー投稿数
- レイテンシ
-
PostgreSQL
- アプリケーションから見たクエリレイテンシ
- データベースサーバーから見たtps
-
Redis
-
Redisサーバーから見て
- tps
- hit/miss ratio
- キャッシュから追い出されたアイテム数
-
-
CDN
- hit/miss ratio
- オリジンに対するレイテンシ
-
HAProxy
- rps
- 利用可能・不能なバックエンドの数
-
HTTPレスポンスコード
- フロントエンド
- バックエンド
-
Apache
- rps
- HTTPレスポンスコード
-
標準的なOSメトリクス
- CPU使用率
- メモリ使用率
- ネットワークスループット
-
ディスク
- IOPS
- 空き容量
-
ログ
-
ユーザログイン
- ユーザID
-
コンテキスト
- 成功
-
失敗
- 理由
-
Django
- 例外
- トレースバック
-
使用しているすべてのサーバサイドデーモンのサービスログ
- Apache
- PostgreSQL
- Redis
- HAProxy
-
- シンセティック監視により、SSH証明書の期限切れも監視
セキュリティ監視
-
コンプライアンスや規制の必要条件がない場合、ごくごくシンプル
-
SSHログイン
- 試行
- 失敗
- syslogのログ
- auditdのログ
-
アラート
-
あらゆるものについて有効にする必要はない
- ページロード時間の増加
- Redis, Apache, HAProxyでのエラー率やレイテンシの増加
-
アプリケーションの特定のアクションのエラー率やレイテンシの増加
- 検索
- レビュー投稿
- ユーザログイン
- PostgreSQLクエリのレイテンシの増加
-
手順書も書く
- ただし、自動復旧を先に検討する
- アラートに手順書へのアクセスを載せる
まとめ
- 監視に終わりはない
- 継続的に改善せよ