RRDtoolを使用して実行中のサーバーリソースを監視する* nix





こんにちは、ユーザー% 今日は、RRDtoolというユーティリティセットを使用して、ハードウェアとシステムのリアルタイム監視を強化する方法を説明します。 私たちの目標は、システムの動作に関するリアルタイムデータを収集し、グラフィカルに表示することです:CPU負荷、メモリステータス、ネットワークインターフェイスの負荷、およびさまざまな期間のプロセッサの温度。



ちょっとした理論。 RRDtool-リングデータベースを操作するためのユーティリティセット。 このようなデータベースは、時系列のデータシーケンス(ネットワークトラフィック、CPU負荷)を保存するために特別に設計されています-まさに必要なものです。 さらに、collectdデーモンを使用します。これは、一定期間にわたってシステムリソースに関する統計を収集する小さなデーモンです。 必要なリングデータベースを作成し、それに基づいてRRDtoolを使用してグラフを作成できます。 インストールする前に、Webサーバーを既にインストールおよび構成しているとしましょう。ブラウザーでグラフを表示するには、Webサーバーが必要です。 インストールと構成を進めましょう。



すべての操作は、新しくインストールされたDebian 7 wheezyで実行されました。



root@kd-ast:/etc/collectd# uname -a

Linux kd-ast 3.2.0-4-686-pae #1 SMP Debian 3.2.46-1 i686 GNU/Linux








グラフを描画するには、RRDtoolをインストールする必要があります。



apt-get install rrdtool







システムリソースの使用に関する統計を収集するには

自己記述スクリプトの代わりに、Collectdデーモンを使用します。



apt-get install collectd







以下を開始します。



cd /usr/sbin/

./collectd onestart








ロード後、/ var / lib / collectd / router.localが表示されます。「router.local」はサーバーの名前です。

これで、グラフを生成するスクリプト自体に進むことができます。



 #!/bin/sh ### CPU /usr/bin/rrdtool graph /var/www/monitor/cpu0.png \ #  RRDtoll      -e now \ -s 'end - 6 hours' \ -S 60 \ --title "CPU USAGE: AMD Athlon(tm) II X3 455 Processor" \ #CPU --vertical-label "Percents" \ --imgformat PNG \ --slope-mode \ --lower-limit 0 \ --upper-limit 100 \ --rigid \ -E \ -i \ --color SHADEA#FFFFFF \ --color SHADEB#FFFFFF \ --color BACK#CCCCCC \ -w 600 \ -h 150 \ --interlaced \ --font DEFAULT:8:/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf \ DEF:a=/var/lib/collectd/rrd/kd-ast/cpu-0/cpu-idle.rrd:value:MAX \ #    DEF:b=/var/lib/collectd/rrd/kd-ast/cpu-0/cpu-system.rrd:value:MAX \ DEF:c=/var/lib/collectd/rrd/kd-ast/cpu-0/cpu-user.rrd:value:MAX \ LINE2:b#2cc320: \ AREA:b#54eb48:System \ LINE2:c#e7ad4a: \ AREA:c#ebd648:User #LINE1:a#CCCCCC:Idle \ ###eth0 /usr/bin/rrdtool graph /var/www/monitor/network0.png \ -e now \ -s 'end - 6 hours' \ -S 60 \ --title 'Traffic on ext_if: eth0 (local) (100Mb/s)' \ ##   --vertical-label 'Mbyte\s' \ --imgformat PNG \ --slope-mode \ --lower-limit 0 \ --upper-limit 20000000 \ #   - max --rigid \ -E \ -i \ --color SHADEA#FFFFFF \ --color SHADEB#FFFFFF \ --color BACK#CCCCCC \ -w 600 \ -h 150 \ --interlaced \ --font DEFAULT:8:/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf \ DEF:a=/var/lib/collectd/rrd/kd-ast/interface-eth0/if_octets.rrd:tx:MAX \ DEF:b=/var/lib/collectd/rrd/kd-ast/interface-eth0/if_octets.rrd:rx:MAX \ DEF:c=/var/lib/collectd/rrd/kd-ast/interface-eth0/if_errors.rrd:tx:MAX \ AREA:a#4169E1:Tx \ LINE2:b#2cc320: \ AREA:b#54eb48:Rx \ LINE1:c#FF0000:Errors ### RAM /usr/bin/rrdtool graph /var/www/monitor/memory.png \ -e now \ -s 'end - 6 hours' \ -S 60 \ --title 'MEMORY USAGE: 2Gb' \ # RAM --vertical-label 'Mbyte' \ --imgformat PNG \ --slope-mode \ --lower-limit 0 \ --upper-limit 2000000000 \ #   --rigid \ -E \ -i \ --color SHADEA#FFFFFF \ --color SHADEB#FFFFFF \ --color BACK#CCCCCC \ -w 600 \ -h 150 \ --interlaced \ --font DEFAULT:8:/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf \ DEF:a=/var/lib/collectd/rrd/kd-ast/memory/memory-buffered.rrd:value:MAX \ #     DEF:b=/var/lib/collectd/rrd/kd-ast/memory/memory-cached.rrd:value:MAX \ DEF:c=/var/lib/collectd/rrd/kd-ast/memory/memory-free.rrd:value:MAX \ DEF:d=/var/lib/collectd/rrd/kd-ast/memory/memory-used.rrd:value:MAX \ LINE1:a#6959CD:buffered \ AREA:b#00FF00:cache \ LINE2:c#006400: \ AREA:c#00CD66:free \ AREA:d#FF1493:used \
      
      







