今回ではサーバーの状態を取得しグラフ化するmrtgの設定方法を記します。mrtgはいろいろな情報を取得しグラフ化することができます。今回は基本となるトラフィック、CPU、メモリ、HDDのリソースを表示するようにします。なお、グラフを表示するためにはwebサーバの構築がすんでいる必要があります。webサーバの構築がまだの方はこちらから設定をおこなってください。


 今回取得する基本情報はsnmpを利用して取得しますのではじめにsnmpの設定を行います。
 fedora coreではnet-snmpを利用することができます。未インストールの人は以下のコマンドでnet-snmpをインストールしておきましょう。

# yum -y install net-snmp




 さて、それではまずsnmpで情報が収集できるように設定を行いましょう。snmpの設定は /etc/snmp/snmp.cfg を編集することで設定を行います。以下の箇所を設定します。
 この設定でコミュニティ名を設定します。IPアドレスは自分の環境に合わせて設定してください。

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




 引き続きグループ設定を行います。
####
# Second, map the security name into a group name:

# groupName securityModel securityName
#group notConfigGroup v1 notConfigUser
#group notConfigGroup v2c notConfigUser
group MyROGroup v1 mynetwork
group MYROGroup v2c mynetwork



 次にsnmpで取得する情報の範囲ですが、全部取得できるようにします。
####
# 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 systemview included .1.3.6.1.2.1.1
#view systemview included .1.3.6.1.2.1.25.1.1
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 notConfigGroup "" any noauth exact systemview none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none


さて、これでsnmpの設定は完了です。次にsnmpの起動と電源投入時に自動で起動するように設定しましょう。以下のコマンドで設定を行います。

#/etc/init.d/snmpd start

#chkconfig snmpd on


 以上でsnmpの設定は完了です。


 さて、それでは次にmrtgの設定に入っていきます。未インストールの方は以下のコマンドでインストールしておきましょう。

#yum -y install mrtg



 それでは、mrtgの設定を行いましょう。私のサーバのプライベートIPは192.168.0.150ですので、その際の記載になっていますが、そこはみなさんのIPに置き換えて設定してください。

 初めに、設定ファイルをコマンドで作成します。

# cfgmaker --ifref=descr --ifdesc=descr public@192.168.0.150 > /etc/mrtg/mrtg.cfg

これで初期の設定ファイルが/etc/mrtg/mrtg.cfgに作成されました。次はこれを設定していきます。

 初めにmrtgが出力するhetmlファイルの保存先を設定します。

# for UNIX
# WorkDir: /home/http/mrtg
WorkDir: /home/info/mrtg




 それではeth0のトラフィック計測の設定をしましょう。

#Target[192.168.0.150_eth0]: \eth0:public@192.168.0.150:
Target[eth0]: \eth0:public@192.168.0.180:
#
SetEnv[192.168.0.150_eth0]: MRTG_INT_IP="192.168.0.150" MRTG_INT_DESCR="eth0"
SetEnv[eth0]: MRTG_INT_IP="192.168.0.180" MRTG_INT_DESCR="eth0"
#
MaxBytes[192.168.0.150_eth0]: 12500000
MaxBytes[eth0]: 3500000
#
Title[192.168.0.150_eth0]: eth0 -- ns1.otyanoma.com
Title[eth0]: eth0 Traffic
#
PageTop[192.168.0.150_eth0]: <H1>eth0 -- ns1.otyanoma.com</H1>
PageTop[eth0]: <H1>eth0 Traffic</H1>
#
<TABLE>
# <TR><TD>System:</TD> <TD>ns1.otyanoma.com in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
# <TR><TD>Maintainer:</TD> <TD>Root &lt;root@localhost&gt; (configure /etc/snmp/snmp.local.conf)</TD></TR>
# <TR><TD>Description:</TD><TD>eth0 </TD></TR>
# <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
# <TR><TD>ifName:</TD> <TD></TD></TR>
# <TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR>
# <TR><TD>Ip:</TD> <TD>192.168.0.180 ()</TD></TR>
# </TABLE>




