Lesson 7

サーバーの監視

Lesson 7 Chapter 1
障害監視

レッスン6では「障害を防ぐ、障害に対応する」について学習してきました。
では、障害が発生したというのはいつ分かるのでしょうか?
なにも対策をしていないと、障害が発生しても、利用者に不具合が生じて連絡を受けるまで気づかないかもしれません。 サーバーが「正常に稼働しているのか」や、「サーバーに異常が発生した」などを検知するにはサーバーを「監視」することが必要です。
レッスン7では「サーバーの監視」について学習していきましょう。

まず、チャプター1では障害監視について説明していきます。

障害監視

障害監視とは、サーバーに問題が発生していないかどうかを監視することです。 大きく分けて以下の「異常監視」と「正常監視」の2つに分けることができます。

  • 異常監視
  • 異常監視とは、サーバーの構成要素に問題が発生したときに管理者に知らせるために実施します。 メールやアラート表示、音声やランプ点灯などの通知方法があります。

  • 正常監視
  • 正常監視とは、サーバーの構成要素が正常に動作していることを確認するために実施します。 正常に動作していることが分かるようにステータスを表示したり通知したりします。

監視対象と監視方法

サーバーで監視が必要な対象と、監視方法を以下の表にまとめましたのでご覧ください。

対象 監視方法
リソース監視 サーバーのCPUやメモリ、ストレージ容量などの使用状況を可視化して監視。 それぞれの使用率の閾値を設けて、閾値を超えた場合は検知して通知する。
ハードウェア監視 サーバーを構成する電源やバッテリー、ファン、CPU、メモリなどのハードウェアと通信を行いステータスを取得。 取得したステータスの変化を検出して異常があった場合は検知して通知する。
ログ監視 OSやソフトウェア、ハードウェアなどが出力するログを監視して、ログに異常が書き込まれた場合に検知して通知する。
死活監視 サーバーが動作しているかを、ネットワークを通じて定期的に調べる。 一定時間応答がない場合は通知する。
トラフィック監視 ネットワーク上でサーバーと通信するデータ量を監視。 データ転送量の把握や、現在の帯域幅で問題ないかを判断する。
アプリケーション監視 サーバー上で動作するアプリケーションの状態を監視。 APM(Application Performance Manager)ツールなどを利用して監視する。
ジョブ監視 ジョブとは、プログラムやバッチ処理のことで、「ジョブスケジューラ」や「タスクスケジューラ」で複数のジョブの起動や終了を制御している。 そのジョブの実行状況を監視し、正常終了や異常終了、警告終了などを検知して通知する。

上記のような監視を行う目的は、障害が発生したときに発生場所や原因を特定し迅速な復旧を行うことです。 本レッスンでは、このあとのチャプターで「リソース監視」「ハードウェア監視」「ログ監視」について詳しく説明していきます。

このチャプターでは障害監視を学習しました。次のチャプターではリソース監視について学習しましょう。

Lesson 7 Chapter 2
リソース監視

チャプター1では、監視の中にも様々な監視対象があることを学びました。 チャプター2では、その中から「リソース監視」について詳しく学習していきましょう。

リソース監視

リソース(resource)は、直訳すると資源や資産を意味する言葉です。 「リソース監視」とは、サーバーを構成する以下のハードウェアの使用状況を監視することです。性能監視とも呼ばれています。

  • CPU
  • メモリ
  • ストレージ(ディスク)
  • ネットワーク転送量

リソース状況をグラフで表示して、リソースの使いすぎによるシステム障害やパフォーマンス低下の予防などに利用されています。

パフォーマンスモニター

Windowsを利用している方なら、パフォーマンスモニターを使用して簡単にリソース監視を体感できるのでご紹介します。
「Windowsキー」+「R」を押して、「ファイル名を指定して実行」が表示されたら「perfmon」と入力してOKをクリックします。

server-lesson7-2-1

