@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「Webエンジニアのための監視システム実装ガイド 」を読んだ

前から欲しい物リストに入れていたけど届かなかったのだが、本屋で見かけたから買って読んでみた。

Chapter 1 監視テクノロジの動向
Chapter 2 監視テクノロジの概要
Chapter 3 監視テクノロジの基礎
Chapter 4 監視テクノロジの導入
Chapter 5 監視テクノロジの実装
Chapter 6 インシデント対応実践編
Chapter 7 監視構成例

監視システムの移り変わりから、ツールの説明、導入方法が書かれている。さらに監視の具体例と監視でインシデントが発見された際の対応についてまで説明されている。最後の章では監視を行うためのデザインパターン的な、いくつかのアーキテクチャの例が紹介されている。

まず監視の志向性として、チェックとメトリクスがあることが紹介されていた。それぞれは以下。

  • チェック指向・・・異常検知を志向
  • メトリクス指向・・・状況把握を志向

チェックとメトリクスはそれぞれ見たいものが違うため、どちらも使うことで狭義、広義どちらのモニタリングもできるようになる。
そして、チェックの仕組みには2つある。

  • Active・・・監視システムが能動的に監視対象にアクセスし観測。Pull方式
  • Passive・・・監視システムは待機、監視対象からデータを受け取り受動的に判定。Push方式

メトリクス収集もPullとPush の2パターンがある。それぞれにはメリット・デメリットがあるのでシステムの大きさ、データの必要な精度、システムにどこまで手が入れれるかなどによって選ぶ方式、ツールが変わってくる。どっちのほうが良い、悪いということでもないとは思うので使いやすいものと取得したいものが何かでちゃんと考える必要があるのだろうな。ただ、最近はクラウドを使っているとそもそも監視ツールが付いているのでそれらを使ってみることが多い気がする。

監視システムの構成は大まかに3つの要素で構成されていると紹介されている。

  1. 観測部分:監視対象を観測しデータを取得する
  2. データ収集部分:取得したデータを監視システムに集める
  3. データ利用部分:集めたデータを利用し正常性の判定や通知などを行う

収集したいもの、収集方法によってOS、ディスク、ネットワークなどシステムのモニタリングとログや応答時間などのアプリケーションのモニタリングを行っていく必要がある。また、それらを組み合わせてシステムの可用性などを踏まえてビジネスのモニタリングとして見ていくようにしていくのが良さそうである。

インシデント対応の章ではインシデント発生からClose するまでの流れが説明されている。対応を行ったあとの恒久対応のところが学びになった。再現できることと再現条件からインシデントの原因を説明できることとあった。確かにそれができればインシデント部分の解消もできるし、解消がすぐにできないようなら回避策を行うことができるかもしれない。インシデントの際は解決して、その時の行動についての振り返りはよく行っているが、原因について調べるが再現できるかまではあまり行っておらずなのでそちらについても振り返りを考えていくのが良さそう。

最後の章ではOSSを利用したパターン、SaaS 利用したパターン、クラウド基盤組み込みのものなどを使っての構成例が紹介されいてる。チェック、メトリクス、ログ、トレース、APM のそれぞれについて紹介がされている。その中から自分たちが見たいもの、お金などによって使うものを決めていくのが実際にシステムを構築していく上ですすめていくことになる。

まとめ

  • 監視システムについて、概要から選定・導入・運用まで一通り説明されていた
  • なんでも監視する必要があるのではなく緩急を付ける必要がありそうと思った
  • 使われ続けるためにシステムが動き続けるために必要なことなのでもっと勉強して試してみようと思った