MRTGの最近のブログ記事

MRTGでLoad Averageのグラフをつくる

|

Cacti
これだけ便利なグラフツールがあるというのに、
いまさらMRTGを使うのはなぜか。道楽だからでしょうか?

いや、ちがいます。
うちのマシンはIBM ThinkPad 760ED(Pentium133MHz, 48MB RAM, HDD 1.2GB)という
超貧弱マシンにDebian(Sarge)を入れて無理やりサーバーにしているのです。
これにMySQLを入れて、Cactiを動かすと必ず固まってしまうのです。

業務ではCactiを使ってますよ。はい。
そのうちCactiのことも書きます。


設定はこうなりました。参考にしたのは、 ITmedia ●ロードアベレージと空きメモリ容量を取得するには です。はい。

###  >> Descr: 'Load Average ' | Name: 'Load Average' ###

Target[localhost_3]: .1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:public@localhost : MaxBytes[localhost_3]: 2000 Title[localhost_3]: Load Average -- hoge eth0 192.168.0.252 PageTop[localhost_3]: <H1>Load Average 1 minute -- hoge eth0 192.168.0.252</H1> Options[localhost_3]: growright,nopercent,gauge,absolute,unknaszero,withzeroes YLegend[localhost_3]: Load Avalage ShortLegend[localhost_3]: percent Legend1[localhost_3]: 1 min localhost_3 Load Avalage Legend2[localhost_3]: 5 min localhost_3 Load Avalage LegendI[localhost_3]: 1min LegendO[localhost_3]: 5min <TABLE> <TR><TD>System:</TD> <TD>hoge in Unknown (configure /etc/snmp/snmpd.local.conf)</TD></TR> <TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)</TD></TR> <TR><TD>Description:</TD><TD>Load Average 1min </TD></TR> <TR><TD>Name:</TD> <TD>Load Average</TD></TR> </TABLE>

ここのページにWindowsのCPUやプロセス数のOIDが出てました。 http://www.syslog.gr/content/view/10/2/
CPU Load Monitoring:.1.3.6.1.2.1.25.3.3.1.2.3&.1.3.6.1.2.1.25.3.3.1.2.3(うちのは最後の数が3だったんだよなぁ。。。)
System Processes Info:.1.3.6.1.2.1.25.1.6.0&.1.3.6.1.2.1.25.1.6.0
User Sessions Info:.1.3.6.1.2.1.25.1.5.0&.1.3.6.1.2.1.25.1.5.0

indexmakerのhelp

|
大体こんなところで。
# indexmaker \
>--output="/var/www/mrtg/index.html" \
>--columns=1 \
>mrtg.cfg

以下、http://www.mrtg.jp/doc/indexmaker.htmlの抜粋です。

indexmaker [options] mrtg.cfg [other.cfg ...] 

オプション

--output=filename 出力ファイル名を指定 (デフォルト: 標準出力)

--filter title=~regexp タイトルに対して正規表現を使用してターゲットを選択 --filter pagetop=~regexp PageTopに対して正規表現を使用してターゲットを選択 --filter name=~regexp 名前に対して正規表現を使用してターゲットを選択

--title=text 生成されたインデックスファイルのタイトルを設定 --bodyopt=text BODYタグのオプションを設定 --pagetop=text ここで指定したテキストをと

...

の間に挿入

--columns=number カラム数x(デフォルトは2)のテーブルでグラフを表示

--sort=title グラフをタイトルでソート --sort=name グラフを名前でソート --sort=descr グラフをそのdescriptionでソート --sort=original そのまま(これがデフォルト)

--enumerate それぞれのグラフのタイトルにシーケンス番号を付ける

--width=number グラフの幅を指定 (デフォルト: 指定なし) --height=number グラフの高さを指定 (デフォルト: 指定なし)

--show=XXX インデックスにどのグラフを表示するかを選ぶ (デフォルトはXXX=day) --show=day --show=week --show=month --show=year --show=none

--section=h1 セクションのヘディングとしてPageTopにh1タグを使用(デフォルト) --section=title グラフのセクションヘディングとしてTitleを使用 --section=name セクションヘディングとしてグラフ名を使用 --section=descr セクションヘディングとしてグラフdescriptionを使用 --section=portname セクションヘディングとしてPageTopにport名のエントリーを使用

--rrdviewer=path rrdviewerのパス (デフォルト: /cgi-bin/14all.cgi) --prefix=path index.htmlの場所からグラフへのパス

機能説明

--output filename 出力のファイル名を指定します(デフォルトは標準出力です)。

--columns number numberカラムのテーブルでグラフを表示します。デフォルトは2です。

--sort title|name|descr|original ページ中のグラフをtitle、name、インタフェースのdescriptionで ソートするか、もしくはそのままかを選びます。