すると以下のようなウィンドウが表示されますので、①左メニューからパフォーマンスモニターを選択してください。 ※画面はWindows10の例

server-lesson7-2-2

「カウンターの追加」ウインドウが表示されます。「Processor Information」の右側の①矢印を押すと中の項目が展開されます。
※「Processor」と「Processor Information」があるのですが、「Processor Information」の方はシステムの高性能化に対応するために、Windows Server 2008 R2で追加されたものです。 今回は「Processor Information」を使用します。

server-lesson7-2-3

展開された中から①「% Privileged Time」と「% User Time」を選択して、②追加ボタンを押してから、③OKを押してください。

server-lesson7-2-4

以下のようなグラフが表示されます。
このままだと、赤のグラフが2つ表示されていて見分けがつかないので色を変更します。

server-lesson7-2-5

①3つ表示されている中から真ん中のカラーが赤で表示されている行をダブルクリックします。

server-lesson7-2-6

以下のウインドウが表示されますので、①カラーを青に変更し、③OKをクリックしてください。

server-lesson7-2-7

これで3色見分けがつくようになりました。 もし分かりにくければお好みのカラーに変更してください。

server-lesson7-2-8

それでは、表示している3つの項目について説明します。

  • % Processor Time
  • 最初から選択されていた「% Processor Time」は全体のCPU使用率を表しています。 全体のCPU使用率が常に85%を超えるようだと、CPUがボトルネックになっていると考えられます。

  • % Privileged Time
  • カーネルモードのCPU使用率を表しており、主にOSの基本動作を担当しています。 カーネルモードがCPU使用率を圧迫している場合、起動するサービスを減らすなどの対策は可能ですが、できることは限られてしまいます。

  • % User Time
  • ユーザーモードのCPU使用率を表しており、主にアプリケーションの動作を担当しています。 ユーザーモードがCPU使用率を圧迫している場合、起動しているアプリケーションを減らすなどの対策が考えられます。

上記の3つの利用率を監視することで、CPUの使用率が高騰したときの原因の特定に役立ちます。

パフォーマンスモニターでは、他にも多数の項目を監視することができます。代表的な項目を以下の表にまとめましたのでご紹介します。

カテゴリ カウンター 内容
Memory Available MBytes 利用可能なメモリ容量をMBで表示
Pages/Sec 1秒あたりのページングの回数
継続的に5を超える場合はボトルネックになる
Commited Bytes 仮想メモリの使用量をバイト数で表示
Physical Disk % Disk Time ディスクのビジー率を表示
継続的に50%以上の場合はディスクへの負荷が高いといえる
Current Disk Queue Length ディスクに対して、アクセス待ちをしているリクエストの数を表示
平均2以上の場合はボトルネックの可能性がある
Network Interface Bytes Total/Sec NICが1秒間に送受信したバイト数を表示

サーバーでのリソース監視では、継続的に監視していくことで異常を検知することが可能になります。 人の手で毎日24時間監視を続けることは難しいため、一般的にはツールを使用して監視することが多いです。 ツールを使うことで、管理者がリソースごとに閾値を設定して、その閾値を超えた場合にアラート通知を行うことも可能です。

このチャプターではリソース監視を学習しました。次のチャプターではハードウェア監視について学習しましょう。

Lesson 7 Chapter 3
ハードウェア監視

チャプター2では、ハードウェアの使用状況を監視するリソース監視について学習しました。
ハードウェアには、使用率を圧迫してパフォーマンスが低下するリスクのほかに、物理的な異常が発生してパフォーマンスが低下するリスクや故障のリスクもあります。 そのため、ハードウェアが正常に動作しているか、異常は発生していないかを監視する必要があります。
チャプター3では、ハードウェアの物理コンポーネントを監視するハードウェア監視について学習していきましょう。

ハードウェア監視の対象

では、ハードウェア監視とは具体的に何を監視しているのか説明します。
コンピュータを構成する物理コンポーネントには、以下のものがあります。

  • マザーボード
  • CPU
  • メモリ
  • ストレージ
  • 電源・バッテリー
  • ファン

