プロダクト開発

サーバの運用監視の種類とツール。死活監視、ログ監視など

ソフトウェアが運用段階に入ると、重要になってくるのが運用監視ですよね。ソフトウェアが動作するサーバを監視することで、ソフトウェアを正常に動作させ、また問題が起きそうなときにも、あらかじめ対策をとることができます。

私もよくサーバの運用監視を行うのですが、あらためて考え方を整理するために、運用監視の目的や種類、ツールなどについてまとめてみました。

想定している読者の方

この記事はエンジニアの方、とくに運用監視に携わる方、これから携わろうとしている方を対象としています。私はWebエンジニアなので、Web上のソフトウェアという文脈で書いていきます。

サーバの運用監視とは

サーバの運用監視とは『サーバが正常に動作しているか、また問題が起きそうでないかを継続的にチェックすること』をいいます。

ここでいうサーバにはいろんな種類があります。Webサーバやデータベースサーバ、メールサーバなどがあります。こういったサーバの運用監視について次にまとめていきます。

なぜサーバを運用監視するのか

サーバを運用監視する目的としては、大きく次の3つがあると思っています。

  1. サーバが正常に動作しているかをチェックするため
  2. サーバに問題が起きそうなときに、あらかじめ対策をとるため
  3. サーバに問題が起きたときに、すぐ復旧するため

サーバを運用していると、いろんな問題が起きます。なんらかの問題でアプリケーションが応答しなくなったり、プロセスが止まったりします。CPUの使用率が高くなったり、メモリが枯渇して動作が遅くなることもありますね。

こういった問題の原因もいろいろあって、たとえば直近のリリースに不具合があったり、あるいはDDoSのような攻撃を受けて負荷が高まったことが理由になるかもしれません。

いずれにせよ、サーバに問題が起きてしまうと、ユーザの体験を損ねてしまいます。ビジネスの種類によっては大きなトラブルに発展するかもしれません。

問題が起きる前に対策をとり、問題が起きないようにする必要があります。また、問題が起きたときもすぐ復旧したいですよね。サーバの運用監視は、こういった目的のために行います。

正常監視と異常監視

サーバが正常に動作しているかどうかを確認することを正常監視、なんらかの異常が起きたときに運用者に通知することを異常監視といったりします。

サーバの運用監視の種類

ひとことで運用監視といっても、いろんな種類の監視があります。次に、一般的な監視の種類をまとめます。

  1. 死活監視
  2. リソース監視
  3. サービス監視
  4. プロセス監視
  5. ログ監視

1. 死活監視

外部から一定時間おきにPINGを送信して、正常なリクエストが返ってくるかどうかを監視します。サーバが正常に稼働しているかどうかをチェックできます。

2. リソース監視

サーバのCPUやメモリ、ディスクといったリソースを監視します。これらの値はサーバの応答速度の低下などの原因になります。しきい値を設定して運用者に通知することで、問題の予防につながります。

3. サービス監視

外部からインターネット経由でポートにリクエストを送り、HTTPやHTTPS、DNS、FTPといった基本的なサービスが正常に動作しているかどうかを監視します。

4. プロセス監視

データベースや他のアプリケーションのプロセスが正常に動作しているかどうかを監視します。

5. ログ監視

サーバで行った処理やイベントなどを記録したデータを監視します。サーバに問題が起きたときの調査に役立ちます。

プッシュ型とプル型

サーバの運用監視の種類を上で示しました。次にこれを行うツールを示していきますが、その前提となるプッシュ型とプル型という概念について整理しておきます。これらはインストールの方法や特徴が異なります。

プッシュ型

プッシュ型のツールは、監視対象となるサーバにソフトウェアをインストールすることで監視を行います。サーバを監視して、その結果を中央サーバに送信します。プッシュ型はサーバの詳細な情報を収集できるという特徴があります。ファイアウォールで外部からのアクセスが制限されていても問題なく監視できます。

プル型

外部のサーバから監視対象となるサーバにリクエストを行うことで監視します。監視対象となるサーバが増減したら、設定を変更する必要があります。サーバに問題が起きたときにすばやく察知できるという特徴があります。

サーバを運用監視するためのツール

それでは運用監視のためのツールをまとめます。実際に導入するときは、どの監視ができるのか、プッシュ型かプル型か、コストや操作性といった判断基準をもとに選択することになると思います。

ツールの機能やコスト、操作性などは今後変わる可能性があるので、詳細は比較はせず、ここではツールの一覧を示すにとどめます。

プッシュ型

プル型

プル型のツールでも、プッシュ型として監視するための手段があるものがあります。

問題発生時の通知方法

上でも書いたのですが、サーバの運用監視の目的は予防原因特定です。問題が起きそうなとき、あるいは実際に起きたときに、メールやチャットツール、電話などで通知することで対応を行うことになります。

ただ、すべての問題を同じ方法で通知してしまうと、運用担当者の負担がふえてしまいます。通知する相手も設定できると、負担の軽減につながります。こういった、問題のレベルに応じた適切な通知をとる手段があるといいですね。

このことを実現する方法として、PagerDutyのようなインシデント管理ツールがあります。これは運用監視ツールのアラートを一箇所に集約して、問題のレベルに応じて通知対象や通知方法を柔軟に設定することができます。

問題が発生したときの対応に課題が出てきたら、導入を検討してみるといいかもしれません。

まとめ

サーバの運用監視は、サーバを正常に動作させたり、問題の予防や問題が発生したときにすぐ対応するために重要な役割を果たします。運用監視には死活監視やリソース監視など、いくつかの種類があります。

運用監視のツールを選ぶときは、どの監視ができるか、動作方法はプッシュ型かプル型かなどをもとに選ぶことになります。

参考文献

著者
ぜに/Hiroki Zenigami

Webエンジニア&プロダクトマネージャ←プログラミング教育で起業←東大院←熊本高専。 共著に「現場で使えるRuby on Rails 5」。

関連記事関連書籍人気記事
applis
エンジニアとしてのんびり暮らす
お問い合わせ
ご意見・ご質問やお仕事のご依頼などは下記よりお願いいたします
お問い合わせ
© applis