入門 監視

―モダンなモニタリングのためのデザインパターン

[cover photo]
TOPICS
Security , System/Network
発行年月日
PRINT LENGTH
228
ISBN
978-4-87311-864-2
原書
Practical Monitoring
FORMAT
Print PDF EPUB
Ebook
3,080円
Ebookを購入する
Print
3,080円

あなたのシステムはきちんと動いていると言えますか? 本書は、システムのどの部分をどのように監視すべきか、また監視をどのように改善していくべきかについて解説する書籍です。
前半で監視のベストプラクティス、デザインパターン/アンチパターンを示して、監視の基本原則を詳しく説明し、後半でフロントエンド、アプリケーション、サーバ、ネットワーク、セキュリティの各テーマで強力な監視の基盤を設計して実装するための方法を示します。
監視対象が変化し、システムアーキテクチャが進化する中で、従来から変わらない監視の基本を示しながら、時代に合った監視の実践を解説する本書は、監視についての理解を深めたいエンジニア必携の一冊です。日本語版では、松木雅幸(@songmu)氏による監視SaaSの導入や活用方法を付録として収録しています。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表


第1刷、第2刷までの正誤表
2019年1月23日更新

■50p 下から7行目
誤:チームどう対応していくのか
正:チームでどう対応していくのか

■77p 上から9行目(リンク切れによりURL削除)
誤:(http://bit.ly/2y66Glp)
正:【削除】

■102p 下から13行目
誤:自ずと明らになります。
正:自ずと明らかになります。

■105p 脚注†1のURL
誤:http://opentracing.io/documentation/
正:https://opentracing.io/docs/

■180p 下から7行目
誤:監視SaaSを導決めたことを検討する際には、
正:監視SaaSの導入を検討する際には、


第3刷までの正誤表
2019年2月4日更新

■110p 下から5行目
誤:(iowait processes、si)
正:(iowait processes、wa)


第4刷までの正誤表
2019年2月21日更新

■91p 下から5行目
誤:mean_90: 10.37
正:mean_90: 12.5

■91p 下から4行目
誤:upper_90: 25
正:upper_90: 30

■91p 下から3行目
誤:sum_90: 83
正:sum_90: 113


第5刷までの正誤表
2023年5月12日更新

■28p 3行目
誤:ナインナイン(可用性99.9999999%)
正:シックスナイン(可用性99.9999%)

■59p 6行目
誤:まずデータセットを昇順に並べ替え、上位nパーセントの値を取り除きます。
正:まずデータセットを昇順に並べ替え、下位100-nパーセントの値を取り除きます。

■59p 8行目
誤:この値を計算するには、上位5%の値を取り除きます。
正:この値を計算するには、下位5%の値を取り除きます。

■75p 上から7行目
誤:変えていく方法を示しいきます。
正:変えていく方法を示していきます。

目次

はじめに

第Ⅰ部 監視の原則

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 まとめ

訳者あとがき
索引