これらの物理コンポーネントには、温度や電圧などのステータスの変化を検出して測定する「ハードウェアセンサー」が内蔵されています。
ハードウェア監視では、ハードウェアセンサーから情報を収集して可視化します。

次のステップでは、サーバーの監視とは少し違いますが、ハードウェアセンサーからどのような情報を取得できるのか実験してみましょう。

ハードウェアモニタリング

CPUの温度を確認するには、チャプター2で使用したパフォーマンスモニターでも表示することはできます。 ですが、ここではもっと簡単に表示できる「HWMonitor」というフリーソフトをご紹介します。
※Macの方はこちらから「HWSensors.6.26.1440.Binaries.dmg.zip」をご利用ください。

上記の名前をクリックすると、以下の画面が表示されます。左側に「SETUP・ENGLISH」と「ZIP・ENGLISH」がありますので、今回は下の「ZIP・ENGLISH」の方をクリックして下さい。

server-lesson7-3-1

画面が遷移して以下の画面が表示されたら、「DOWNLOAD NOW!」をクリックして下さい。 すると、「hwmonitor_1.49.zip」がダウンロードされます。

server-lesson7-3-2

ダウンロードが完了しましたらzipファイルを解凍して下さい。 解凍したフォルダ内には以下のようなファイルが入っています。
そして、使用しているPCに合わせて32bit用か64bit用どちらかのexeファイルをダブルクリックして実行して下さい。
※確認メッセージが表示された場合は「はい」をクリックして下さい。

server-lesson7-3-3

以下のようなウィンドウが表示されます。
※インストール不要で実行できますので、不要になったらフォルダごと削除して下さい。

server-lesson7-3-4

表示される内容はPCによって違いますが、簡単に表示されている内容を説明します。
●Voltages   電圧
●Temperatures   温度
●Powers   消費電力
●Utilization   使用率
●Clocks   クロック周波数
●Speed   読み取り/書き込み速度
上部にある「Value」の列が現在の値で、「Min」と「Max」はツール実行中の最小値と最大値を表しています。

上記の例では、CPUやストレージの温度などを取得していることが分かります。 CPUではとくに、電圧や消費電力など詳細な情報が表示されています。

ハードウェア監視もリソース監視と同じように継続的に監視することが必要です。
例えば、CPUの温度が正常時はMax50°C前後で動作していたとします。 それが突然80°Cを超える状態が続いた場合、なにか異常が発生しているのではないかと気付きます。

正常な状態を把握していることで、異常が発生したときの検知に繋がります。 これにより、故障などが発生した場合でも迅速な対応が可能になります。

このチャプターではハードウェア監視を学習しました。次のチャプターではログ監視について学習しましょう。

Lesson 7 Chapter 4
ログ監視

ログについてはレッスン6-5でも紹介しましたが、コンピュータやネットワーク機器は様々な情報を記録しています。 ログには「いつ、どこで、誰が、何をしたか」の情報が記録されています。そのログを監視することにより、システムの安定稼働やセキュリティ強化に利用することができます。

ログの種類

様々な情報を記録するログには、多くの種類が存在します。以下の表で代表的なログをご紹介しますのでご覧ください。

種類 内容
アプリケーションログ アプリケーションの動作や異常を記録する
システムログ Unix系OSのシステムの動作を記録する
イベントログ Windows系OSのシステムの動作を記録する
セキュリティログ マルウェア対策や、ファイアウォールの機器のログなどセキュリティイベントを記録する
ミドルウェアログ データベースやファイル転送などミドルウェアの動作を記録する
アクセスログ サーバーへの接続履歴で、主にWebサーバーへのアクセスを記録する
通信ログ PCやサーバー間の通信内容を記録する
操作ログ PCの操作やシステムの操作などを記録する

上記のように多数のログが存在するため、この情報を人の手で分析していくのは膨大な労力が必要になります。 また、24時間365日監視する必要もあるため、ログ監視を行うにはツールが必要です。

