カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

NET-SNMPとMRTGの実験

Modified: 5 January 2005

設定後は、「net-snmpとmrtgの小技を参考にアレンジしてください。


NET-SNMPのインストール ( 5 January 2005
NET-SNMPの基本設定と起動 ( 5 January 2005
NET-SNMPの動作テスト (5 January 2005

MRTGのインストール ( 5 January 2005
MRTGの基本設定 ( 5 January 2005
MRTGの動作確認 (5 January 2005


 NET-SNMPのインストール

NET-SNMPのインストール

サーバーを指定してインストールした時、net-snmpはインストールされていました。NET-SNMPのインストールを確認できます。(net-snmpは、ucd-snmpの新しいバージョンです。)

さらに、"snmpwalk"などのユーティリティをインストールしておきます。

# rpm -q net-snmp
net-snmp-5.0.9-2.30E.3
# rpm -ivh net-snmp-utils-5.0.9-2.30E.3.i386.rpm
警告: net-snmp-utils-5.0.9-2.30E.3.i386.rpm: V3 DSA signature: NOKEY, key ID 733
07de6
Preparing...                ########################################### [100%]
   1:net-snmp-utils         ########################################### [100%]
# 

 インストール後、"/etc/snmp/snmpd.conf" の設定を行います。


 NET-SNMPの基本設定と起動 

"snmpd.conf"の設定

snmpエージェントの設定は、"/etc/snmp/snmpd.conf"で行う。


コミュニティの設定

アクセスを許可するホストやネットワークを、コミュニティと呼びます。そのコミュニティの設定は、"com2sec"で行います。以下のように書き換えます。

####
# First, map the community name "public" into a "security name"

#       sec.name  source          community
com2sec local     localhost       private
com2sec mynetwork 192.168.0.0/24  public

1行目は、自分自身("localhost ")からアクセスを許可する設定で、2行目はと指定したネットトワーク("192.168.0.0/24")からのアクセスを許可する設定です。


アクセスグループの設定

アクセスするグループ名を、以下のように設定します。

####
# Second, map the security name into a group name:

#       groupName  securityModel securityName
group   myGroup    any           local
group   ourGroup   any           mynetwork

"myGroup"は適当につけたグループ名です。
セキュリティ名("
mynetwork")は、コミュニティの設定で指定したものです。


ビユーの設定

保持情報の公開範囲を指定します。

####
# Third, create a view for us to let the group have rights to:

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name          incl/excl  subtree   mask(optional)
view    all           included   .1        80

上記設定により、すべての情報が公開されます。


アクセス権の設定

アクセス権を、以下のように設定します。

####
# Finally, grant the group read-only access to the systemview view.

#       group      context sec.model sec.level prefix read write notif
access  myGroup    ""      any       noauth    0      all  all   all
access  ourGroup   ""      any       noauth    0      all  all   all

"myGroup"はアクセスグループで定義した名前です。これで、すべてが許可になります。


システム情報の設定

"syslocation"と"syscontact"を、以下のように、任意に記述する。

syslocation Linux Server
syscontact  root <root@localhost>


ディスクの情報取得の設定

"disk"に続いて、"/"でパーティションを指定します。また、1GB("1000000")を超えたらエラー扱いとして処理されます。

disk / 1000000


CPU負荷の情報取得の設定

"load"に続いて1分間の平均、5分間の平均、15分間の平均を指定します。

load 12 14 14


snmpdを起動する

起動時に自動起動されるように設定し、snmpdを起動します。

# chkconfig snmpd on
# service snmpd start
snmpdを起動中:                                             [  OK  ]
#

 NET-SNMPの動作テスト 

DISK情報を取得してみる

以下のように表示されればOKです。"df"コマンドとの比較も参考にしてください。

# snmpwalk -v 1 192.168.0.104 -c public .1.3.6.1.4.1.2021.9
UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1
UCD-SNMP-MIB::dskPath.1 = STRING: /
UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/sda2
UCD-SNMP-MIB::dskMinimum.1 = INTEGER: 100000
UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1
UCD-SNMP-MIB::dskTotal.1 = INTEGER: 9701068
UCD-SNMP-MIB::dskAvail.1 = INTEGER: 6632804
UCD-SNMP-MIB::dskUsed.1 = INTEGER: 2575472
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 28
UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 6
UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::dskErrorMsg.1 = STRING:
# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda2              9701068   2575472   6632804  28% /
/dev/sda1               101089      9372     86498  10% /boot
none                    127460         0    127460   0% /dev/shm
#


LOAD情報を取得してみる

以下のように表示されればOKです。起動直後で負荷がほとんどないので、値は0です。

# snmpwalk -v 1 192.168.0.104 -c public .1.3.6.1.4.1.2021.10
UCD-SNMP-MIB::laIndex.1 = INTEGER: 1
UCD-SNMP-MIB::laIndex.2 = INTEGER: 2
UCD-SNMP-MIB::laIndex.3 = INTEGER: 3
UCD-SNMP-MIB::laNames.1 = STRING: Load-1
UCD-SNMP-MIB::laNames.2 = STRING: Load-5
UCD-SNMP-MIB::laNames.3 = STRING: Load-15
UCD-SNMP-MIB::laLoad.1 = STRING: 0.00
UCD-SNMP-MIB::laLoad.2 = STRING: 0.00
UCD-SNMP-MIB::laLoad.3 = STRING: 0.00
UCD-SNMP-MIB::laConfig.1 = STRING: 12.00
UCD-SNMP-MIB::laConfig.2 = STRING: 14.00
UCD-SNMP-MIB::laConfig.3 = STRING: 14.00
UCD-SNMP-MIB::laLoadInt.1 = INTEGER: 0
UCD-SNMP-MIB::laLoadInt.2 = INTEGER: 0
UCD-SNMP-MIB::laLoadInt.3 = INTEGER: 0
UCD-SNMP-MIB::laLoadFloat.1 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laLoadFloat.2 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laLoadFloat.3 = Opaque: Float: 0.000000
UCD-SNMP-MIB::laErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::laErrorFlag.2 = INTEGER: 0
UCD-SNMP-MIB::laErrorFlag.3 = INTEGER: 0
UCD-SNMP-MIB::laErrMessage.1 = STRING:
UCD-SNMP-MIB::laErrMessage.2 = STRING:
UCD-SNMP-MIB::laErrMessage.3 = STRING:
#


CPU情報を取得してみる

以下のように表示されればOKです。"vmstat"コマンドとの比較も参考にしてください。

# snmpwalk -v 1 192.168.0.104 -c public .1.3.6.1.4.1.2021.11
UCD-SNMP-MIB::ssIndex.0 = INTEGER: 1
UCD-SNMP-MIB::ssErrorName.0 = STRING: systemStats
UCD-SNMP-MIB::ssSwapIn.0 = INTEGER: 0
UCD-SNMP-MIB::ssSwapOut.0 = INTEGER: 0
UCD-SNMP-MIB::ssIOSent.0 = INTEGER: 9
UCD-SNMP-MIB::ssIOReceive.0 = INTEGER: 191
UCD-SNMP-MIB::ssSysInterrupts.0 = INTEGER: 255
UCD-SNMP-MIB::ssSysContext.0 = INTEGER: 213
UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0
UCD-SNMP-MIB::ssCpuSystem.0 = INTEGER: 1
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 98
UCD-SNMP-MIB::ssCpuRawUser.0 = Counter32: 2439
UCD-SNMP-MIB::ssCpuRawNice.0 = Counter32: 0
UCD-SNMP-MIB::ssCpuRawSystem.0 = Counter32: 10487
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 884309
UCD-SNMP-MIB::ssRawInterrupts.0 = Counter32: 2290539
UCD-SNMP-MIB::ssRawContexts.0 = Counter32: 1915183
# vmstat
procs                      memory      swap          io     system         cpu
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 1  0   1036   7372  20640 176128    0    0     9   185  247   206  0  3 96  1
#


メモリー情報を取得してみる

以下のように表示されればOKです。"free"コマンドとの比較も参考にしてください。

# snmpwalk -v 1 192.168.0.104 -c public 1.3.6.1.4.1.2021.4
UCD-SNMP-MIB::memIndex.0 = INTEGER: 0
UCD-SNMP-MIB::memErrorName.0 = STRING: swap
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 522104
UCD-SNMP-MIB::memAvailSwap.0 = INTEGER: 521068
UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 254924
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 7504
UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 528572
UCD-SNMP-MIB::memMinimumSwap.0 = INTEGER: 16000
UCD-SNMP-MIB::memShared.0 = INTEGER: 0
UCD-SNMP-MIB::memBuffer.0 = INTEGER: 20564
UCD-SNMP-MIB::memCached.0 = INTEGER: 176432
UCD-SNMP-MIB::memSwapError.0 = INTEGER: 0
UCD-SNMP-MIB::memSwapErrorMsg.0 = STRING:
# free
             total       used       free     shared    buffers     cached
Mem:        254924     247416       7508          0      20576     176116
-/+ buffers/cache:      50724     204200
Swap:       522104       1036     521068
#

 MRTGのインストール

MRTGのインストール

サーバーを指定してインストールした時、mrtgはインストールされていませんでしたので、以下のようにインストールしました。他の必須ツールも確認しておきます。

# rpm -ivh perl-CGI-2.81-88.4.i386.rpm
警告: perl-CGI-2.81-88.4.i386.rpm: V3 DSA signature: NOKEY, key ID 73307de6
Preparing...                ########################################### [100%]
   1:perl-CGI               ########################################### [100%]
# rpm -ivh mrtg-2.9.29-4.ent.i386.rpm
警告: mrtg-2.9.29-4.ent.i386.rpm: V3 DSA signature: NOKEY, key ID 73307de6
Preparing...                ########################################### [100%]
   1:mrtg                   ########################################### [100%]
# rpm -q perl
perl-5.8.0-88.4
# rpm -q gd
gd-1.8.4-12
# rpm -q libpng
libpng-1.2.2-21
# rpm -q zlib
zlib-1.1.4-8.1
#

 MRTGの基本設定

"mrtg.cfg"の作成

以下の内容で、"localhost.cfg"ファイルを作成します。

WorkDir: /var/www/mrtg


CPU監視の設定

# CPU Load Average

Target[cpu]: 1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:public@192.168.0.104
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge,nopercent
Title[cpu]: CPU Load Average
PageTop[cpu]: <H1>CPU Load Average</H1>
YLegend[cpu]: load average (%)
ShortLegend[cpu]: %
LegendI[cpu]: 1min
LegendO[cpu]: 5min


メモリー監視の設定

# Memory Usage

Target[mem]: 1.3.6.1.4.1.2021.4.4.0&1.3.6.1.4.1.2021.4.6.0:private@localhost
MaxBytes1[mem]: 522104
MaxBytes2[mem]: 254924
Unscaled[mem]: dwmy
Options[mem]: gauge,absolute,integer,unknaszero
Title[mem]: Memory Usage
PageTop[mem]: <H1>Memory Usage</H1>
YLegend[mem]: Available Memory
ShortLegend[mem]: Bytes
LegendI[mem]: Swap available
LegendO[mem]: Real available
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P


ネットワーク監視の設定

# Network Usage

Target[eth0]: 2:private@localhost
SetEnv[eth0]: MRTG_INT_IP="192.168.0.104" MRTG_INT_DESCR="eth0"
MaxBytes[eth0]: 1250000
Title[eth0]: Traffic for eth0
PageTop[eth0]: <H1>Traffic for eth0</H1>

 MRTGの動作確認

"mrtg"を実行する

mrtgを実行してみます。

最初は、エラーが出ますが、無視して3回実行します。3回目にエラーが出なければOKです。

# mrtg /etc/mrtg/localhost.cfg
Rateup WARNING: /usr/bin/rateup could not read the primary log file for cpu
Rateup WARNING: /usr/bin/rateup The backup log file for cpu was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove cpu.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename cpu.log to cpu.old updating log file
Rateup WARNING: /usr/bin/rateup could not read the primary log file for mem
Rateup WARNING: /usr/bin/rateup The backup log file for mem was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove mem.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename mem.log to mem.old updating log file
Rateup WARNING: /usr/bin/rateup could not read the primary log file for eth0
Rateup WARNING: /usr/bin/rateup The backup log file for eth0 was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove eth0.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename eth0.log to eth0.old updating log file
# mrtg /etc/mrtg/localhost.cfg
Rateup WARNING: /usr/bin/rateup Can't remove cpu.old updating log file
Rateup WARNING: /usr/bin/rateup Can't remove mem.old updating log file
Rateup WARNING: /usr/bin/rateup Can't remove eth0.old updating log file
# mrtg /etc/mrtg/localhost.cfg
#


定期実行させる

刻々と状況の変化を見るために、cron で定期的(5分おきぐらい)に実行させます。

*/5 * * * * /usr/bin/mrtg /etc/mrtg/localhost.cfg


"/etc/httpd/conf.d/mrtg.conf"を編集する

"/etc/httpd/conf.d/mrtg.conf"を編集し、参照もとのPCのIPアドレス(たとえば、"192.168.0.6")を登録します。

Alias /mrtg /var/www/mrtg

<Location /mrtg>
    Order deny,allow
    Deny from all
    Allow from localhost
    Allow from 192.168.0.
</Location>

Apacheを再起動します。

# service httpd restart
httpdを停止中:                                             [  OK  ]
httpdを起動中:                                             [  OK  ]
#

To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)line.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加