カスタム検索
|
Tweet |
|
|
NET-SNMPとMRTGの実験
Modified: 5 January 2005
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は、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" の設定を行います。
"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 public1行目は、自分自身("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 ] #
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はインストールされていませんでしたので、以下のようにインストールしました。他の必須ツールも確認しておきます。
# 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.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を実行してみます。
最初は、エラーが出ますが、無視して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 ] #