クラウンに追加して、毎分実行します。



nano /etc/crontab







*/1 * * * * root /home/sysbes/Scripts/RRDtool/mon.sh > /dev/null 2>&1







次の内容でindex.phpを作成しましょう。



 <html> <head> <meta charset='koi8-r'> <title>NOC</title> </head> <body bgcolor='#8FBC8F'> <br> <center> <h2><font face='Arial'>  : kd-ast</font></h2> <br><br> <center> <img src='cpu0.png'> </center><br> <center> </h2> <img src='network0.png'> </center><br> <center> </h2> <img src='memory.png'> </center><br> </body> </html>
      
      







ブラウザで開くと、結果のグラフィックを見ることができます。 _/monitor







温度を決定するために、システムの温度、電圧、およびファン速度を監視できるドライバーとユーティリティのセットであるlmセンサーを使用します。 センサーのセットはシステムごとに異なるため、一部の機能が利用できない場合があることに注意してください。 mbmonも使用できます。



apt-get install lm-sensors







センサーを識別するには:



センサー検出



スクリプトはいくつかの質問をします-心配しないでください。



以下を決定しようとしています。



センサー



温度が正しくないか、検出されない場合は、カーネルモジュールをロードする必要がある場合があります。



modprobe it87







再びsensors







温度が正しい場合は、it87モジュールを追加して自動ロードします。



nano /etc/modules



it87








sensors







次に、理解できるように、値を取るスクリプトを作成する必要があります。

rrdtoolを使用して描画し、1日、1週間、1か月、1年で...それから追加します

cronで、彼は操作を行います。



スクリプトは次のとおりです。



 #!/bin/bash RRDTOOL=/usr/bin/rrdtool #  RRDtool DATABASE=/var/lib/collectd/rrd/kd-ast/space-temperature.rrd #     PERIOD=60 SENSOR=` /usr/bin/sensors | grep temp3 | awk '{ print $2-0}'` #    IMAGE_PATH=/var/www/monitor #    TITLE_TEXT='CPU TEMP' UNDER_TEXT='TEMP' TEMP_MIN=20 TEMP_MAX=90 if ! [ -f $DATABASE ] then $RRDTOOL create $DATABASE -s $PERIOD DS:temperature:GAUGE:600:10:80 \ RRA:AVERAGE:0.5:1:576 \ RRA:AVERAGE:0.5:6:672 \ RRA:AVERAGE:0.5:24:732 \ RRA:AVERAGE:0.5:144:1460 fi $RRDTOOL update $DATABASE N:$SENSOR function DRAW_GRAPHIC { NOW_HOUR=`date +%H` NOW_MIN=`date +%M` NOW_SEC=`date +%S` case $2 in day) TIME_TEXT="Last 24 hours" ;; week) TIME_TEXT="Last week" ;; month) TIME_TEXT="Last mounth" ;; year) TIME_TEXT="Last year" ;; esac $RRDTOOL graph $IMAGE_PATH/$1 \ -s -1$2 \ -e now \ -a PNG \ -v 'C' \ -t "$TITLE_TEXT [$HOSTNAME] - $TIME_TEXT" \ -l $TEMP_MIN \ -u $TEMP_MAX \ -r \ -E \ -i \ -R light \ --zoom 1.0 \ -w 600 \ -h 150 \ DEF:temperature=$DATABASE:temperature:AVERAGE \ LINE2:temperature#33cc33:"$UNDER_TEXT" \ GPRINT:temperature:MIN:'MIN\:%2.lf' \ GPRINT:temperature:MAX:'MAX\:%2.lf' \ GPRINT:temperature:AVERAGE:'AVG\:%4.1lf' \ GPRINT:temperature:LAST:'NOW\:%2.lf \n' \ COMMENT:"TIME \: $NOW_HOUR\:$NOW_MIN\:$NOW_SEC \n" } DRAW_GRAPHIC 'temp_d.png' 'day' DRAW_GRAPHIC 'temp_w.png' 'week' DRAW_GRAPHIC 'temp_m.png' 'month' DRAW_GRAPHIC 'temp_y.png' 'year'
      
      







スクリプトをcrontabに追加して、毎分実行します。



*/1 * * * * root /home/sysbes/temp.sh > /dev/null 2>&1







統計表のおおよそのビューは次のとおりです。



 <html> <head> <meta charset='koi8-r'> <title> RRD   :  -</title> </head> <body bgcolor='#ccddcc'> <h2> <font face='Arial'>   @  - </font> </h2> <img src='png/temp_d.png'> <br> <img src='png/temp_w.png'> <br> <img src='png/temp_m.png'> <br> <img src='png/temp_y.png'> </body> </html>
      
      







その結果、以下が得られます。



 <html> <head> <meta charset='koi8-r'> <title>kd-ast</title> </head> <body bgcolor='#8FBC8F'> <br> <center> <h2><font face='Arial'>Real Time Load kd-ast:</font></h2> <center> <img src='cpu0.png'> </center><br> <center> </h2> <img src='network0.png'> </center><br> <center> </h2> <img src='memory.png'> </center><br> <center> <h2><font face='Arial'>CPU TEMP kd-ast:</font></h2> <img src='temp_d.png'> <br> <img src='temp_w.png'> <br> <img src='temp_m.png'> <br> <img src='temp_y.png'> </body> </html>
      
      







リクエストに応じて _/monitor



_/monitor



はブラウザで統計を表示できます。



All Articles