--enumerate それぞれのグラフのタイトルにシーケンス番号を付けます。

--width number グラフの幅を設定します。

--height number グラフの高さを設定します。

--prefix path デフォルトでは、indexmakerによって生成されるファイルはWorkDirに置かれます。 別のところに置きたい場合には、 インデックスが置かれる場所からWorkDirにどうやって届くかを指定します。 ディレクトリセパレータはURLに使われるように「/」を使わなければならないことに注意してください。 つまり、URL全体を入れることも可能です。

cfgmakerのhelp

|
ネットワークのトラフィックをとるだけなら、
# cfgmaker \
>--output=mrtg.cfg \
>--global="WorkDir:/var/www/mrtg" \
>--global="Language:eucjp" \
>--global="Options[_]: growright, bits" \
>public@www.example.local
で事足りるのではないだろうか。

以下、http://www.mrtg.jp/doc/cfgmaker.html
から抜粋させていただきました。

cfgmaker [オプション] [コミュニティ名@]ルータ名 [オプション] [コミュニティ名@]ルータ名

※長く打ち込むときは途中で「 \」で改行する。

【オプション】 --output=file 出力ファイル名(デフォルトはSTDOUT)

--ifref=nr インタフェースをインタフェース番号で参照する(デフォルト) --ifref=ip ... IPアドレスで参照する --ifref=eth ... Ethernet番号で参照する --ifref=descr ... インタフェースの記述で参照する --ifref=name ... インタフェース名で参照する --ifref=type ... インタフェースのタイプで参照する

--ifdesc=nr インタフェースをインタフェース番号で記述する(デフォルト) --ifdesc=ip ... IPアドレスで記述する --ifdesc=eth ... Ethernet番号で記述する --ifdesc=descr ... descrを使って記述する --ifdesc=name ... インタフェース名で記述する --ifdesc=alias ... インタフェースの別名で記述する --ifdesc=type ... インタフェースのタイプで記述する

--global "x: a" グローバルな設定エントリを追加します

--no-down インタフェースのadminあるいはoprステータスを無視します

--show-op-down 停止してあるインタフェースも表示します

--descint 'Traffic Analysis for'(だけ)以外の方法でインタフェースを 記述します

--subdirs=format ルータ毎にサブディレクトリを分けて使うようにします。 "format"にしたがってディレクトリ名がつけられ、HOSTNAMEと SNMPNAMEはそれらの項目の持つ値と置き換わります。例えば --subdirs=HOSTNAME or --subdirs="HOSTNAME (SNMPNAME)" のように指定します。

--noreversedns IPアドレスの逆引きを行わないようにします

【設定】 --outputと--globalを除いて、 すべてのオプションはコマンドラインで指定したすぐ後のルータにだけ有効です。 コマンドラインの最初のほうで指示したオプションが、 後から別の値を使って指定し直された場合、 残りのルータに関しては新しく指定した方の値が有効になります。 この方法を使えば複数のルータをまとめて扱うことも、 個別に扱うことも容易になります。

--output file cfgmakerの出力をファイルfileに書き出します。 デフォルトの出力先は STDOUTです。 --outputコマンドライン中で使われるのは一回だけです。 複数回指定したときは最後の--outputで指定したファイルが使われます。

--ifref nr|ip|eth|descr|name インタフェースの認識方法を指定します。 デフォルトはnrで、ルータのインタフェース番号で認識されます。 残念ながらSNMPツリーでのインタフェースの番号付けの方法は変化する可能性があります。 インタフェースが追加されたときに番号付けを変えてしまうルータもあれば、 正午になると決まって番号付けを変えてしまうようなお茶目なルータもあるのです。

インタフェースをIPアドレスで識別するにはipを、 Ethernetアドレスで 識別するにはethを、 インタフェースのdescriptionで識別するには descrを、 インタフェース名で識別するにはnameを使います。

選んだ方法でインタフェースがユニークに識別できない場合は、 cfgmakerが その旨知らせてくれます。

--ifdesc nr|ip|eth|descr|name|type|alias インタフェースのdescriptionに何を使うかを指定します。 description はターゲットのTitle[]プロパティと HTMLコードで定義したテキストヘッダにPageTopとして現れます。 デフォルトでは単なるインタフェース番号のnrを使うようになっていますが、 これはグラフを見る側にはあまり便利とは言えません。 その他に使えるプロパティは6つあります。 インタフェースのIPアドレスを使うにはipを、 Ethernetアドレスならeth、 もっと記述性のよいものを使いたいならばdescr、name、aliasがいいでしょう。 機器によってこれらは異なっているので、試行錯誤が必要になるかも知れません。 例えばIOSを使っているCiscoルータではnameを使うと "S0"がインタフェースのdescription として返され、 descrを使うと"Serial0"が、 aliasには"Link to HQ" (ルータの設定でインタフェースのdescriptionにこのように入力してあるとして) のような応答が返って来ます。

