ソフトウェアが運用段階に入ると、重要になってくるのが運用監視ですよね。ソフトウェアが動作するサーバを監視することで、ソフトウェアを正常に動作させ、また問題が起きそうなときにも、あらかじめ対策をとることができます。
私もよくサーバの運用監視を行うのですが、あらためて考え方を整理するために、運用監視の目的や種類、ツールなどについてまとめてみました。
この記事はエンジニアの方、とくに運用監視に携わる方、これから携わろうとしている方を対象としています。私はWebエンジニアなので、Web上のソフトウェアという文脈で書いていきます。
サーバの運用監視とは『サーバが正常に動作しているか、また問題が起きそうでないかを継続的にチェックすること』をいいます。
ここでいうサーバにはいろんな種類があります。Webサーバやデータベースサーバ、メールサーバなどがあります。こういったサーバの運用監視について次にまとめていきます。
サーバを運用監視する目的としては、大きく次の3つがあると思っています。
サーバを運用していると、いろんな問題が起きます。なんらかの問題でアプリケーションが応答しなくなったり、プロセスが止まったりします。CPUの使用率が高くなったり、メモリが枯渇して動作が遅くなることもありますね。
こういった問題の原因もいろいろあって、たとえば直近のリリースに不具合があったり、あるいはDDoSのような攻撃を受けて負荷が高まったことが理由になるかもしれません。
いずれにせよ、サーバに問題が起きてしまうと、ユーザの体験を損ねてしまいます。ビジネスの種類によっては大きなトラブルに発展するかもしれません。
問題が起きる前に対策をとり、問題が起きないようにする必要があります。また、問題が起きたときもすぐ復旧したいですよね。サーバの運用監視は、こういった目的のために行います。
ひとことで運用監視といっても、いろんな種類の監視があります。次に、一般的な監視の種類をまとめます。
外部から一定時間おきにPINGを送信して、正常なリクエストが返ってくるかどうかを監視します。サーバが正常に稼働しているかどうかをチェックできます。
サーバのCPUやメモリ、ディスクといったリソースを監視します。これらの値はサーバの応答速度の低下などの原因になります。しきい値を設定して運用者に通知することで、問題の予防につながります。
外部からインターネット経由でポートにリクエストを送り、HTTPやHTTPS、DNS、FTPといった基本的なサービスが正常に動作しているかどうかを監視します。
データベースや他のアプリケーションのプロセスが正常に動作しているかどうかを監視します。
サーバで行った処理やイベントなどを記録したデータを監視します。サーバに問題が起きたときの調査に役立ちます。
サーバの運用監視の種類を上で示しました。次にこれを行うツールを示していきますが、その前提となるプッシュ型とプル型という概念について整理しておきます。これらはインストールの方法や特徴が異なります。
プッシュ型のツールは、監視対象となるサーバにソフトウェアをインストールすることで監視を行います。サーバを監視して、その結果を中央サーバに送信します。プッシュ型はサーバの詳細な情報を収集できるという特徴があります。ファイアウォールで外部からのアクセスが制限されていても問題なく監視できます。
外部のサーバから監視対象となるサーバにリクエストを行うことで監視します。監視対象となるサーバが増減したら、設定を変更する必要があります。サーバに問題が起きたときにすばやく察知できるという特徴があります。
それでは運用監視のためのツールをまとめます。実際に導入するときは、どの監視ができるのか、プッシュ型かプル型か、コストや操作性といった判断基準をもとに選択することになると思います。
ツールの機能やコスト、操作性などは今後変わる可能性があるので、詳細は比較はせず、ここではツールの一覧を示すにとどめます。
上でも書いたのですが、サーバの運用監視の目的は予防と原因特定です。問題が起きそうなとき、あるいは実際に起きたときに、メールやチャットツール、電話などで通知することで対応を行うことになります。
ただ、すべての問題を同じ方法で通知してしまうと、運用担当者の負担がふえてしまいます。通知する相手も設定できると、負担の軽減につながります。こういった、問題のレベルに応じた適切な通知をとる手段があるといいですね。
このことを実現する方法として、PagerDutyのようなインシデント管理ツールがあります。これは運用監視ツールのアラートを一箇所に集約して、問題のレベルに応じて通知対象や通知方法を柔軟に設定することができます。
問題が発生したときの対応に課題が出てきたら、導入を検討してみるといいかもしれません。
サーバの運用監視は、サーバを正常に動作させたり、問題の予防や問題が発生したときにすぐ対応するために重要な役割を果たします。運用監視には死活監視やリソース監視など、いくつかの種類があります。
運用監視のツールを選ぶときは、どの監視ができるか、動作方法はプッシュ型かプル型かなどをもとに選ぶことになります。