SNMPによるサーバーCPU・メモリ監視の方法

サーバー・ネットワーク統合管理ソフト

SNMPをサーバーパフォーマンスの監視に用いるメリット

SNMP(Simple Network Management Protocol)とは、ネットワーク内に存在する装置の状態を監視することを目的につくられたプロトコルで業界標準の規格です。SNMPを用いた監視では、SNMPエージェントが持つMIB(Management Information Base)に装置の情報が格納されており、このMIBをSNMPマネージャーとやり取りすることで監視対象の装置の情報を取得します。機器のベンダーに左右されず利用することができます。

また、監視対象の機器に監視ツール用のエージェントを個別インストールする必要がないなど、監視を始めるための設定が簡単です。
ベンダーが独自に定義した拡張MIBを利用すれば、そのベンダー機器特有の監視項目もSNMPを通して確認することができます。ベンダーの差異による利用の障壁がない一方で、監視の多様性が確保されてることもSNMP監視の利点の1つです。

SNMPによるCPU使用率の監視方法

SNMPを用いてサーバーのCPU使用率を監視するには、
HOST-RESOURCES-MIBhrProcessorLoad(.1.3.6.1.2.1.25.3.3.1.2)
を使用します。当該のMIB説明は以下の通りです。

"The average, over the last minute, of the percentage of time that this processor was not idle."
(このプロセッサがアイドル状態になっていない時間の割合の最新1分間平均)

このMIBオブジェクトにより、CPUの各論理コアのCPU使用率の平均が取得できます。
各論理コアの値の平均を算出することにより、サーバーのCPU使用率を算出することが可能です。

snmpwalkコマンドを用いたサーバーCPU使用率の算出例

#snmpwalk -v1 -c public hostname .1.3.6.1.2.1.25.3.3.1.2
HOST-RESOURCES-MIB::hrProcessorLoad.1 = INTEGER: 4
HOST-RESOURCES-MIB::hrProcessorLoad.2 = INTEGER: 11
HOST-RESOURCES-MIB::hrProcessorLoad.3 = INTEGER: 9
HOST-RESOURCES-MIB::hrProcessorLoad.4 = INTEGER: 8
HOST-RESOURCES-MIB::hrProcessorLoad.5 = INTEGER: 16
HOST-RESOURCES-MIB::hrProcessorLoad.6 = INTEGER: 13
HOST-RESOURCES-MIB::hrProcessorLoad.7 = INTEGER: 5
HOST-RESOURCES-MIB::hrProcessorLoad.8 = INTEGER: 4

(4 + 11 + 9 + 8 + 16 + 13 + 5 + 4) / 8 = 8.7..(%)

よってCPU使用率は9%となります。

SNMPによるメモリー使用率の監視方法

SNMPを用いてサーバーのメモリー使用率を監視するには、HOST-RESOURCES-MIBの以下の3つのMIBオブジェクトを使用します。

hrStorageType - .1.3.6.1.2.1.25.2.3.1.2
hrStorageAllocationUnits - .1.3.6.1.2.1.25.2.3.1.4
hrStorageUsed - .1.3.6.1.2.1.25.2.3.1.6

メモリ使用率(%)は、以下の計算式で求められます。

(hrStorageAllocationUnits * hrStorageUsed)/(Total Ram Size(MB) * 1024 * 1024) *100
Total Ram Siz(MB)はサーバーのRAM値です。

snmpwalkコマンドを用いたサーバーメモリー使用率の算出例

サーバーのRAM:16GB

HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk
HOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageCompactDisc
HOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageVirtualMemory
HOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageRam

#snmpwalk -v1 -c public hostname .1.3.6.1.2.1.25.2.3.1.4
HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 0 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 65536 Bytes
HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 65536 Bytes

#snmpwalk -v1 -c public hostname .1.3.6.1.2.1.25.2.3.1.6
HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 35826129
HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 0
HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 140433
HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 132504

hrStorageType中の「hrStorageRam」(インデックス4)の値を使用します。

よって、hrStorageAllocationUnitsは「65536」、hrStorageUsedは「132504」となります。 これを計算式に当てはめると、

(65536 * 132504)/(16384 * 1024 * 1024) * 100 = 50.5...(%)

よってメモリー使用率は51%となります。

SNMPを使用した監視をより効率化するツール

サーバーパフォーマンスの監視目的でSNMPプロトコルやMIBを扱う場合、サーバーの台数が増加するにつれて、管理の手間が増えてしまいます。

手動でのコマンド実行や計算よりも効率的にネットワーク機器を管理・監視するには、SNMPを利用して自動でパフォーマンスデータを収集するツールを使用するのがお勧めです。

ManageEngineが提供する統合監視ツールである「OpManager」は、SNMPを利用してネットワーク機器を自動で監視し、機器のステータスが一目で分かるように可視化します。 スイッチ監視、ルーター監視、CPU監視、メモリ監視、ポート監視、アプリケーション監視、イベントログ監視機能などが、Webベースのわかりやすい画面で管理できます。ネットワーク監視に関する知識がない方でも操作が可能で、容易に運用できるのが特徴です。

ネットワーク機器やサーバーの監視の自動化・効率化の方法をお探しの場合は、是非「OpManager」をご検討ください。

SNMPから取得したデータをわかりやすく可視化

SNMPから取得したデータをわかりやすく可視化

無料で使えます[機能・監視数 無制限]

ダウンロードはこちら 概要資料はこちら

関連機能