آموزش مانیتورینگ پهنای باند در لینوکس به کمک ابزار vnSTAT

بسیاری از مدیران سرور ها نیازمند ابزاری برای مانیتورینگ کل پهنای باند مصرفی دانلود و یا آپلود شده بر روی سرور می باشند. ممکن است مدیر سرور برای مدیریت بهتر سرور از یک کنترل پنل مانند دایرکت ادمین ( Directadmin ) ، سی پنل ( cPanel ) ، پلسک ( Plesk ) ، وب سایت پنل ( WebSitePanel ) و یا کلوکسو ( Kloxo ) بسته به نوع سیستم عامل سرور استفاده نماید، اما هیچکدام از این پنل ها کل ترافیک مصرف شده بر روی سرور را نمایش نمی دهند، این پنل تنها با تقریب ممکن است ترافیک مصرفی یک اکانت را نمایش دهند. اما ملاک هزینه های پهنای باند ، کل ترافیک انتقال یافته بر روی کارت شبکه است که ممکن است صرف آپدیت های سیستم عامل و یا حتی ویروس ها و یا حملات بروت فورس ( Brute Force ) شود و مدیر سرور مجبور به پرداخت هزینه برای ترافیک ناخواسته خود می شود. پیش از این نیز در مقالات دیگری نرم افزار هایی برای مانیتورینگ ترافیک سرور معرفی کرده بودیم، در این مقاله نیز ابزار مفید دیگری به نام vnSTAT  قابل نصب بر روی سیستم عامل های لینوکسی  را معرفی خواهیم نمود که می تواند در تعیین دقیق تر ترافیک مصرفی سرور مفید باشد.

از مزایای این نرم افزار می توان به سبک بودن آن اشاره نمود که بار خاصی را بر روی سرور اعمال نمی کند. این نرم افزار مدعی است که کل ترافیک انتقال داده شده بر روی شبکه سرویس اعم از ترافیک وب سرور و یا حتی حجم پکت های ICMP را مورد محاسبه قرار می دهد و ترافیک مصرفی بصورت ساعتی ؛ روزانه و ماهانه قابل مشاهده خواهد بود.

نصب نرم افزار vnSTAT   بر روی سیستم عامل لینوکس :

لطفا ابتدا از طریق ssh به سرور خود متصل شوید. سپس دستور زیر را برای نصب vnStat بر روی سیستم عامل CentOS وارد نمائید:

yum install vnstat

حال می بایست به کمک دستورات زیر تنظیم نمائید تا دستور vnstat به کمک کرون هر چند دقیقه یکبار اجرا شود:

vim /etc/cron.d/vnstat

*/5 * * * * vnstat /usr/sbin/vnstat.cron

حال می بایست مشخص کنید که vnstat کدام اینترفیس ( interface ) را مانیتور نماید:

vnstat -i eth0

ممکن است با خطای زیر روبرو شوید:

Error :

Unable to rea
d database “/var/lib/vnstat/eth0″.

eth0: Not enough data available yet.

اما مشکلی نخواهد بود، این خطا تنها به این دلیل که اولین بار است که آن  را اجرا می کنید رخ می دهد. نصب اولیه نرم افزار  به همین سادگی انجام می پذیرد ، برای مشاهده دستورات مختلف آن و خروجی های مربوطه ، توجه شما را به موارد زیر جلب می دارد:

 

$ vnstat --help
 vnStat 1.12 by Teemu Toivola 

         -q,  --query          query database
         -h,  --hours          show hours
         -d,  --days           show days
         -m,  --months         show months
         -w,  --weeks          show weeks
         -t,  --top10          show top10
         -s,  --short          use short output
         -u,  --update         update database
         -i,  --iface          select interface (default: eth0)
         -?,  --help           short help
         -v,  --version        show version
         -tr, --traffic        calculate traffic
         -ru, --rateunit       swap configured rate unit
         -l,  --live           show transfer rate in real time

See also "--longhelp" for complete options list and "man vnstat".

 

