nokoのブログ

こちらは暫定のメモ置き場ですので悪しからず

監視を復習してみた

はじめに

  • 監視を復習してみたときのメモです

参考

検討項目とポイント

1. データ収集

  • 一般的にプルよりプッシュ(スケールしやすい)
  • とりあえずOSのメトリクスとかを監視しがちだが、監視の目的から逆算すると、「動いているか」の監視が重要
    • HTTP200やリクエストのレイテンシ
  • 設定追加は自動でされるようにするべき
  • 60sに1回はメトリクスを取得する
  • syslogでリモートに転送したり
  • ログの収集は、syslogデーモンを中心に考える
  • 監視サーバ自体の監視を忘れない

2. データストレージ

  • 時系列DB
    • 一定期間後に間引きしてくれたり
    • →ディスク容量、グラフ描画のため

3. 可視化

4. 分析とレポート

  • ペナルティ事項の存在しないSLAは、むしろ「目指すべき目標」

5. アラート

  • 「監視は、質問を投げかけるためにある」
  • メトリクスとアラートが一対一である必要はない
  • 固定の閾値だけでなく、変化量で検知してもよい
  • 全てのアラートが、誰かの対応必須のものになっているか定期的に見直す
  • 自動復旧を目指す
    • 特定の条件で落ちた場合、再起動するなど

監視設定書の項目例

監視項目

  • No
  • 分類
  • メトリクス名
  • 比較演算子
  • 閾値
  • 単位(Count/Percent,etc)
  • 説明

監視対象

監視詳細

  • レベル(error/warn/info)
  • 取得間隔
  • 評価間隔
  • 統計(Minimum/Maximum,etc)
  • 欠落データ(igonre,etc)
  • 方式概要(別ページへのリンク)
  • 通知メッセージ例
  • 有効/無効

監視対象例

ビジネスKPI監視

  • 現在サイトに滞在しているユーザ
  • ログイン

フロントエンド監視

アプリケーション監視

  • 関数の実行時間
    • StatsDを仕込んでおく
    • 特にサーバレスなどだと
  • デプロイタイミング、ビルドデータ、デプロイを実行した人
  • healthエンドポイントパターン

サーバ監視

  • CPU使用率
  • メモリ使用率
  • スワップ使用量
  • OOMKillerの発生
  • インターフェイスに対するイン・アウトのオクテット数、エラー数、ドロップ数
  • ディスク使用率
  • IOPS
  • マウントカウント
  • プロセスカウント
    • sshd
    • crond
    • vsftpd
    • ミドル
  • SSL証明書
  • 秒間リクエスト数
  • リクエスト時間
  • DBコネクション数
  • キューの長さ
  • 秒間メッセージ数
  • キャッシュから追い出されたアイテム数(evicted items)
  • ヒット・ミス率(hit/miss ratio)
  • NTP
  • ログ
    • /var/log/messages
    • HTTPレスポンス
    • sudoの使用
    • SSHログイン
    • cronジョブの結果
    • スロークエリ
    • auditd

実装例