今回は MRTG のお話です。MRTG は遠隔のサーバから対象サーバに対して、CPU の負荷やメモリの状態、ハードディスクの容量などをチェックするツールです。
また、ネットワークのトラフィックもチェックできるので、ハードウエア絡みの監視はほとんどまかなえるのではないでしょうか。
MRTGの特徴
MRTG は snmp というプロトコルを利用して情報を取得します。
よって、エージェント側(監視される側)では snmp のデーモンを起動しておく必要があります。
CentOS では、net-snmp は yum で簡単に導入することができます。
もちろん tar での提供もされているので、どちらを使用しても大丈夫です。
net-snmp5.3 からは snmptrap の設定が 5.2 と比べて若干変更になっているので、注意が必要です。
MRTGを使ってみる
今回はエージェントを CentOS にしたら、ディスク IO の値が取得できなかったので調べてみました。
多分 CPU や HDD のハードウエアではなく入出力などの部分なので、OS またはカーネルの問題で、MIB 値が変更になったと思われます。
では、早速、下記のコマンドで、デバイスの情報を取得できます。
1 2 3 4 5 6 7 8 9 | $ snmpwalk -v 2c -c {SNMPGROUPNAME} localhost 1.3.6.1.4.1.2021.13.15.1.1.2 [一部抜粋] UCD-DISKIO-MIB::diskIODevice.1 = STRING: ram0 UCD-DISKIO-MIB::diskIODevice.2 = STRING: ram1 UCD-DISKIO-MIB::diskIODevice.17 = STRING: hda UCD-DISKIO-MIB::diskIODevice.18 = STRING: sda UCD-DISKIO-MIB::diskIODevice.19 = STRING: sda1 UCD-DISKIO-MIB::diskIODevice.20 = STRING: sda2 UCD-DISKIO-MIB::diskIODevice.21 = STRING: sda3 |
ちなみに、HDD の状況は df コマンドで確認できます。また、diskIONWritten の値は下記のコマンドで見れます。
1 2 3 4 5 6 7 8 | $ snmpwalk -v 2c -c {SNMPGROUPNAME} localhost 1.3.6.1.4.1.2021.13.15.1.1.4 [一部抜粋] UCD-DISKIO-MIB::diskIONWritten.1 = Counter32: 0 UCD-DISKIO-MIB::diskIONWritten.2 = Counter32: 0 UCD-DISKIO-MIB::diskIONWritten.3 = Counter32: 0 UCD-DISKIO-MIB::diskIONWritten.18 = Counter32: 1312542720 UCD-DISKIO-MIB::diskIONWritten.19 = Counter32: 69783552 UCD-DISKIO-MIB::diskIONWritten.20 = Counter32: 43851776 |
今回は、sda 全体の値を使ってあげれば OK なので、デバイス 18 を使います。
1 2 3 | (MRTGの設定例) Target[diskio]:.1.3.6.1.4.1.2021.13.15.1.1.4.18&.1.3.6.1.4.1.2021.13.15.1.1.3.18:{SNMPGROUPNAME}@{IPアドレス} Target[diskios]: .1.3.6.1.4.1.2021.13.15.1.1.6.18&.1.3.6.1.4.1.2021.13.15.1.1.5.18:{SNMPGROUPNAME}@{IPアドレス} |
RFC1514 を見ても今回はさっぱりわからなかったのですが、diskIODevice の確認ができればなんとか掴めたような気がします。
間違っていたらご指摘下さい。まだ、Linux のハードウエア周りは苦手です・・・。