--global "bla: abc" 生成した設定ファイルにグローバルなオプションを追加したいときに使用します。 複数のオプションを追加するために--globalを何回か使ってもかまいません。 この行はコマンドライン中で次のルータの設定部分の直前に現れます。

--global "workdir: /home/mrtg" デフォルトのオプションが必要なときは次のようにします。

--global "options[_]: growright,bits" コマンドラインの最後のルータの後ろに--globalを指定すると、 設定ファイルの最後のルータの設定部分の後ろにこの行が現れます。

--noreversedns IPアドレスの逆引きを行わないようにします。 DNSを使わない環境では必須です。

--no-down 通常cfgmakerは固定的にUPにしてあるインタフェース 及び実際にUPであるインタフェース以外は無視しますが、 このスイッチを使ってすべてを対象にすることができます。

--show-op-down 運用上はdown状態になっているインタフェースも含めます。

MRTG

|

■RPMでは
/var/www/html/mrtg/
/usr/lib/mrtg2/
/etc/mrtg/
/usr/bin/mrtg, indexmaker, cfgmaker, rateup

■mrtg.cfgをつくる
# cfgmaker --output=mrtg.cfg public@www.example.local --
global="WorkDir:/var/www/mrtg" --global="Language:eucjp" --global="Op
tions[_]: growright,bits"
--base: Get Device Info on public@www.example.local:
--base: Vendor Id:
--base: Populating confcache
--snpo: confcache public@www.example.local: Descr MS TCP Loopback interface --> 1
--snpo: confcache public@www.example.local: Descr Intel 8255x-based PCI Ethernet Adapter (10/100) --> 65539
--snpo: confcache public@www.example.local: Descr WAN (PPP/SLIP) Interface --> 1703940
--snpo: confcache public@www.example.local: Type 24 --> 1
--snpo: confcache public@www.example.local: Type 6 --> 65539
--snpo: confcache public@www.example.local: Type 23 --> 1703940
--snpo: confcache public@www.example.local: Ip 10.0.18.166 --> 1703940
--snpo: confcache public@www.example.local: Ip 127.0.0.1 --> 1
--snpo: confcache public@www.example.local: Ip 192.168.101.254 --> 65539
--snpo: confcache public@www.example.local: Eth  --> 1
--snpo: confcache public@www.example.local: Eth 00-c0-9f-06-1d-70 --> 65539
--snpo: confcache public@www.example.local: Eth 00-53-45-00-00-00 --> 1703940
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifSpeed
--base: Writing ./mrtg.cfg
■mrtgコマンド
# mrtg mrtg.cfg
でよい。 cfgファイルの中のWorkDirの中にいろんなファイルが出来上がる。
[ホスト名]_[インターフェース名].html
[ホスト名]_[インターフェース名]-[期間].png
[ホスト名]_[インターフェース名].log
[ホスト名]_[インターフェース名].old
となっている。 最初の2回は必ずえらーが出ます。
【1回目】
pc-hoge:/etc/mrtg# mrtg mrtg.cfg
Rateup WARNING: /usr/bin/rateup could not read the primary log file for www.example.local_65539
Rateup WARNING: /usr/bin/rateup The backup log file for www.example.local_65539 was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove www.example.local_65539.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename www.example.local_65539.log to www.example.local_65539.old updating log file
Rateup WARNING: /usr/bin/rateup could not read the primary log file for www.example.local_1703940
Rateup WARNING: /usr/bin/rateup The backup log file for www.example.local_1703940 was invalid as well
Rateup WARNING: /usr/bin/rateup Can't remove www.example.local_1703940.old updating log file
Rateup WARNING: /usr/bin/rateup Can't rename www.example.local_1703940.log to www.example.local_1703940.old updating log file

【2回目】
pc-hoge:/etc/mrtg# mrtg mrtg.cfg
Rateup WARNING: /usr/bin/rateup Can't remove www.example.local_65539.old updating log file
Rateup WARNING: /usr/bin/rateup Can't remove www.example.local_1703940.old updating log file
pc-hoge:/etc/mrtg# mrtg mrtg.cfg

【3回目】
pc-hoge:/etc/mrtg#

■indexmaker
# indexmaker \
 --output="/var/www/mrtg/index.html" \
 --columns=1 \
 --title="Cisco 2514 cc-gw.example.local" \
 /etc/mrtg/mrtg.cfg

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMRTGカテゴリに属しているものが含まれています。

前のカテゴリはLogrotateです。

次のカテゴリはNagiosです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

MRTG: 月別アーカイブ

Powered by Movable Type 4.1