入門 監視―モダンなモニタリングのためのデザインパターン
オライリー・ジャパン
著者:Mike Julian
訳者:松浦隼人
はじめに
第Ⅰ部 監視の原則
1章 監視のアンチパターン
1.1 アンチパターン1:ツール依存
1.1.1 監視とは複雑な問題をひとくくりにしたもの
1.1.2 カーゴ・カルトなツールを避ける
1.1.3 自分でツールを作らなければならない時もある
1.1.4 「一目で分かる」は迷信
1.2 アンチパターン2:役割としての監視
1.3 アンチパターン3:チェックボックス監視
1.3.1 「動いている」とはどういう意味か。「動いている」かどうかを監視しよう
1.3.2 アラートに関しては、OSのメトリクスはあまり意味がない
1.3.3 メトリクスをもっと高頻度で取得しよう
1.4 アンチパターン4:監視を支えにする
1.5 アンチパターン5:手動設定
1.6 まとめ
2章 監視のデザインパターン
2.1 デザインパターン1:組み合わせ可能な監視
2.1.1 監視サービスのコンポーネント
2.2 デザインパターン2:ユーザ視点での監視
2.3 デザインパターン3:作るのではなく買う
2.3.1 安いから
2.3.2 あなたは(おそらく)監視ツールを設計する専門家ではないから
2.3.3 SaaSを使うとプロダクトにフォーカスできるから
2.3.4 実際のところSaaSの方がよいから
2.4 デザインパターン4:継続的改善
2.5 まとめ
3章 アラート、オンコール、インシデント管理
3.1 どうしたらアラートをよくできるか
3.1.1 アラートにメールを使うのをやめよう
3.1.2 手順書を書こう
3.1.3 固定の閾値を決めることだけが方法ではない
3.1.4 アラートを削除し、チューニングしよう
3.1.5 メンテナンス期間を使おう
3.1.6 まずは自動復旧を試そう
3.2 オンコール
3.2.1 誤報を修正する
3.2.2 無用の場当たり的対応を減らす
3.2.3 上手にオンコールローテーションを組む
3.3 インシデント管理
3.4 振り返り
3.5 まとめ
4章 統計入門
4.1 システム運用における統計を学ぶ前に
4.2 計算が救いの手を差し伸べる
4.3 統計は魔法ではない
4.4 meanとaverage
4.5 中央値
4.6 周期性
4.7 分位数
4.8 標準偏差
4.9 まとめ
第Ⅱ部 監視戦略
5章 ビジネスを監視する
5.1 ビジネスKPI
5.2 2つの事例
5.2.1 Yelp
5.2.2 Reddit
5.3 ビジネスKPIを技術指標に結び付ける
5.4 自分のアプリケーションにそんなメトリクスはないという時は
5.5 会社のビジネスKPIを見つける
5.6 まとめ
6章 フロントエンド監視
6.1 遅いアプリケーションのコスト
6.2 フロントエンド監視の2つのアプローチ
6.3 DOM
6.3.1 フロントエンドパフォーマンスのメトリクス
6.3.2 素晴らしい! でもどうやったらいいの?
6.4 ロギング
6.5 シンセティック監視
6.6 まとめ
7章 アプリケーション監視
7.1 メトリクスでアプリケーションを計測する
7.1.1 内部ではどのように動いているのか
7.2 ビルドとリリースのパイプラインの監視
7.3 healthエンドポイントパターン
7.4 アプリケーションロギング
7.4.1 メトリクスにすべきか、ログにすべきか
7.4.2 何のログを取るべきか
7.4.3 ディスクに書くべきか、ネットワーク越しに送るべきか
7.5 サーバレスまたはFunction-as-a-Service
7.6 マイクロサービスアーキテクチャを監視する
7.7 まとめ
8章 サーバ監視
8.1 OSの標準的なメトリクス
8.1.1 CPU
8.1.2 メモリ
8.1.3 ネットワーク
8.1.4 ディスク
8.1.5 ロードアベレージ
8.2 SSL証明書
8.3 SNMP
8.4 Webサーバ
8.5 データベースサーバ
8.6 ロードバランサ
8.7 メッセージキュー
8.8 キャッシュ
8.9 DNS
8.10 NTP
8.11 それ以外の企業インフラにおける監視
8.11.1 DHCP
8.11.2 SMTP
8.12 スケジュールジョブの監視
8.13 ロギング
8.13.1 収集
8.13.2 保存
8.13.3 分析
8.14 まとめ
9章 ネットワーク監視
9.1 SNMPのつらさ
9.1.1 SNMPとは
9.1.2 SNMPの仕組み
9.1.3 セキュリティについて
9.1.4 SNMPの使い方
9.1.5 インタフェイスのメトリクス
9.1.6 インタフェイスとログ
9.1.7 SNMPに関するまとめ
9.2 構成管理
9.3 音声と映像
9.4 ルーティング
9.5 スパニングツリープロトコル(STP)
9.6 シャーシ
9.6.1 CPUとメモリ
9.6.2 ハードウェア
9.7 フロー監視
9.8 キャパシティプランニング
9.8.1 逆算する
9.8.2 予測する
9.9 まとめ
10章 セキュリティ監視
10.1 監視とコンプライアンス
10.2 ユーザ、コマンド、ファイルシステムの監査
10.2.1 auditdのセットアップ
10.2.2 auditdとリモートログ
10.3 ホスト型侵入検知システム(HIDS)
10.4 rkhunter
10.5 ネットワーク侵入検知システム(NIDS)
10.6 まとめ
11章 監視アセスメントの実行
11.1 ビジネスKPI
11.2 フロントエンド監視
11.3 アプリケーションとサーバの監視
11.4 セキュリティ監視
11.5 アラート
11.6 まとめ
付録A 手順書の例:Demo.App
A.1 Demo App
A.2 メタデータ
A.3 エスカレーション手順
A.4 外部依存
A.5 内部依存
A.6 技術スタック
A.7 メトリクスとログ
A.8 アラート
付録B 可用性表
付録C 実践.監視SaaS
C.1 筆者と監視SaaS
C.2 監視SaaSの利点
C.3 監視SaaSは信用できるのか
C.3.1 監視SaaSビジネスそのものに対する信頼性
C.3.2 事業の継続性について
C.3.3 サービス品質について
C.3.4 悪意はないか
C.4 監視SaaSの選定時に考えること
C.4.1 課題を見つける
C.4.2 機能要件を精査する
C.4.3 組み合わせて使う
C.4.4 運用をサービスに合わせる
C.4.5 ハッカビリティを備えているか
C.4.6 外部の力を活用できるか
C.5 監視SaaSを導入する
C.5.1 監視エージェントのインストール
C.5.2 監視エージェントが収集するメトリクス
C.5.3 シンセティック監視のすすめ
C.6 監視SaaSを活用する
C.6.1 テスト駆動開発と監視
C.6.2 自分で監視を作る
C.6.3 監視を育てる
C.6.4 自動復旧のためのアイデア
C.7 監視SaaSのこれから
C.7.1 監視パラダイムの変遷
C.7.2 機械学習と異常検知
C.8 まとめ
訳者あとがき
索引