چگونه ترافیک روی سرور لینوکسی را مانیتور کنیم؟
اگر سرعت سرور شما پایین آمده یا مصرف غیرعادی اینترنت را میبینید، وقت آن است که بدانید چگونه ترافیک روی سرور لینوکس را مانیتور کنیم؟ این کار جزء مهمترین وظایف مدیران سرورها محسوب میشود، مخصوصاً در شرایطی که منابع سرور پر شوند یا عملکرد شبکه با اختلال مواجه شود. مانیتورکردن ترافیک شبکه آنهم بهصورت دقیق این اجازه را به مدیران میدهد تا به طور لحظهای متوجه شوند کدام برنامه یا فرایندها بیشترین مصرف را از لحاظ اینترنتی یا حجم دارند.
به همین منظور و برای برطرفکردن سؤال شما عزیزان تصمیم گرفتیم تا در این مطلب ابزارهای کلیدی و پرکاربردی که در اکثر توزیعهای لینوکس قابلاستفاده هستند و میتوانند در شناسایی و حل این مشکل به شما کمک کنند، معرفی کنیم. پس اگر میخواهید کنترل کاملی بر روی ترافیک شبکه سرور خود داشته باشید، ادامه توضیحات را از دست ندهید.
آنچه در این مطلب خواهید خواند
مانیتورینگ کامل سرور لینوکسی با NetHogs
یکی از بهترین ابزارهای خط فرمان متنباز (Open Source)برای مانیتورینگ لحظهای مصرف پهنای باند شبکه بهازای هر فرآیند در سیستمعاملهای لینوکس، NetHogs است. این برنامه برای اکثر توزیعهای معروف لینوکس در دسترس بوده و برای نصب آن کافیست برحسب نوع سیستمعامل خود یکی از روشهای زیر را انتخاب کنید:
نصب در RHEL، CentOS، AlmaLinux و Rocky Linux
ابتدا باید مخزن EPEL را فعال و پس از آن با اجرای دستورات زیرNetHogs را نصب کنید:
- sudo yum install epel-release
- sudo yum install nethogs
درصورتیکه به پیغام خطا نظیر No package nethogs available برخوردید، اول مطمئن شوید که مخزن EPEL بهدرستی نصب و فعال شده است.
نصب در Fedora
اجرای دستور:
- sudo dnf install nethogs
نصب در Ubuntu، Debian و Linux Mint
اجرای دستور:
- sudo apt install nethogs
پس از آن که نصب با موفقیت تمام شد، اکنون میتوانید به راحتی ابزار را اجرا و از آن استفاده کنید.
- در توزیعهای مبتنی بر Red Hat ، از آنجایی که معمولاً از قبل با دسترسی ROOT وارد شدید، میتوانید خیلی ساده دستور nethogs را در ترمینال وارد کنید. اما در توزیعهای مبتنی بر Debian، باید دستور را با sudo nethogs اجرا کنید تا دسترسی مدیریتی داشته باشید .
هنگام اجرای برنامه، ستونهای Sent و Received، نشان دهنده مقدار ترافیک مصرفی هر فرآیند هستند. همچنین در پایین صفحه، جمع کل پهنای باند مصرفشده هم قابل مشاهده است.
- برای سفارشیسازی عملکرد NetHogs میتوانید از گزینههای خط فرمان جدول زیر استفاده کنید:
مثال | توضیح | گزینه |
sudo nethogs -d 5 (بروزرسانی هر ۵ ثانیه) | تنظیم نرخ بهروزرسانی اطلاعات. مشخص میکند هر چند ثانیه یکبار اطلاعات بروزرسانی شود. | -d |
nethogs -h | نمایش راهنمای استفاده از برنامه و گزینهها. | -h |
sudo nethogs -p | فعال کردن حالت promiscuous. در این حالت تمام ترافیک شبکه شنود میشود، حتی ترافیکی که به سیستم مربوط نیست (پیشنهاد نمیشود). | -p |
sudo nethogs -t | فعالسازی حالت trace (متنمحور و ساده). مناسب برای لاگگیری یا استفاده در اسکریپتها. | -t |
nethogs -V | نمایش نسخه نصبشده NetHogs. | -V |
sudo nethogs eth0 | مانیتور کردن ترافیک فقط در رابط شبکه eth0. | eth0 |
sudo nethogs eth0 eth1 | مانیتور کردن همزمان چند رابط شبکه مانند eth0 و eth1. | eth0 eth1 |
برای مانیتور ترافیک روی سرور لینوکسی میتوانید از کلیدهای میانبر زیر در حین اجرای NetHogs کمک بگیرید تا کار شما راحتتر شود:
- :mتغییر واحد نمایش پهنای باند (از B به KB، سپس MB و در آخر KB/sec)
- : r مرتبسازی اطلاعات با توجه به میزان ترافیک دریافتی
- :s مرتبسازی اطلاعات بر اساس میزان ترافیک ارسالی
- :q خروج از برنامه و بازگشت به محیط ترمینال
مانیتورینگ ترافیک شبکه با iftop در لینوکس
از دیگر ابزارهای مفید و قدرتمند به هدف مانیتور ترافیک ارسالی و دریافتی بین گرههای شبکه در سیستم عامل لینوکس میتوان به iftop اشاره داشت. این ابزار متن باز در محیط خط فرمان اجرا شده و عملکردی مشابه با top دارد، با این تفاوت که بهجای نمایش مصرف CPU و RAMبه طور زنده میزان پهنای باند شبکه بین دو هاست را نشان میدهد. برای نصب iftop مانند نصب NetHogs باید براساس نوع سیستم عامل خود عمل کنید.
نصب در CentOS، AlmaLinux و Rocky Linux:
در قدم اول بستههای زیر را نصب کنید:
- sudo yum -y install libpcap libpcap-devel ncurses ncurses-devel make gcc
سپس منبع برنامه را دانلود کرده و نصب کنید:
- wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.9.tar.gz
- tar xzvf iftop-0.9.tar.gz
- cd iftop-0.9
- make
- sudo make install
اما برای مانیتورینگ شبکه، بعد از آن که کار نصب را به اتمام رساندید، کافی است دستور “sudo iftop -i eth0 -B” را وارد کنید.
اکنون در سمت راست صفحه، سه ستون وجود دارد که میانگین حجم پهنای باند مصرفی را در بازههای ۲، ۱۰ و ۴۰ ثانیه نشان میدهد. همچنین میتوانید بررسی دقیق ترافیک ورودی و خروجی، آدرس مقصد و مبدا را داشته باشید.
اگر میخواهید اطلاعات را با ابزار iftop فیلتر کنید، میتوانید از دستورات پرکاربرد زیر کمک بگیرید:
- فیلتر بر اساس نام یا IP میزبان مقصد یا مبدا:
dst host [hostname] یا src host [hostname]
- بر اساس شماره پورت مقصد یا مبدا
dst port [portNo] یا src port [portNo]
- بر اساس شبکه مقصد یا مبدا
dst net [network] یا src net [network]
برترین دستورات مانیتورینگ ترافیک در لینوکس
در ادامه ابزارهایی که معرفی کردیم، دستورات دیگری هم وجود دارند که بهطور تخصصی برای بررسی ترافیک شبکه و مانیتورینگ مصرف پهنای باند سرور طراحی شدهاند. این جدول یک مرجع کامل هم برای مدیران و هم برای متخصصان و کاربران حرفهای لینوکس بشمار میرود.
کاربرد اصلی | دستور |
شنود بستههای شبکه و تحلیل پکتها | tcpdump |
نمایش دقیق ترافیک IP و اطلاعات TCP/UDP/ICMP بهصورت real-time | iptraf |
نمایش آمار مصرف ترافیک روزانه، ماهانه و سالانه | vnstat |
نسخه گرافیکی و وببنیاد ابزار vnstat | vnstat PHP |
مشاهده ارتباطات شبکه، پورتها و جدول مسیریابی | netstat |
مانیتورینگ ساده و سریع پهنای باند (نسل جدید) | bwm-ng |
مشاهده گرافیکی ترافیک ورودی و خروجی به تفکیک | nload |
نمایش پهنای باند با گراف ascii (سبک و ترمینالمحور) | slurm |
نمایش sessionهای TCP فعال و پهنای باند هر اتصال | tcptrack |
نمایش لحظهای اتصالهای فعال و نوع پروتکل (TCP/UDP) | pkstat |
مانیتورینگ تغییرات آدرسهای IP و MAC در شبکه | arpwatch |
شامل مانیتورینگ ترافیک شبکه در کنار سایر منابع | collectl |
جمعبندی
مانیتورکردن ترافیک شبکه جزء مهمترین وظایف مدیر سرور لینوکس محسوب میشود. در این مسیر ابزارهای مختلفی برای بررسی لحظهای مصرف پهنای باند بهازای هر فرایند یا ارتباط شبکهای روی کار آمدند. این ابزارها به شما کمک میکنند تا در لحظه متوجه شوید که کدام برنامه یا IP بیشترین بار را بر روی شبکه اعمال میکنند. در کنار این ابزارها دستوراتی هم هستند که نقش مکمل در تحلیل دقیقتر شبکه دارند. انتخاب ابزار مناسب باتوجهبه نیاز و میزان دقت موردانتظار انجام میشود.