- 追加された行はこの色です。
- 削除された行はこの色です。
*MRTG [#ifb15a02]
RIGHT:更新日&lastmod();
MRTGを使用してGWになるVineLinuxマシンのトラフィックをモニタする。
**準備 [#o4b8bc17]
準備としてはApache2をインストールして、 snmpを[[ここ:https://wwwism.dyndns.org/hp/linux/snmp.htm]]でインストールしたように設定する
MRTGで使用するsnmpdの設定ファイルは
localhostが全ての情報が読めればよいから
/etc/snmp/snmpd.confで
com2sec local localhost private
group local_group v1 local
group local_group v2c local
group local_group usm local
view view_all included .1
access local_group "" any noauth exact view_all none none
とする。
監視対象の機器に対してSNMPリクエスト(iso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1).intreface(2).ifTable(2).ifEntry(1) ifInOctets(10).I/Fポート(1)
がMRTGでは送られる。
それ以外にもzlib,libpng,GDを使用するため
zlib-devel,libpng-devel,gd,gd-devel
をrpmインストールしておく
**Download/Install [#z33302cc]
[[ここ:http://oss.oetiker.ch/mrtg/]]から mrtg-2.12.2.tar.gzをDownload
$ tar zxvf mrtg-2.12.2.tar.gz
$ cd mrtg-2.12.2
$ ./configure
$ make
$ su
# make install
***設定ファイルの作成 [#m2f90326]
cfgmaker --output=(出力ファイル) (コミュニティ)@(ホスト)
# /usr/local/mrtg-2/bin/cfgmaker --output=/usr/local/mrtg-2/lib/mrtg.cfg private@localhost
--base: Get Device Info on private@localhost:
--base: Vendor Id:
--base: Populating confcache
--coca: populate confcache private@localhost:
--coca: store in confcache private@localhost_ Descr lo --> 1
--coca: store in confcache private@localhost_ Descr eth0 --> 2
--coca: store in confcache private@localhost_ Descr eth1 --> 3
--coca: store in confcache private@localhost_ Type 24 --> 1
--coca: store in confcache private@localhost_ Type 6 --> 2
--coca: store in confcache private@localhost_ Type 6 --> 3 (duplicate)
--coca: store in confcache private@localhost_ Ip 10.99.99.143 --> 2
--coca: store in confcache private@localhost_ Ip 127.0.0.1 --> 1
--coca: store in confcache private@localhost_ Ip 192.168.100.1 --> 3
--coca: store in confcache private@localhost_ Eth --> 1
--coca: store in confcache private@localhost_ Eth 00-0c-29-03-44-1a --> 2
--coca: store in confcache private@localhost_ Eth 00-0c-29-03-44-24 --> 3
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifMtu
--base: Walking ifSpeed
--base: Writing /usr/local/mrtg-2/lib/mrtg.cfg
# cd /usr/local/mrtg-2/lib
***mrtg.cfgを編集 [#n8adc960]
# for UNIX
# WorkDir: /home/http/mrtg
WorkDir: /usr/local/apache2054/htdocs/mrtg <--変更(グローバル変数)
(略)
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
Language: eucjp <--追加(グローバル変数)
IconDir: /mrtg/icons/ <--追加(グローバル変数)
######################################################################
(IPアドレス,インターフェイスを変更した場合は以下を修正できるはず。iptableを
INPUTでsnmpをDROPさせてしまう設定をし確認とれず。snmpを再起動の必要があるかも)
### Interface 2 >> Descr: 'eth0' | Name: '' | Ip: '192.168.101.1' | Eth: '00- 03\-99-88-d4-27' ###
Target[localhost_2]: 2:private@localhost:
SetEnv[localhost_2]: MRTG_INT_IP="192.168.101.1" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 1250000 <--(注1)
[MaxBytes1[localhost_2]: 1250000 <--(注2)
[MaxBytes2[localhost_2]: 125000 <--(注2)
(省略)
<tr>
<td>Ip:</td>
<td>192.168.101.1 ()</td>
</tr>
(注1)
通常このインタフェースポートが通信できる最大値を1秒当たりのバイト数で記述する。
返された値がもしMaxBytesよりも大きい場合はその値は無視される
(注2)値が2つある場合はMaxBytes1,2のようにするとそれぞれのMaxBytesが設定できる。
転送スピードの場合は1が受信2が送信になり、表示グラフの%の値がこれをベースに
表示される。
***mrtgのフォルダ作成と画像のコピー [#i5346fe8]
# mkdir -p /usr/local/apache2054/htdocs/mrtg/icons
# cp /usr/local/mrtg-2/share/mrtg2/icons/*.png /usr/local/apache2054/htdocs/ mrtg/icons/
**起動/運用 [#ed2775d3]
1回,2回はlogがないためエラーするが、3回目にはうまく動作する。
[1回目]
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg
[LANGの環境変数を変更しているときは(UTF-8にしている時等)
# env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg
で起動する]
Rateup WARNING: /usr/local/mrtg-2/bin/rateup could not read the primary log file for localhost_2
Rateup WARNING: /usr/local/mrtg-2/bin/rateup The backup log file for localhost_2 was invalid as well
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't remove localhost_2.old updating log file
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't rename localhost_2.log to localhost_2.old updating log file
Rateup WARNING: /usr/local/mrtg-2/bin/rateup could not read the primary log file for localhost_3
Rateup WARNING: /usr/local/mrtg-2/bin/rateup The backup log file for localhost_3 was invalid as well
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't remove localhost_3.old updating log file
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't rename localhost_3.log to localhost_3.old updating log file
[2回目]
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't remove localhost_2.old updating log file
Rateup WARNING: /usr/local/mrtg-2/bin/rateup Can't remove localhost_3.old updating log file
[3回目]
# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg
***アクセス [#vc878a57]
http://10.99.99.143/mrtg/localhost_2.html
***cronで5分ごとにデータを収集 [#ffe06baa]
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg
LAN側についてはhttp://(サーバ名)/mrtg/localhost_2.html
WAN側についてはhttp://(サーバ名)/mrtg/localhost_3.html
でアクセスする
**トラフィック以外のモニタ [#ke10024b]
/usr/local/mrtg-2/lib/mrtg.cfgに以下のように追加
***CPUのロードアベレージ [#u21b1f0f]
#-----------------------------------------------------------------
# CPUのロードアベレージ
#-----------------------------------------------------------------
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:private@local
host:
##SetEnv[cpu]: URL="http://localhost/mrtg/cpu.html" <--表示するWebページを指 定??
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy <--データに合わせて拡大縮小しない
Options[cpu]: gauge, absolute, noinfo, nopercent <--パラメータについてを参照
YLegend[cpu]: CPU Load(%) <--Y軸の軸の名前(ラベル)を指定
ShortLegend[cpu]: (%) <--単位の表示
LegendI[cpu]: 1分間平均
LegendO[cpu]: 5分間平均
Legend1[cpu]: 1分間平均(%) <--ページの下の方のラベル
Legend2[cpu]: 5分間平均(%) <--ページの下の方のラベル
Title[cpu]: CPU使用率 SNMP + MRTG
PageTop[cpu]: <H1>CPU使用率 SNMP + MRTG</H1>
''CPUロードアベレージはMIBデータでは''
1分 : .1.3.6.1.4.1.2021.10.1.5.1
5分 : .1.3.6.1.4.1.2021.10.1.5.2
15分 : .1.3.6.1.4.1.2021.10.1.5.3
***ディスク使用状況 [#h6d8e3cc]
HDDについては/etc/snmp/snmpd.confに以下用にパーティションを追加
disk / 10000 <---.1.3.6.1.4.1.2021.9.1.9.1
disk /boot 1000 <---.1.3.6.1.4.1.2021.9.1.9.2
#-----------------------------------------------------------------
# ディスク使用状況
#-----------------------------------------------------------------
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:private@localhost:
##SetEnv[disk]: URL="http://localhost/mrtg/disk.html"
MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, nopercent, noinfo
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk used
LegendO[disk]: /boot Disk Used
Title[disk]: ディスク使用率 NET-SNMP + MRTG
PageTop[disk]: <H1>ディスク使用率 NET-SNMP + MRTG</H1>
***メモリ使用状況 [#v8644e6a]
#-----------------------------------------------------------------
# メモリ使用状況(グラフ化するのは実メモリおよびスワップの空き領域)
# MaxByteには実験機の総スワップ量を指定
#-----------------------------------------------------------------
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:private@localhost:
##SetEnv[mem]: URL="http://localhost/mrtg/mem.html"
MaxBytes1[mem]: 384944 <-- 実メモリ(TOPコマンドで調べる)
MaxBytes2[mem]: 530136 <-- SWAPメモリ
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024 <-- kiloがデフォルトで1000
kMG[mem]: k,M,G,T,P <-- スケールの単位(K,M,G,T,P)を正しく表示させる
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: 空き物理メモリ[MBytes]
Legend2[mem]: 空きスワップメモリ[MBytes]
Title[mem]: 空きメモリ量 NET-SNMP + MRTG
PageTop[mem]: <H1>空きメモリ量 SNMP + MRTG</H1>
''パラメータについて''
Options:
growright -> 現在の時間をグラフの右側に設定する。
gauge -> 取得したデータの値を前回の値との差分を計算せずそのまま使用する。
(ディスク容量やメモリ使用率のグラフに使用)
absolute -> 取得したデータの値を前回の値との差分を計算せずそのまま使用
する。gaugeとは異なり、データを計測時間間隔で割ったものを
使用したい場合に指定する。
noinfo -> 出力するページにデバイス名や時刻情報を出力しない
bits -> 縦軸の値をbitsとして扱う
dorelpercent-> 百分率にしたグラフ[(第1data/第2data)x100]を線として追加する
unknaszero -> データ取得できなかった値を0として扱う
withzeroes -> 通常0である値は無視されますが、このオプションを指定するこ
とでデータを無視しない
**外部プログラム(hddtemp)でHDDの温度のモニタ [#zbb41fa5]
以下のような温度モニタ起動シェルを作成
/usr/local/mrtg-2/bin/hddtemp.sh
#!/bin/sh
hddtemp=`/usr/local/sbin/hddtemp -n /dev/hda`
echo $hddtemp
echo $hddtemp
uptime | awk '{print $3 $4}'
echo uso5001
''温度用のMRTGの設定ファイルを作成''
/usr/local/mrtg-2/lib/hddtemp.cfg
Language: eucjp
IconDir: /mrtg/icons/
EnableIPv6: no
Refresh: 300
WorkDir: /home/okada/public_html/hddtemp <--データが格納されるディレクトリ
#-----------------------------------------------------------------
# HDD温度状況
#-----------------------------------------------------------------
Target[hddtemp]: `/usr/local/mrtg-2/bin/hddtemp.sh`
##SetEnv[hddtemp]: URL="http://localhost/mrtg/hddtemp.html"
MaxBytes[hddtemp]: 100
Unscaled[hddtemp]: dwmy
Options[hddtemp]: gauge
YLegend[hddtemp]: Temp (Celsius)
ShortLegend[hddtemp]:°
##kilo[hddtemp]: 1024
##kMG[hddtemp]: k,M,G,T,P
LegendI[hddtemp]: HDD温度
LegendO[hddtemp]: HDD温度
Legend1[hddtemp]: HDD温度[℃]
Legend2[hddtemp]: HDD温度[℃]
Title[hddtemp]: HDD温度 hddtemp + MRTG
PageTop[hddtemp]: <H1> HDD温度 hddtemp + MRTG</H1>
***cronで5分ごとにデータを収集 [#t2be9a00]
*/5 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/hddtemp.cfg
**インターフェイスの様子 [#l1118984]
# snmpwalk localhost private interface
interfaces.ifNumber.0 = 3 <--ポートは全部で3つ
interfaces.ifTable.ifEntry.ifIndex.1 = 1
interfaces.ifTable.ifEntry.ifIndex.2 = 2
interfaces.ifTable.ifEntry.ifIndex.3 = 3
interfaces.ifTable.ifEntry.ifDescr.1 = lo
interfaces.ifTable.ifEntry.ifDescr.2 = eth0 <--インデックス番号2がイーサポート
interfaces.ifTable.ifEntry.ifDescr.3 = eth1
interfaces.ifTable.ifEntry.ifType.1 = softwareLoopback(24)
interfaces.ifTable.ifEntry.ifType.2 = ethernetCsmacd(6) <--これがMRTGのTYPEに表示される。
interfaces.ifTable.ifEntry.ifType.3 = ethernetCsmacd(6)
interfaces.ifTable.ifEntry.ifMtu.1 = 16436
interfaces.ifTable.ifEntry.ifMtu.2 = 1500 <--MTU
interfaces.ifTable.ifEntry.ifMtu.3 = 1500
interfaces.ifTable.ifEntry.ifSpeed.1 = Gauge32: 10000000
interfaces.ifTable.ifEntry.ifSpeed.2 = Gauge32: 10000000 <--速度は10Mbps
interfaces.ifTable.ifEntry.ifSpeed.3 = Gauge32: 10000000
interfaces.ifTable.ifEntry.ifPhysAddress.1 =
interfaces.ifTable.ifEntry.ifPhysAddress.2 = 0:c:29:3:44:1a <--MACアドレス
interfaces.ifTable.ifEntry.ifPhysAddress.3 = 0:c:29:3:44:24
(略)
***メモリの状態情報 [#j8d08c8c]
# snmpget localhost private .1.3.6.1.4.1.2021.4.4.0
enterprises.ucdavis.memory.memAvailSwap.0 = 530136 <--SWAPが530136kフリー
# snmpget localhost private .1.3.6.1.4.1.2021.4.6.0
enterprises.ucdavis.memory.memAvailReal.0 = 130968 <--物理メモリが130968kフリー
**net-snmpの場合は以下のようなコマンドで情報を得る。 [#zb38031e]
$ rpm -qa | grep snmp
net-snmp-5.2.1.2-0vl1
net-snmp-devel-5.2.1.2-0vl1
net-snmp-utils-5.2.1.2-0vl1
$ snmpget -v 2c -c private localhost .1.3.6.1.4.1.2021.4.6.0
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 31136
**参考 [#t91dc20c]
MRTGマニュアル
--------------------------------------------------------------------------------
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/mrtg.htm]]