ドロップレットのモニタリングを設定する方法
ステップ1-監視サーバーをセットアップする
他のすべてのサーバーへの接続に使用されるCentOS6.3×64ドロップレットを起動します。
この例では、この監視サーバーのIPは198.211.117.251です。 今後のすべての構成スニペットはこのIPを参照するため、必ず独自の値に変更してください。
ステップ2-監視対象のホストにパッケージをインストールする
yum -y install net-snmp && chkconfig snmpd on && :> /etc/snmp/snmpd.conf
次の行を/etc/snmp/snmpd.confに追加します。
com2sec mynetwork 198.211.117.251 DigitalOcean group MyROGroup v1 mynetwork view all included .1 80 access MyROGroup "" any noauth exact all none none
私たちのクライアントサーバーはcloudmail.tk(198.211.107.218)とemailocean.tk(198.211.112.99)です。
サーバーにファイアウォールルールがある場合は、監視ドロップレットからポート161へのUDP接続を許可し、他のすべてのユーザーをドロップしてください。
iptables -I INPUT -s 198.211.117.251 -p udp --dport 161 -j ACCEPT iptables -A INPUT -s 0/0 -p udp --dport 161 -j DROP
これで、監視するすべてのサーバーでSNMPデーモンを起動できます。
service snmpd start
ステップ3-監視サーバーを構成する
yum -y install net-snmp-utils rrdtool httpd && chkconfig httpd on
クライアントごとにRRDデータベースファイルを作成します。 これを実行する必要があるのは1回だけです。
rrdtool create /root/cloudmail.tk.rrd -s 60 DS:in:COUNTER:300:U:U DS:out:COUNTER:300:U:U RRA:AVERAGE:0.5:1:10080 rrdtool create /root/emailocean.tk.rrd -s 60 DS:in:COUNTER:300:U:U DS:out:COUNTER:300:U:U RRA:AVERAGE:0.5:1:10080
グラフを更新するスクリプトを作成します。 最初のコマンドセットはデータファイルを作成および更新し、2番目のコマンドセットはこのデータをPNGファイルにプロットし、ApacheのDocumentRootパスに保存します。
このファイルを/root/rrdupdate.shおよびとして保存します。これはすべて単一行であり、複数に分割されているため、’\’の後にスペースがないことを確認してください。
#!/bin/bash rrdupdate /root/cloudmail.tk.rrd N:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.107.218 \ IF-MIB::ifInOctets.1`:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.107.218 IF-MIB::ifOutOctets.1` rrdtool graph /var/www/html/cloudmail.tk.png \ -a PNG -h 125 -s -43200 --title "cloudmail.tk (198.211.107.218)" \ -v "Data Throughput" \ 'DEF:in=/root/cloudmail.tk.rrd:in:AVERAGE' \ 'DEF:out=/root/cloudmail.tk.rrd:out:AVERAGE' \ 'CDEF:kbin=in,1024,/' \ 'CDEF:kbout=out,1024,/' \ 'AREA:in#00FF00:Bandwidth In' \ 'LINE1:out#0000FF:Bandwidth Out\j' \ 'GPRINT:kbin:LAST:Last Bandwidth In\: %3.2lf KBps' \ 'GPRINT:kbout:LAST:Last Bandwidth Out\: %3.2lf KBps\j' \ 'GPRINT:kbin:AVERAGE:Average Bandwidth In\: %3.2lf KBps' \ 'GPRINT:kbout:AVERAGE:Average Bandwidth Out\:%3.2lf KBps\j' rrdupdate /root/emailocean.tk.rrd N:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.112.99 \ IF-MIB::ifInOctets.1`:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.112.99 IF-MIB::ifOutOctets.1` rrdtool graph /var/www/html/emailocean.tk.png \ -a PNG -h 125 -s -43200 --title "emailocean.tk (198.211.112.99)" \ -v "Data Throughput" \ 'DEF:in=/root/emailocean.tk.rrd:in:AVERAGE' \ 'DEF:out=/root/emailocean.tk.rrd:out:AVERAGE' \ 'CDEF:kbin=in,1024,/' \ 'CDEF:kbout=out,1024,/' \ 'AREA:in#00FF00:Bandwidth In' \ 'LINE1:out#0000FF:Bandwidth Out\j' \ 'GPRINT:kbin:LAST:Last Bandwidth In\: %3.2lf KBps' \ 'GPRINT:kbout:LAST:Last Bandwidth Out\: %3.2lf KBps\j' \ 'GPRINT:kbin:AVERAGE:Average Bandwidth In\: %3.2lf KBps' \ 'GPRINT:kbout:AVERAGE:Average Bandwidth Out\:%3.2lf KBps\j'
スクリプトを実行して、エラーがなく、グラフが生成されることを確認します。
bash /root/rrdupdate.sh ls -lah /var/www/html/*.png
ここで、5分ごとにグラフを更新するcrontabエントリを追加し、Apacheを起動します。
echo "*/5 * * * * bash /root/rrdupdate.sh" > /var/spool/cron/root service httpd start
これらのグラフを自分のWebサイトに含めるか、新しい/var/www/html/index.htmlを追加できます。
データが数時間入力されるのを待って、監視ドロップレットのIPアドレスに移動します。
そして、あなたはすべて完了です!