イベントビューア

実際にサーバーのログ監視を体感するには、システムの構築が必要になるため、ここではWindowsに標準で付属しているイベントビューアを使用してイベントログの基本的な見方を学習しましょう。

まず「Windowsキー」+「R」を押して、「ファイル名を指定して実行」が表示されたら「eventvwr」と入力してOKをクリックして下さい。

server-lesson7-4-1

イベントビューアが表示されたら、左メニューの①Windowsログを展開してください。 すると、5つの項目が表示されます。※画面はWindows10の例

server-lesson7-4-2

各項目で表示される主な内容を、以下の表にまとめましたのでご覧ください。

名用 内容
Application アプリケーションに関連するイベントを記録。
アプリケーションのインストールやアンインストールの成功、異常終了などが記録される。
プログラム中にエラーが発生した場合のログは、開発者が出力する内容を決める。
セキュリティ セキュリティに関連するイベントを記録。
ログインの成功や失敗などが記録される。
管理者によってログに記録するイベントを指定できる。
Setup Windows Updateによるシステムの更新に関連するイベントを記録。
システム システム全体に関連するイベントを記録。
Windowsの起動やシャットダウンなどWindowsのイベントを記録。
イベントの種類は予め決められている。
Forwarded Events 複数のサーバーのイベントログを収集することが可能。

ここではWindowsのイベントを記録している「システム」について見ていきましょう。
下の画像をもとに説明します。
左メニューから①「システム」を選択すると、システムログの一覧が表示されます。
画面上では、②で「レベル・日付と時刻・ソース・イベントID・タスクのカテゴリのリスト」が表示され、 ③では起きたイベントの内容、④では②と同じ内容ですがソースやイベントID、レベルなどが確認できます。 ※画面クリックで拡大表示します。

では、分かりやすい例として、PCの起動時間と終了時間を見てみましょう。
⑤「現在のログをフィルター…」をクリックして下さい。

server-lesson7-4-3

すると、以下のようなウィンドウが表示されます。
このウィンドウでは、現在表示しているログをフィルタリングすることができます。
①「<すべてのイベントID>」のところに、「7001,7002」と入力して、②OKをクリックしてみましょう。
※入力フォームに説明があるように、範囲で「7001-7002」と入力しても同じ結果を得られます。

server-lesson7-4-4

以下のように、イベントIDが「7001」と「7002」のもののみが表示されました。 また、全般タブを確認すると、「7001」はログオン通知であることが分かります。「7002」はログオフの通知です。

server-lesson7-4-5

高速スタートアップ

上記の例では、Windows10の「高速スタートアップ」を有効にしている場合の例です。 高速起動はスリープ扱いになるため、起動やシャットダウンのログが残らない特徴があります。 「高速スタートアップ」を無効にしている場合や、Windows10より以前のバージョンを使用している場合は、IDを「12,13」や「6005,6006」でフィルタリングして下さい。

<イベントID >
・12   OSの起動
・13   OSのシャッドダウン
・6005   イベントログサービスの開始
・6006   イベントログサービスの停止(正常に終了)

上記の例のように、イベントはイベントIDと紐づいていることが分かります。 PCにトラブルが発生した場合は、イベントビューアのレベルが「エラー」のログを確認して、イベントIDとソースをインターネットで検索すると、原因の究明に繋がる可能性が高まります。

ここまでに紹介した方法が、イベントビューアを使用した基本的なログの見方ですが、実はWindowsに標準で搭載されている「タスクスケジューラ―」を使うと、イベントログを監視することも可能です。 特定のイベントIDやレベルを指定して、そのイベントが記録されたときに通知をしたりメールを送信することもできます。

本レッスンでは、サーバーの監視の基礎知識と、クライアント側のPCでも体験できる基本的な監視方法を学習しました。 次のレッスンでは「サーバーを設置する」を学習しましょう。