2016年6月17日金曜日

snmpdの設定を行う(ディスク使用率編)

dfコマンドで現在の使用状況を表示させてみました。

# df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/mapper/vg_nmcent64-lv_root
                       43G  2.2G   39G   6% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot

んー、MRTGで表示させるのはルートのみですかね。後はなくてもいいよね。とはいえ、MRTGは2値が必要なので、/bootも表示させることにしてみます。

前回作成したsnmpd.confにディスク関係のパラメータを追記します。(赤字が追記部分。)追記が無いと、MIB値を取ろうと思っても値が返ってきません。

#       sec.name        source            community
com2sec notConfigUser   192.168.15.0/24   test-ro
com2sec notConfigUser   localhost         test-ro

#                       sec.model         sec.name
group   notConfigGroup  v1                notConfigUser
group   notConfigGroup  v2c               notConfigUser

#           incl/excl   subtree         mask
view all    included    .1              80

#                       context sec.model sec.level prefix read   write notify
access notConfigGroup   ""      any       noauth    exact  all    none  none

#
disk / 10000
disk /boot 10000

追記が終了したら、snmpdの再起動を実行します。

ディスク関連のOID (1.3.6.1.4.1.2021.9) を指定して snmpwalkを実行します。

#  snmpwalk -v 1 -c test-ro localhost 1.3.6.1.4.1.2021.9
UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1
UCD-SNMP-MIB::dskIndex.2 = INTEGER: 2
UCD-SNMP-MIB::dskPath.1 = STRING: /
UCD-SNMP-MIB::dskPath.2 = STRING: /boot
UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/mapper/vg_nmcent64-lv_root
UCD-SNMP-MIB::dskDevice.2 = STRING: /dev/sda1
UCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10000
UCD-SNMP-MIB::dskMinimum.2 = INTEGER: 10000
UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1
UCD-SNMP-MIB::dskMinPercent.2 = INTEGER: -1
UCD-SNMP-MIB::dskTotal.1 = INTEGER: 44969032
UCD-SNMP-MIB::dskTotal.2 = INTEGER: 495844
UCD-SNMP-MIB::dskAvail.1 = INTEGER: 40482144
UCD-SNMP-MIB::dskAvail.2 = INTEGER: 432895
UCD-SNMP-MIB::dskUsed.1 = INTEGER: 2202552
UCD-SNMP-MIB::dskUsed.2 = INTEGER: 37349
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 5
UCD-SNMP-MIB::dskPercent.2 = INTEGER: 8
UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 2
UCD-SNMP-MIB::dskPercentNode.2 = INTEGER: 0
UCD-SNMP-MIB::dskTotalLow.1 = Gauge32: 44969032
UCD-SNMP-MIB::dskTotalLow.2 = Gauge32: 495844
UCD-SNMP-MIB::dskTotalHigh.1 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.2 = Gauge32: 0
UCD-SNMP-MIB::dskAvailLow.1 = Gauge32: 40482144
UCD-SNMP-MIB::dskAvailLow.2 = Gauge32: 432895
UCD-SNMP-MIB::dskAvailHigh.1 = Gauge32: 0
UCD-SNMP-MIB::dskAvailHigh.2 = Gauge32: 0
UCD-SNMP-MIB::dskUsedLow.1 = Gauge32: 2202552
UCD-SNMP-MIB::dskUsedLow.2 = Gauge32: 37349
UCD-SNMP-MIB::dskUsedHigh.1 = Gauge32: 0
UCD-SNMP-MIB::dskUsedHigh.2 = Gauge32: 0
UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0)
UCD-SNMP-MIB::dskErrorFlag.2 = INTEGER: noError(0)
UCD-SNMP-MIB::dskErrorMsg.1 = STRING:
UCD-SNMP-MIB::dskErrorMsg.2 = STRING:

出力結果から

/ → UCD-SNMP-MIB::dskPercent.1

/boot → UCD-SNMP-MIB::dskPercent.2

を指定すればよいようです。ついでにOIDも調べておくことにします。(UCD-SNMP-MIB::dskPercent.1 で指定してもいいのだとは思いますが。)

#  snmpwalk -On -v 1 -c test-ro localhost  UCD-SNMP-MIB::dskPercent.1
.1.3.6.1.4.1.2021.9.1.9.1 = INTEGER: 5
#  snmpwalk -On -v 1 -c test-ro localhost  UCD-SNMP-MIB::dskPercent.2
.1.3.6.1.4.1.2021.9.1.9.2 = INTEGER: 8



2016/06/23 追記
  OIDを調べるには snmptranslate ってコマンドがあるんですね。こんな感じ

# snmptranslate -On -Ir UCD-SNMP-MIB::dskPercent.1
.1.3.6.1.4.1.2021.9.1.9.1


 

直接 mrtg.cfg を編集してもよいのですが、エラーが発生することを考慮し test.cfg に記述→動作確認→問題が無ければ mrtg.cfg に反映させることにします。(## Disk Used ##以下になります。)

test.cfg 内容はこんな感じ。テスト機用に色々とMRTGの設定をする予定なので、ディレクトリはテスト機のホスト名 nmcet64を作成し、配下に disk とか cpu 等々を作成します。

HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg
LogDir: /var/lib/mrtg
ThreshDir: /var/lib/mrtg

Options[_]: growright, bits

## Disk Used ##
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:test-ro@localhost
Directory[disk]: nmcent64/disk

MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, growright, noinfo, nopercent
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk Used
LegendO[disk]: /boot Disk Used
Legend1[disk]: / Disk Used(%)
Legend2[disk]: /boot Disk Used(%)
Title[disk]: ディスク使用率
PageTop[disk]: <H1>nmcent64_ディスク使用率</H1>

では 3回ほど動かしてみます。

# env LANG=C mrtg /etc/mrtg/test.cfg
WARNING: /var/www/mrtg/disk/ did not exist I will create it now
WARNING: /var/lib/mrtg/disk/ did not exist I will create it now
2016-06-17 15:17:26, Rateup WARNING: /usr/bin/rateup could not read the primary log file for disk
2016-06-17 15:17:26, Rateup WARNING: /usr/bin/rateup The backup log file for disk was invalid as well
2016-06-17 15:17:26, Rateup WARNING: /usr/bin/rateup Can't remove disk.old updating log file
2016-06-17 15:17:26, Rateup WARNING: /usr/bin/rateup Can't rename disk.log to disk.old updating log file

# env LANG=C mrtg /etc/mrtg/test.cfg
2016-06-17 15:17:29, Rateup WARNING: /usr/bin/rateup Can't remove disk.old updating log file

# env LANG=C mrtg /etc/mrtg/test.cfg

エラーは発生しませんでしたので、mrtg.cfg に設定を反映することにしました。

0 件のコメント:

コメントを投稿