MRTGでリソース管理 SeversMan@VPS

スポンサーリンク

 

ServersMan@VPS での世界一簡単なMRTGの設定方法を説明する。
各ファイルの編集に際してのバックアップ作成はここでは案内しないのでこちらをご覧下さい。

引き続き以下をご覧あれ。

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

コメント

タイトルとURLをコピーしました