次はeth1の背手値ですがこれはNICを2枚指している場合の設定です。1枚しかNICが無い場合は必要ありません。

#
# Target[192.168.0.150_eth1]: \eth1:public@192.168.0.150:
Target[eth1]: \eth1:public@192.168.0.150:
#
SetEnv[192.168.0.150_eth1]: MRTG_INT_IP="192.168.30.200" MRTG_INT_DESCR="eth1"
SetEnv[eth1]: MRTG_INT_IP="192.168.30.200" MRTG_INT_DESCR="eth1"
# MaxBytes[192.168.0.150_eth1]: 12500000
MaxBytes[eth1]: 3500000
#
Title[192.168.0.150_eth1]: eth1 -- ns1.otyanoma.com
Title[eth1]: eth1 Traffic
#
PageTop[192.168.0.150_eth1]: <H1>eth1 -- ns1.otyanoma.com</H1>
PageTop[eth1]: <H1>eth1 Traffic</H1>
#
<TABLE>
# <TR><TD>System:</TD> <TD>ns1.otyanoma.com in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
# <TR><TD>Maintainer:</TD> <TD>Root &lt;root@localhost&gt; (configure /etc/snmp/snmp.local.conf)</TD></TR>
# <TR><TD>Description:</TD><TD>eth1 </TD></TR>
# <TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
# <TR><TD>ifName:</TD> <TD></TD></TR>
# <TR><TD>Max Speed:</TD> <TD>12.5 MBytes/s</TD></TR>
# <TR><TD>Ip:</TD> <TD>192.168.30.200 (ns1.otyanoma.com)</TD></TR>
# </TABLE>




次は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.150
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[cpu]: CPU Load(%)
ShortLegend[cpu]: (%)
LegendI[cpu]: 1min
LegendO[cpu]: 5min
Legend1[cpu]: 1min(%)
Legend2[cpu]: 5min(%)
Title[cpu]: CPU Load Average
PageTop[cpu]: <H1>CPU Load Average</H1>




次は物理メモリとSWAPメモリの空き容量を計測できるように追加します。

########Memory Free########
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@192.168.0.150
MaxBytes1[mem]: 1033780
MaxBytes2[mem]: 2031608
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, growright, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: Free[MBytes]
Legend2[mem]: Free[MBytes]
Title[mem]: Memory FREE
PageTop[mem]: <H1>Memory Free</H1>




最後にディスク容量を計測できるように以下の項目を追加します。

#########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.1:public@192.168.0.150
MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, growright, nopercent, noinfo
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk Used
LegendO[disk]: / Disk Used
Legend1[disk]: / Disk Used
Legend2[disk]: / Disk Used
Title[disk]: Disk Used
PageTop[disk]: <H1>Disk Used</H1>



これでmrtgの設定ファイルの設定は完了です。

次にmrtgのデータを作成します。mrtg過去3回分の記録を参照しますので手動で3回動かしておきます。

# mrtg /etc/mrtg/mrtg.cfg
# mrtg /etc/mrtg/mrtg.cfg
# mrtg /etc/mrtg/mrtg.cfg


次にmrtgのインデックスページを作成します。

# indexmaker --columns=1 \ --addhead="<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=euc-jp\">" \ /etc/mrtg/mrtg.cfg > /home/info/mrtg/index.html





次にグラフをWebで見えるようにするため、apacheの設定するため、以下のファイルを作成します。

/etc/httpd/conf.d/mrtg.conf

#
# This configuration file maps the mrtg output (generated daily)
# into the URL space. By default these results are only accessible
# from the local host.
#
Alias /mrtg /home/info/mrtg
<Location /mrtg>
Order deny,allow
Deny from all
Allow from 127.0.0.1 Allow from 192.168 
Allow from ::1
</Location>


さて最後にapacheの再起動を行います。

#/etc/init.d/httpd restart


これで完成です。これで私の場合192.168.*.*のネットワークからのみ、サーバのIPアドレス/mrtgでmrtgでのグラフ監視ができるようになりました。



戻る