نظارت بر ترافیک شبکه، یک وظیفه ضروری برای مدیران سیستم، مهندسان شبکه و تحلیلگران امنیتی است. این کار به آنها کمک میکند تا عملکرد و رفتار شبکه را درک کنند و همچنین، هر مشکل یا ناهنجاری احتمالی را شناسایی و برطرف نمایند. یکی از ابزارهایی که نظارت بر ترافیک شبکه را در سیستمهای لینوکس تسهیل میکند، vnSTAT است. در این مقاله، توضیح میدهیم که ابزار vnSTAT چیست، چه مزایا و محدودیتهایی دارد و چطور باید از آن استفاده کرد. همچنین، نحوه نصب vnSTAT را نیز آموزش میدهیم. پس لطفا تا انتهای این مطلب با ما در وبلاگ VPS Market همراه باشید.
ابزار vnSTAT چیست؟
vnSTAT یک ابزار نظارت بر شبکه برای توزیع های لینوکس است که از رابط خط فرمان (Command Line) برای نمایش آمار ترافیک یک یا چند رابط شبکه استفاده میکند. ابزار vnSTAT میتواند به طور زنده بر ترافیک شبکه نظارت کند، دادههای مدت زمان مشخصی را نمایش دهد و همچنین، میانگین و ترافیک تخمینی را در یک بازه زمانی معین محاسبه کند. این امر، به مدیران شبکه کمک میکند تا الگوهای ترافیک را شناسایی و برآورد کنند، ظرفیت شبکه خود را ارتقاء دهند و در هزینهها صرفه جویی کنند.
ابزار vnSTAT از طریق خواندن آمار رابط شبکه از سیستم فایل /proc کار میکند. این آمار، توسط هسته لینوکس آپدیت میشوند. این بدان معنا است که vnSTAT نیازی به گرفتن یا تجزیه و تحلیل هیچ بستهای ندارد. بنابراین، در ترافیک شبکه تداخلی ایجاد نمیشود و منابع CPU یا حافظه زیادی هم مصرف نمیکند. بسته به پیکربندی و ترجیح کاربر، vnSTAT میتواند به عنوان daemon، cron job یا دستور دستی اجرا شود. ابزار vnSTAT دادههای ترافیک شبکه را در یک فایل پایگاه داده باینری ذخیره میکند که به طور پیش فرض، در دایرکتوری /var/lib/vnstat قرار دارد.
از این دایرکتوری برای ذخیره دادههای سیستم استفاده میشود. فایل پایگاه داده به صورت دورهای توسط vnSTAT daemon یا cron job آپدیت میشود. کاربر میتواند با استفاده از دستور vnSTAT به فایل پایگاه داده دسترسی پیدا کند و آمار رابط شبکه را در فرمتهای مختلف مشاهده کند. فرمتهای مختلف نمایش آمار، اطلاعاتی مانند میزان ترافیک ارسالی و دریافتی، تعداد بستهها و درصد زمان استفاده از رابط را ارائه میدهند. کاربر میتواند برای اطمینان از حفظ این اطلاعات، از فایل پایگاه داده بکاپ بگیرد، آن را بازیابی کند یا به سیستم دیگری منتقل کند.
شما میتوانید با استفاده از ابزار vnSTAT اطلاعات مفید و کاربردی در رابطه با فعالیت شبکه سرور مجازی لینوکس خود به دست آورید.
ابزار vnSTAT چگونه کار میکند؟
پس از اینکه دانستیم ابزار vnSTAT چیست، لازم است با سازوکار آن نیز آشنا شویم. vnSTAT یک ابزار رایگان و متنباز برای نظارت بر ترافیک شبکه در سیستم عاملهای لینوکس و BSD است که از آمار رابط شبکه کرنل به عنوان منبع اطلاعات استفاده میکند. این ابزار، ترافیک شبکه را به طور مستقیم اسکن نمیکند و تنها از اطلاعات موجود در سیستم عامل استفاده میکند. این امر باعث میشود این ابزار صرف نظر از سرعت ترافیک شبکه، از منابع کمتری استفاده کند.
ابزار vnSTAT برای نظارت بر پارامترهای شبکه مانند مصرف پهنای باند، یا شاید مقداری از ترافیکهای ورودی یا خروجی طراحی شده است. همچنین، میتواند ترافیک شبکه را برای رابطهای شبکه انتخابشده در سه بازه زمانی مختلف یعنی ساعتی، روزانه و ماهانه ثبت کند. اما یک اسکنر بسته نیست و از اطلاعات موجود در سیستم عامل برای نظارت بر ترافیک شبکه استفاده میکند.
برای استفاده از vnStat باید آن را روی سیستم لینوکس یا BSD خود نصب کنید. پس از نصب vnStat میتوانید آن را راهاندازی کرده و برای نظارت بر ترافیک شبکه پیکربندی کنید. سپس، میتوانید از vnStat برای نمایش آمار ترافیک شبکه در رابط(های) انتخابشده استفاده کنید.
ویژگیهای ابزار vnSTAT
- نگهداری و ذخیره سازی دادهها: ابزار vnSTAT اطلاعات ترافیک شبکه را برای دورههای زمانی مختلف، از ساعتی تا سالانه، ذخیره میکند. این کار به کاربران امکان میدهد بر روند مصرف پهنای باند و فعالیت شبکه خود نظارت کنند، ناهنجاریها و الگوهای غیرعادی در ترافیک شبکه را شناسایی نمایند و استفاده از شبکه خود را بهینه کنند.
- نظارت بر چندین رابط: ابزار vnSTAT میتواند به طور همزمان بر ترافیک چندین رابط شبکه نظارت کند. این ویژگی، به کاربران امکان میدهد تا ترافیک شبکه را در سراسر اتصالات مختلف به طور کامل تجزیه و تحلیل کنند. این توانایی به ویژه برای کاربرانی مفید است که شبکههای پیچیدهای با چندین رابط شبکه دارند. با نظارت همزمان بر چندین رابط شبکه، کاربران میتوانند مشکلات شبکه را سریعتر شناسایی کنند و عملکرد شبکه خود را بهبود بخشند.
- خروجی قابل تنظیم: ابزار vnSTAT فرمتهای مختلفی را برای خروجی دادهها ارائه میدهد که از این دست میتوان به متن ساده، نمودارهای گرافیکی و CSV اشاره کرد. این ویژگی کاربران را قادر میسازد خروجی vnSTAT را در فرمتهای موردنظر خود مشاهده کنند.
- بهرهوری منابع: ابزار vnSTAT بسیار سبک طراحی شده و به همین دلیل، حتی در دورههایی که ترافیک شبکه زیاد است، تاثیر کمی بر منابع سیستم میگذارد.
- بدون نیاز به مجوزهای روت: vnSTAT میتواند بدون مجوزهای روت کار کند. به همین دلیل، انتخابی مناسب برای کاربرانی که دسترسی مدیریتی محدودی به سیستمهایشان دارند محسوب میشود.
ابزار vnSTAT چه مزایایی دارد؟
مزایای ابزار vnSTAT چیست؟ در این رابطه میتوان به موارد زیر اشاره کرد:
- نظارت بلادرنگ بر ترافیک: vnSTAT قابلیتهای نظارت بر الگوهای ترافیک شبکه را به صورت بلادرنگ فراهم کرده و شناسایی ناهنجاریها و مشکلات احتمالی را امکان پذیر میکند. این قابلیت، به کاربران امکان میدهد فعالیتهای غیرعادی در شبکه، استفاده بیش از حد از پهنای باند و سایر تهدیدات امنیتی احتمالی را سریعا شناسایی کنند. این ویژگی، به شناسایی و حل مشکلات شبکه، جلوگیری از دسترسی غیرمجاز و محافظت از دادههای حساس کمک میکند.
- تحلیل روند و بهینه سازی: vnSTAT تجزیه و تحلیل روند را در طول زمان تسهیل میکند و کاربران را قادر میسازد تا درک عمیقتری از الگوهای استفاده از شبکه خود به دست آورند. با تجزیه و تحلیل تاریخچه دادهها، کاربران میتوانند روندها را شناسایی کرده، تخصیص پهنای باند را بهینه کنند، تصمیمات آگاهانهای برای بهبود عملکرد شبکه بگیرند و هزینهها را کاهش دهند.
- بهره وری منابع بدون نیاز به مجوزهای روت: به دلیل طراحی سبک vnSTAT، این ابزار حتی در دورههایی که ترافیک شبکه زیاد باشد، کمترین میزان منابع را مصرف میکند. این ویژگی vnSTAT را برای استفاده در سیستمهای دارای منابع محدود، مانند رایانههای شخصی و سرورهای کوچک مناسب میکند. همچنین با توجه به اینکه به مجوزهای روت نیاز ندارد، راحتتر قابل دسترس است و این، به کاربرانی که دسترسی مدیریتی محدود دارند اجازه میدهد به طور موثر بر ترافیک شبکه نظارت کنند.
- حفظ دادهها و خروجی قابل تنظیم: vnSTAT گزینههای جامعی برای نگهداری از دادهها ارائه میکند و به کاربران این امکان را میدهد تا دوره ذخیره سازی را متناسب با نیازهای خود تنظیم کنند. این ابزار فرمتهای مختلفی را بر اساس اولویت کاربران برای خروجی دادهها ارائه میدهد که از این دست میتوان به متن ساده، نمودارهای گرافیکی و CSV اشاره کرد. این انعطاف پذیری، کاربران را قادر میکند تا دادههای ترافیک شبکه را در فرمتی تحلیل و تصویرسازی کنند که با گردش کار و اهداف آنها مطابقت دارد.
- یکپارچه شده با vnSTATi برای گزارشهای گرافیکی: vnSTATi یک ابزار همراه برای vnSTAT است که به طور یکپارچه با آن ادغام میشود تا گزارشهای گرافیکی از دادههای ترافیک شبکه ایجاد کند. این ویژگی کاربران را قادر میکند تا این دادهها را به صورت بصری و آسان برای درک بهتر نمایش دهند. در واقع، این نمایشهای بصری، یک نمای کلی واضح و مختصر از الگوهای استفاده از شبکه ارائه میدهد و شناسایی روندها، ناهنجاریها و تنگناهای احتمالی را آسانتر میکند.
- صرفه جویی در هزینه و بهینه سازی: کاربران با درک الگوهای ترافیک شبکه، میتوانند استفاده از پهنای باند را بهینه کنند، مصرف دادههای غیرضروری را کاهش دهند و در هزینهها صرفه جویی کنند. این بهینه سازی میتواند به ویژه برای مشاغل و سازمانهایی که پهنای باند محدودی دارند یا کسانی که به دنبال کنترل هزینههای دادهها هستند، مفید باشد.
- عیب یابی و بهبود امنیت: دادههای vnSTAT میتواند جهت عیب یابی و رفع مشکلات مربوط به شبکه بسیار ارزشمند باشد. vnSTAT میتواند با شناسایی منابع ترافیک بیش از حد، تنگناهای احتمالی یا فعالیت مشکوک در شبکه، به طور موثر به تشخیص و حل مشکلات شبکه کمک کند. علاوه بر این، توانایی آن در نظارت بر الگوهای ترافیک شبکه، میتواند آگاهی از تهدیدات امنیتی بالقوه را افزایش دهد و به اجرای اقدامات پیشگیرانه کمک کند.
چگونه با ابزار vnstat شروع به کار کنیم؟
در این بخش با نحوه استفاده از ابزار vnSTAT و نظارت بر ترافیک شبکه با آن آشنا میشویم.
توصیه میشود از ابزار vnSTAT برای نظارت بر پهنای باند در انواع سرور مجازی ارزان مانند سرور مجازی ایران استفاده کنید.
نصب vnSTAT
در لینوکس اوبونتو و دبیان، vnStat در مخزن پیش فرض موجود است. برای نصب vnStat از دستورات زیر استفاده کنید:
sudo apt update sudo apt install vnstat
مخازن پیش فرض CentOS و Fedora ابزار vnStat را ندارند. اما میتوانید آنها را از مخازن EPEL دریافت کنید. برای این منظور، باید مخازن EPEL را فعال کرده و سپس به نصب vnStat بپردازید. برای این کار از دستورات زیر استفاده کنید:
sudo yum install epel-release sudo yum install vnstat
برای سیستمهای Fedora دستورات زیر را تایپ کنید:
sudo dnf update sudo dnf install vnstat
راهاندازی vnSTAT
پس از نصب vnStat، باید رابط شبکهای را که میخواهید بر آن نظارت کنید، تنظیم نمایید. با این حال، قبل از انجام این کار باید لیست رابطهای شبکه موجود در سیستم خود را بدانید. برای انجام این کار، هر یک از دو دستور زیر را تایپ کنید:
ip link show
یا
netstat -i
استفاده از دستورهای فوق، لیستی از تمام رابطهای شبکه موجود در سیستم را نشان میدهد.
برای این مقاله، ما فقط بر رابطی که نشان دهنده اتصال اترنت به سیستم ما است (eth0)، نظارت میکنیم. این رابط ممکن است در سیستم شما اسم متفاوتی نظیر enp0s3 یا venet0 داشته باشد. در صورتی که از WiFi استفاده میکنید، اسم رابط ممکن است wlan0 یا wifi0 باشد. هر رابط شبکهای که اسم آن lo یا lo0 باشد، نشان دهنده رابط loopback است که برای ارتباطات داخلی بین فرایندها یا برنامهها استفاده میشود.
برای نظارت بر رابط eth0 از دستور زیر استفاده کنید:
sudo vnstat -u -i eth0
اجرای دستور فوق باید به شما نشان دهد که یک پایگاه داده ایجاد شده است. سپس، شما باید با دستور زیر مجوزهای مناسب برای پایگاه داده را صادر کنید:
sudo chown -R vnstat: /var/lib/vnstat
در نهایت، دیمون را با استفاده از دستور زیر فعال و ریستارت کنید:
sudo systemctl enable vnstat sudo systemctl restart vnstat
با دستور systemctl status میتوانید اجرای دیمون را بررسی کنید:
sudo systemctl status vnstat
مشاهده مصرف پهنای باند
به طور پیش فرض، vnStat هر 30 ثانیه آمار تازهای را در پایگاه داده ثبت میکند. پس از 30 ثانیه انتظار، vnstat را اجرا کنید تا آمار ماهانه و روزانه را به صورت جدول مشاهده کنید. اگر سیستم شما ترافیک زیادی دریافت نمیکند، قبل از مشاهده آمار میتوانید این فایلها را دانلود کنید تا کمی ترافیک ایجاد شود.
ستونهای “rx” و “tx” در تصویر فوق، به ترتیب ترافیک دریافتی و ارسالی را نشان میدهند و ستون “total” نشان دهنده مجموع این دو مقدار است. همچنین “avg. rate” نیز میانگین مصرف پهنای باند هر ثانیه را در طول روز یا ماه نشان میدهد. گاهی اوقات، ممکن است بخواهید میزان استفاده از پهنای باند به روز شده را فورا مشاهده کنید. در این صورت، میتوانید vnStat را مجبور کنید تا پایگاه داده را با استفاده از دستور زیر آپدیت کند:
sudo vnstat -u
سپس vnstat را مطابق معمول اجرا کنید. پس از انجام این کار، آمار به روز شده را مشاهده خواهید کرد. اگر میخواهید آمار بازه زمانی متفاوتی را مشاهده نمایید، میتوانید از سوئیچهای مختلفی استفاده کنید که در ادامه، آنها را معرفی میکنیم:
- –d: آمار روزانه 30 روز گذشته.
- –m: آمار ماهانه 12 ماه گذشته.
- –w: آمار 7 روز گذشته و هفته جاری و قبل.
- –h: آمار 24 ساعت گذشته.
- –t: ده روزی که ترافیک در بالاترین میزان بوده است.
از این سوئیچها به شکل زیر میتوانید استفاده کنید:
vnstat -h
همانطور که در تصویر زیر نشان داده شده، آمار ساعتی نیز دارای یک نمودار به همراه مقادیر rx و tx است. سوئیچهای دیگر، یک خروجی جدولی مانند نمونه قبل را نشان میدهند.
علاوه بر این، vnStat دارای یک حالت نظارت بر ترافیک به صورت زنده است. برای استفاده از این حالت، از سوئیچ –l استفاده کنید و نام رابط را به شکل زیر با –i مشخص کنید:
vnstat -l -i eth0
پس از اتمام کار Ctrl+C را برای خروج فشار دهید.
ورود و خروج دادهها
تا اینجا، نحوه بازیابی دادههای پهنای باند از vnStat را دیدیم. اما اگر خودتان میخواهید محاسبات را انجام دهید، جدولها چندان کاربردی و مفید نیستند. با استفاده از سوئیچهای —json و —xml میتوانید دادهها را به ترتیب به صورت JSON و XML خارج کنید. به عنوان مثال، اگر میخواهید فایلی به نام output.json با تمام دادههای پهنای باند ایجاد نمایید، از کد زیر استفاده کنید:
vnstat --json > output.json
اگر میخواهید پایگاه داده را به سیستم دیگری وارد کنید، ابتدا باید آن را با استفاده از سوئیچ —exportdb خارج کنید. دستور زیر پایگاه داده را در یک فایل متنی ساده با نام vnstat_db مینویسد:
vnstat --exportdb > vnstat_db
اکنون میتوانید این فایل را به سیستم دیگر منتقل کنید و از سوئیچ —importdb برای وارد کردن آن استفاده کنید. به عنوان مثال، اگر میخواهید فایل vnstat_db را در رابط eth0 وارد کنید، دستور زیر را تایپ کنید:
sudo vnstat --importdb vnstat_db -i eth0 --force
مشاهده دادههای vnStat در وب
اگر میخواهید از طریق وب به آمار شبکه نظارت کنید، میتوانید از ابزارهای مختلفی که توانایی کار کردن در کنار vnStat دارند، استفاده کنید. در این مقاله، ما یک وب اپلیکیشن به اسم vnstat-dashboard را بررسی میکنیم که به شما کمک میکند تا دادههای vnStat را مشاهده کنید. برای استفاده از آن باید یک وب سرور، PHP و چند ابزار دیگر نصب کنید. به عنوان مثال، ما از آپاچی استفاده خواهیم کرد. اما شما از هر وب سرور دیگری که خواستید، استفاده کنید.
در لینوکس ابونتو یا دبیان، این دستورات را برای نصب ابزارهای لازم اجرا کنید:
sudo apt install apache2 php wget unzip
اگر از سیستم CentOS یا RHEL استفاده میکنید، به جای آن، این دستورات را اجرا کنید:
sudo yum install httpd php wget unzip
برای سیستمهای Fedora نیز فقط کافی است که به جای yum از dnf استفاده کنید.
سپس، کد منبع را از Github دانلود کرده و در دایرکتوری مناسب از حالت فشرده خارج کنید:
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/
در مرحله بعد، باید یکسری تغییرات در چند پارامتر پیکربندی ایجاد کنیم. برای انجام این کار، فایل پیکربندی را در یک ویرایشگر متنی مانند vi یا nano باز کنید:
sudo nano /var/www/html/vnstat/config.php
خطوط زیر را در این فایل پیدا کنید و مقادیر پیش فرض را با مقادیر نشان داده شده با رنگ قرمز جایگزین کنید:
$vnstat_bin_dir = '/usr/bin/vnstat'; $use_predefined_interfaces = true; if ($use_predefined_interfaces == true) { $interface_list = array("eth0"); // ... }
پس از انجام این تغییرات، http://<your_server_IP>/vnstat را در مرورگر باز کنید. با انجام این کار، باید صفحهای مانند تصویر زیر برایتان باز شود.
اکنون شما به راحتی میتوانید دادههای شبکه را به صورت ساعتی، روزانه و ماهانه بررسی کرده و همچنین، آنها را در رابطهای مختلف شبکه مشاهده کنید.
جمع بندی
در این مطلب، توضیح دادیم که vnSTAT چیست، چه کاربردها و مزایایی دارد و همچنین، با نحوه نصب vnSTAT و استفاده از آن نیز آشنا شدیم. vnStat یک ابزار بسیار مفید برای نظارت و تجزیه و تحلیل اطلاعات شبکه یک سیستم است. این ابزار دارای طیف گستردهای از گزینههای مختلف برای مشاهده و ثبت دادههای ترافیک شبکه است که میتواند برای چندین منظور مختلف مورد استفاده قرار گیرد. این گزینهها، کاربران را قادر میکند تا دادههای ترافیک شبکه را مدیریت و تحلیل کنند تا شبکه خود را به طور موثر مدیریت کرده و مشکلات آن را شناسایی کنند.