$ vnstat
Database updated: Sat Aug  1 22:50:01 2009

   eth1 since 11/20/08

          rx:  3.32 TiB      tx:  2.81 TiB     total:  6.13 TiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Jul '09    609.40 GiB |  282.21 GiB |  891.61 GiB |    2.79 Mbit/s
       Aug '09     16.95 GiB |   10.46 GiB |   27.40 GiB |    2.80 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated    552.14 GiB |  340.70 GiB |  892.83 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday     19.19 GiB |    8.63 GiB |   27.82 GiB |    2.70 Mbit/s
         today     16.95 GiB |   10.46 GiB |   27.40 GiB |    2.80 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated     17.81 GiB |   10.99 GiB |   28.80 GiB |
(with 2 interfaces)
$ vnstat

                      rx      /      tx      /     total    /   estimated
 Internet (eth1):
       Jul '09     31.90 GiB  /   28.05 GiB  /   59.95 GiB
       Aug '09    281.04 MiB  /   99.45 MiB  /  380.49 MiB  /   12.05 GiB
     yesterday      1.23 GiB  /  473.23 MiB  /    1.69 GiB
         today    281.04 MiB  /   99.45 MiB  /  380.49 MiB  /     397 MiB

 Local (eth0):
       Jul '09     25.13 GiB  /  116.94 GiB  /  142.07 GiB
       Aug '09    234.75 MiB  /    5.03 GiB  /    5.26 GiB  /  170.76 GiB
     yesterday    520.55 MiB  /    2.21 GiB  /    2.72 GiB
         today    234.75 MiB  /    5.03 GiB  /    5.26 GiB  /    5.51 GiB
$ vnstat -h
 eth1                                                                     21:25
  ^           r
  |           r
  |           r                                            r
  |        r  r                                            r
  |      t r  r                                            r            t
  |     rt r  r                                            r  r      t  t
  |     rt r  r                                            r  r      t  t
  |     rt r  r         t                      r           r  r      t  t
  |     rt r  rt        t                   r  r        r  rt rt  t rt rt  t
  |  rt rt rt rt rt r  rt r              r  r  r  r  rt rt rt rt rt rt rt  t
 -+--------------------------------------------------------------------------->
  |  22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21

 h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)      h  rx (KiB)   tx (KiB)
