ServersMan@VPS での世界一簡単なMRTGの設定方法を説明する。
各ファイルの編集に際してのバックアップ作成はここでは案内しないのでこちらをご覧下さい。
引き続き以下をご覧あれ。
1.必要なものをyumコマンドでインストールする。
# yum -y install mrtg net-snmp
2./etc/snmp/snmp.confの内容を以下の通りにする。
まずは「/etc/snmp/snmpd.conf」の中身を空にしておく # :>/etc/snmp/snmpd.conf # そして編集 # vi /etc/snmp/snmpd.conf --「IPADDRESS」は利用しているサーバのIPアドレス-- com2sec local localhost private com2sec mynetwork IPADDRESS public group MyROGroup v1 mynetwork group MyROGroup v2c mynetwork view all included .1 80 access MyROGroup "" any noauth exact all none none syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) proc httpd disk / 10000 pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
3. snmpdサービスをスタートさせる。
# service snmpd start
4.今後メモリの使用量を観察するために必要なスクリプトを作っておく。
snmpdの機能では、Freeメモリを観察することが出きるが、使用量を計算してくれないので
それを計算してくれるスクリプトを作っておく。
ディレクトリを作成 # mkdir -p /root/bin/mrtg # スクリプトを作成 # vi /root/bin/mrtg/mem.sh #!/bin/sh #memory HOST=$1 COMNAME=$2 SNMPG="/usr/bin/snmpget -v 1 $HOST -c $COMNAME" # Get data from snmpd MEM_MAX=`$SNMPG enterprises.ucdavis.memory.memTotalReal.0 | /bin/cut -f 4 -d" "` MEM_AVG=`$SNMPG enterprises.ucdavis.memory.memAvailReal.0 | /bin/cut -f 4 -d" "` #REAL MEM USED echo `expr $MEM_MAX - $MEM_AVG` #TOTAL REAL MEM echo $MEM_MAX # 実行権元を付与する # chmod +x /root/bin/mrtg/mem.sh
5. /etc/mrtg/mrtg.cfgの内容を以下の通りにする。
まずは「/etc/mrtg/mrtg.cfg」の中身を空にしておく # :>/etc/mrtg/mrtg.cfg # そして編集 # vi /etc/mrtg/mrtg.cfg
#--色が付いて居る部分は後で編集します--- WorkDir: /var/www/mrtg Options[_]: growright,noinfo LoadMIBs: /usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/UCD-SNMP-MIB.txt EnableIPv6: no Target[venet0]: \venet0:public@IPADDRESS: SetEnv[venet0]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="venet0" MaxBytes[venet0]: 1250000 Title[venet0]: venet0 -- HOSTNAME PageTop[venet0]: <h1>venet0 -- HOSTNAME</h1> ### CPU Load Average ### Target[cpu]:laLoadInt.1&laLoadInt.1:public@IPADDRESS Title[cpu]: CPU Load Average PageTop[cpu]: <H1>CPU Load Average</H1> MaxBytes[cpu]: 100 ShortLegend[cpu]: % YLegend[cpu]: Load Average(%) LegendI[cpu]: 1min LegendO[cpu]: 5min Options[cpu]: growright, noinfo, nopercent ### CPU Usage ### Target[cpu2]: ssCpuRawUser.0&ssCpuRawSystem.0:public@IPADDRESS Title[cpu2]: CPU Usage PageTop[cpu2]: <H1>CPU Usage</H1> MaxBytes[cpu2]: 100 YLegend[cpu2]: CPU usage(%) ShortLegend[cpu2]: (%) LegendI[cpu2]: Usuer LegendO[cpu2]: System Legend1[cpu2]: CPU Usage(ser)(%) Legend2[cpu2]: CPU Usage(system)(%) Options[cpu2]: growright, noinfo, nopercent ### Memory Free #### Target[mem]: `/root/bin/mrtg/mem.sh IPADDRESS public` Title[mem]: Memory Usage PageTop[mem]: <H1>Memory Usage</H1> MaxBytes[mem]: MEMORY ShortLegend[mem]: B Unscaled[mem]: dwmy YLegend[mem]: Bytes LegendI[mem]: Used LegendO[mem]: Total Legend1[mem]: Memory used Legend2[mem]: Total memory kMG[mem]: k,M Options[mem]: gauge, absolute, growright, noinfo ### Apache Processes ### Target[httpd]: prCount.1&prCount.1:public@IPADDRESS Title[httpd]: Httpd Processes PageTop[httpd]: <H1>Httpd Processes</H1> MaxBytes[httpd]: MAX YLegend[httpd]: Number of httpd ShortLegend[httpd]: httpd LegendI[httpd]: Httpd Processes LegendO[httpd]: Httpd Processes Options[httpd]: gauge, absolute, growright, nopercent, noinfo ### Disk Used #### Target[disk]: dskPercent.1&dskPercent.1:public@IPADDRESS Title[disk]: Disk Usage PageTop[disk]: <H1>Disk Usage</H1> MaxBytes[disk]: 100 ShortLegend[disk]: (%) Unscaled[disk]: dwmy YLegend[disk]: Disk Used(%) LegendI[disk]: / Disk used LegendO[disk]: / Disk used Legend1[disk]: / Disk used Legend2[disk]: / Disk used Options[disk]: gauge, absolute, growright, nopercent, noinfo
6./etc/mrtg/mrtg.cfgの記載を「sed」コマンドで適切に変更
どうしてもサーバのIPアドレスが分からない場合には、以下のコマンドで確認。
# ifconfig | grep “inet addr” | grep -v 127.0.0.1 | awk ‘{print $2}’ | cut -d: -f2
IPADDRESSを変更 # sed -i 's/IPADDRESS/サーバのIPアドレス/g' /etc/mrtg/mrtg.cfg 例:sed -i 's/IPADDRESS/183.181.164.12/g' /etc/mrtg/mrtg.cfg
HOSTNAMEは以下のコマンドで確認
# hostname
HOSTNAMEを変更 # sed -i 's/HOSTNAME/ホスト名/g' /etc/mrtg/mrtg.cfg 例:sed -i 's/HOSTNAME/trippyboy.com/g' /etc/mrtg/mrtg.cfg
メモリ上限は「free」コマンドで確認する。
# free
total used free shared buffers cached
Mem: 1572864 331740 1241124 0 0 0
-/+ buffers/cache: 331740 1241124
Swap: 0 0 0
MEMORYを変更 # sed -i 's/MEMORY/メモリ量/g' /etc/mrtg/mrtg.cfg 例:sed -i 's/MEMORY/1572864/g' /etc/mrtg/mrtg.cfg
Apacheのプロセス上限が分からない場合は、50とでも設定しておく。
調べる場合は、/etc/httpd/conf.d/swtune.confか/etc/httpd/conf/httpd.conf。
/etc/httpd/conf.d/swtune.confはDTI独自の設定ファイルで、邪魔なら消そう。
見るべき所は<IfModule prefork.c>~</IfModule>の間のMaxClients
MAX(ApacheのMaxClients値)を変更 # sed -i 's/MAX/Apache最大プロセス数/g' /etc/mrtg/mrtg.cfg
7.Web閲覧様のファイルを作成する。
# indexmaker --columns=2 /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html
8.Web閲覧出来るようにApacheのmrtg用の設定ファイルを変更する。
初期状態では外部からのアクセスは出来ない設定なので、
とにかくどこからでもアクセス出来るようにする。この辺はご自由に。
# vi /etc/httpd/conf.d/mrtg.conf
Alias /mrtg /var/www/mrtg #<Location /mrtg> # Order deny,allow # Deny from all # Allow from 127.0.0.1 # Allow from ::1 # Allow from .example.com #</Location>
9.Apacheの再起動を行う
# service httpd restart
10.MRTGが参照するデータを作成するために以下コマンドを三回実行する。
# LANG=C mrtg /etc/mrtg/mrtg.cfg
「LANG=C」はServersMan@VPSの初期設定の「LANG=en_US.UTF-8」の場合は実行が出来ないので
それを回避する。エラーの出力が行われるが、3回目には収まる。
あとは、5分に1回自動でmrtgが実行される(/etc/cron.d/mrtg)ので1時間程度たったらhttp://ドメイン/mrtg/ にアクセスしてみよう。すぐにアクセスしても無論グラフは表示されません。
こんな感じに表示されていればOK。CPU Load Averageとかは頻繁に上がるものではないので記録がなくてもご安心を。
設定中にrootにエラーメッセージが届いている可能性があるが、5分毎に実行されるクーロンのエラーだから気にしなくてよし。ちなみに、表示を日本語にする方法もあるが、日本語にする必要性をまったく感じないので英語のままで貫きとおす。
あとは暇があれば以下も見ておこう。
ログから”snmpd[21881]: Connection from UDP”を消すの巻
参考サイト:
ネットワークトラフィック監視システム導入(NET-SNMP+MRTG) ←日本語化の方法あり
追記
ServersMan@VPSでCPUが一個になっちゃったてたのでMRTGでのLA取得がうまくいきませんので、修正いたしました。
Target[cpu]:laLoadInt.1&laLoadInt.2:public@IPADDRESS
2011/10/31
コメント