22    250,801    205,825    06    100,529     49,054    14    205,356    157,877
23    705,144    885,844    07     52,806     44,130    15    258,228    226,265
00    928,792    224,789    08     52,298     45,230    16  1,028,043    343,843
01  1,271,180    292,260    09     70,396     61,719    17    755,804    293,309
02    212,296    186,481    10    155,502     72,451    18    235,691    284,886
03    165,931     91,943    11    266,673     92,497    19    275,554    658,386
04    150,997    437,071    12    392,244    122,185    20    307,819    850,813
05    180,170     56,391    13    133,829    120,555    21    117,474    292,787
$ vnstat -d

 eth1  /  daily

         day         rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
      07/03/09     10.90 GiB |    6.39 GiB |   17.29 GiB |    1.68 Mbit/s
      07/04/09     21.21 GiB |    5.65 GiB |   26.87 GiB |    2.61 Mbit/s
      07/05/09     10.58 GiB |    6.67 GiB |   17.25 GiB |    1.67 Mbit/s
      07/06/09     49.90 GiB |    9.69 GiB |   59.59 GiB |    5.79 Mbit/s
      07/07/09     28.09 GiB |    7.58 GiB |   35.68 GiB |    3.46 Mbit/s
      07/08/09     17.60 GiB |    6.83 GiB |   24.43 GiB |    2.37 Mbit/s
      07/09/09     20.80 GiB |   15.64 GiB |   36.44 GiB |    3.54 Mbit/s
      07/10/09     16.10 GiB |   11.14 GiB |   27.24 GiB |    2.64 Mbit/s
      07/11/09      9.79 GiB |    4.96 GiB |   14.76 GiB |    1.43 Mbit/s
      07/12/09      9.36 GiB |    9.60 GiB |   18.97 GiB |    1.84 Mbit/s
      07/13/09     11.26 GiB |    8.16 GiB |   19.42 GiB |    1.89 Mbit/s
      07/14/09     32.65 GiB |    9.56 GiB |   42.21 GiB |    4.10 Mbit/s
      07/15/09     35.32 GiB |   15.55 GiB |   50.88 GiB |    4.94 Mbit/s
      07/16/09     20.71 GiB |   15.24 GiB |   35.95 GiB |    3.49 Mbit/s
      07/17/09     15.10 GiB |   15.34 GiB |   30.44 GiB |    2.95 Mbit/s
      07/18/09     14.23 GiB |    5.20 GiB |   19.44 GiB |    1.89 Mbit/s
      07/19/09     23.59 GiB |    6.73 GiB |   30.32 GiB |    2.94 Mbit/s
      07/20/09     36.36 GiB |    7.53 GiB |   43.90 GiB |    4.26 Mbit/s
      07/21/09     28.11 GiB |    6.06 GiB |   34.16 GiB |    3.32 Mbit/s
      07/22/09     20.80 GiB |   15.36 GiB |   36.16 GiB |    3.51 Mbit/s
      07/23/09     18.20 GiB |   10.71 GiB |   28.91 GiB |    2.81 Mbit/s
      07/24/09     13.07 GiB |    6.25 GiB |   19.33 GiB |    1.88 Mbit/s
      07/25/09      9.74 GiB |    6.38 GiB |   16.11 GiB |    1.56 Mbit/s
      07/26/09     11.51 GiB |    6.66 GiB |   18.17 GiB |    1.76 Mbit/s
      07/27/09     16.68 GiB |    9.18 GiB |   25.86 GiB |    2.51 Mbit/s
      07/28/09     17.06 GiB |    6.61 GiB |   23.67 GiB |    2.30 Mbit/s
      07/29/09     23.19 GiB |    7.21 GiB |   30.41 GiB |    2.95 Mbit/s
      07/30/09      9.34 GiB |    7.79 GiB |   17.13 GiB |    1.66 Mbit/s
      07/31/09     19.19 GiB |    8.63 GiB |   27.82 GiB |    2.70 Mbit/s
      08/01/09     17.13 GiB |   10.50 GiB |   27.63 GiB |    2.81 Mbit/s
     ------------------------+-------------+-------------+---------------
     estimated     17.94 GiB |   11.00 GiB |   28.94 GiB |
$ vnstat -m

 eth1  /  monthly

      month         rx      |      tx      |    total     |   avg. rate
    ------------------------+--------------+--------------+---------------
     Nov '08      74.94 GiB |    96.48 GiB |   171.42 GiB |  554.76 kbit/s
     Dec '08     279.32 GiB |   276.05 GiB |   555.37 GiB |    1.74 Mbit/s
     Jan '09     324.34 GiB |   413.38 GiB |   737.72 GiB |    2.31 Mbit/s
     Feb '09     273.73 GiB |   362.49 GiB |   636.22 GiB |    2.21 Mbit/s
     Mar '09     353.50 GiB |   270.03 GiB |   623.53 GiB |    1.95 Mbit/s
     Apr '09     361.74 GiB |   365.01 GiB |   726.74 GiB |    2.35 Mbit/s
     May '09     345.62 GiB |   440.43 GiB |   786.05 GiB |    2.46 Mbit/s
     Jun '09     758.45 GiB |   359.30 GiB |     1.09 TiB |    3.62 Mbit/s
     Jul '09     609.40 GiB |   282.21 GiB |   891.61 GiB |    2.79 Mbit/s
     Aug '09      17.13 GiB |    10.50 GiB |    27.63 GiB |    2.81 Mbit/s
    ------------------------+--------------+--------------+---------------
    estimated    556.15 GiB |   340.85 GiB |   897.00 GiB |
$ vnstat -t

 eth1  /  top 10

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
    1   06/24/09      80.56 GiB |   10.47 GiB |   91.03 GiB |    8.84 Mbit/s
    2   06/09/09      49.11 GiB |   21.65 GiB |   70.76 GiB |    6.87 Mbit/s
    3   06/15/09      38.01 GiB |   28.77 GiB |   66.78 GiB |    6.48 Mbit/s
    4   06/26/09      53.03 GiB |   10.57 GiB |   63.60 GiB |    6.17 Mbit/s
    5   07/06/09      49.90 GiB |    9.69 GiB |   59.59 GiB |    5.79 Mbit/s
    6   06/25/09      47.32 GiB |   10.11 GiB |   57.43 GiB |    5.58 Mbit/s
    7   02/20/09      19.15 GiB |   37.55 GiB |   56.70 GiB |    5.50 Mbit/s
    8   02/02/09      20.65 GiB |   34.03 GiB |   54.68 GiB |    5.31 Mbit/s
    9   01/14/09      20.00 GiB |   32.99 GiB |   52.99 GiB |    5.14 Mbit/s
   10   04/26/09      32.37 GiB |   19.22 GiB |   51.59 GiB |    5.01 Mbit/s
   -----------------------------+-------------+-------------+---------------
$ vnstat -w

 eth1  /  weekly

                      rx      |     tx      |    total    |   avg. rate
   ---------------------------+-------------+-------------+---------------
    last 7 days    114.11 GiB |   56.58 GiB |  170.69 GiB |    2.38 Mbit/s
      last week    137.79 GiB |   58.96 GiB |  196.75 GiB |    2.73 Mbit/s
   current week    102.60 GiB |   49.92 GiB |  152.52 GiB |    2.49 Mbit/s
   ---------------------------+-------------+-------------+---------------
      estimated    121.38 GiB |   59.06 GiB |  180.44 GiB |
$ vnstat -tr
3103 packets sampled in 5 seconds
Traffic average for eth1

      rx          50.41 KiB/s           289 packets/s
      tx          82.11 KiB/s           331 packets/s
$ vnstat -l
Monitoring eth0...    (press CTRL-C to stop)

   rx:        0 kbit/s     1 p/s          tx:        4 kbit/s     2 p/s


 eth0  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                       21 KiB  |          36 KiB
--------------------------------------+------------------
          max              60 kbit/s  |       72 kbit/s
      average            3.36 kbit/s  |     5.76 kbit/s
          min               0 kbit/s  |        0 kbit/s
--------------------------------------+------------------
  packets                        262  |             272
--------------------------------------+------------------
          max                 94 p/s  |          94 p/s
      average                  5 p/s  |           5 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                    50 seconds

 

 

نصب گرافیکی نرم افزار vnSTAT :

 vnSTAT در حالت عادی داده ها را بصورت گرافیکی نمایش نمی دهد ، لذا برای مشاهده  گزارش مانیتورینگ بصورت گرافیکی می بایست یک اسکریپت برای مشاهده اینترفیس آن بر روی سرور نصب نمائید. با فرض اینکه از کنترل پنلی مانند دایرکت ادمین استفاده می فرمائید، لطفا یک اکانت برای این منظور بسازید، البته شما می توانید vnSTAT را داخل یکی از پوشه های دامنه های فعال خود نصب نمائید. لذا در صورتیکه مرحله نصب vnSTAT صورت گرفته است، لطفا  جهت وارد کردن دستوارت از طریق ssh به سرور متصل شوید.

پس از اتصال به سرور با دستور زیر به پوشه public_html دامنه مورد نظر خود وارد شوید:

cd /home/domain/public_html

حال یک فولدر برای قرار گرفتن اسکریپت ساخته و باقی دستورات را اجرا نمائید:

mkdir domain_monitor
cd domain_monitor
wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.5.1.tar.gz
tar xzf vnstat_php_frontend-1.5.1.tar.gz

سپس فایل config.php را در پوشه vnstat توسط ویرایشگر vim باز نموده و پارامتر های زیر را درون آن تغییر دهید :

$locale = ‘en_US.UTF-8’;
$language = ‘en’;
$iface_list = array(‘eth0’);
$iface_title[‘eth0’] = ‘Internal’;

فراموش نکنید از آنجا که با یوزر روت (  ) تغییرات انجام شده ،می بایست دسترسی فایل های اسکریپت را اصلاح نمایید.