20 دستور مانیتورینگ لینوکس برای بررسی CPU ،RAM ،Disk و Network

20 دستور مانیتورینگ لینوکس

مانیتورینگ لینوکس زمانی ارزشش را نشان می‌دهد که بخواهید پیش از قطعی یا افت عملکرد بفهمید روی سرور چه می‌گذرد. بالا رفتن مصرف CPU، کم شدن حافظه، پر شدن دیسک یا اختلال در شبکه معمولاً پیش از تبدیل شدن به یک مشکل جدی نشانه‌هایی دارند. با چند دستور خط فرمان می‌توان این نشانه‌ها را سریع بررسی و مسیر عیب‌یابی را کوتاه‌تر کرد. در ادامۀ این مطلب از VPSmarket ۲۰ دستور کاربردی‌ای را مرور می‌کنیم که برای بررسی روزمرۀ سرور، به‌ویژه سرور مجازی لینوکس، به کار می‌آیند و در بسیاری از مواقع بدون نیاز به ابزارهای گرافیکی اطلاعات لازم را در اختیارتان می‌گذارند.

مانیتورینگ لینوکس چیست؟

مانیتورینگ لینوکس یعنی وضعیت منابع و سرویس‌های سیستم را در طول زمان زیر نظر بگیرید تا تغییرات غیرعادی را زودتر ببینید. ابزارهای خط فرمان در چند ثانیه نشان می‌دهند CPU تا چه حد درگیر است، چه مقدار RAM در دسترس مانده، وضعیت فضای دیسک چگونه است و آیا شبکه رفتار عادی دارد یا نه.

این اطلاعات وقتی کنار هم قرار می‌گیرند، پیدا کردن علت مشکل ساده‌تر می‌شود. مثلاً افزایش مداوم مصرف حافظه ممکن است سیستم را به استفاده بیشتر از Swap بکشاند و کمبود فضای دیسک نیز می‌تواند عملکرد سرویس‌هایی مانند پایگاه داده یا Nginx را مختل کند. به همین دلیل، مانیتورینگ فقط دیدن چند عدد نیست؛ مهم این است که بدانید هر عدد چه سرنخی دربارۀ وضعیت سرور می‌دهد.

۲۰ مورد از مهم‌ترین دستورات مانیتورینگ لینوکس

۱) دستور top

top

برای شروع عیب‌یابی، top معمولاً یکی از اولین دستورهایی است که ارزش اجرا کردن دارد. در یک نمای کلی می‌توانید مصرف CPU و RAM، مقدار Load Average و پردازش‌های فعال را به‌صورت لحظه‌ای ببینید و تشخیص دهید کدام بخش از سیستم بیشتر تحت فشار است.

۲) دستور htop

htop

اگر خروجی top برایتان شلوغ و گیج‌کننده است، htop همان اطلاعات اصلی را در محیطی تعاملی‌تر و خواناتر نمایش می‌دهد. جابه‌جایی میان پردازش‌ها و مدیریت آن‌ها در htop ساده‌تر است؛ البته ممکن است این ابزار روی بعضی توزیع‌ها به‌صورت پیش‌فرض نصب نباشد.

۳) دستور uptime

uptime

uptime برای یک بررسی سریع مناسب است. این دستور علاوه بر مدت زمان روشن بودن سیستم، Load Average را هم نشان می‌دهد و کمک می‌کند در همان ابتدای بررسی ببینید بار واردشده به سرور در چه وضعیتی قرار دارد.

۴) دستور free

free -h

برای دیدن وضعیت حافظه، free یکی از ساده‌ترین گزینه‌هاست. با این دستور می‌توانید مقدار RAM آزاد و مصرف‌شده و همچنین Swap را بررسی کنید. گزینۀ -h هم خروجی را با واحدهای خواناتری مانند MB و GB نمایش می‌دهد.

۵) دستور vmstat

vmstat 1

vmstat زمانی مفید است که بخواهید فقط یک عدد را نبینید و رفتار چند بخش سیستم را کنار هم بررسی کنید. این دستور اطلاعات مربوط به پردازش‌ها، حافظه، Swap، ورودی/خروجی و CPU را نمایش می‌دهد. با اجرای vmstat 1 نیز خروجی هر یک ثانیه به‌روزرسانی می‌شود و می‌توانید تغییرات را لحظه‌به‌لحظه دنبال کنید.

برای نصب VmStat در Ubuntu معمولاً کافی است بسۀ procps را نصب کنید. البته در بسیاری از سرورها این بسته از قبل وجود دارد و دستور vmstat بدون نصب اضافی در دسترس است. اگر این دستور روی سرور شما وجود ندارد، ابتدا بسته مربوط را با دستورهای زیر نصب کنید:

sudo apt update
sudo apt install procps

پس از نصب، یک بار vmstat را اجرا کنید تا مطمئن شوید ابزار به‌درستی در دسترس است.

vmstat

۶) دستور iostat

iostat

بعد از CPU و حافظه، دیسک هم می‌تواند عامل کندی سرور باشد. iostat برای همین مرحله از بررسی کاربرد دارد و با نمایش اطلاعات CPU و I/O دیسک کمک می‌کند بفهمید Storage به گلوگاه سیستم تبدیل شده است یا نه. اگر iostat روی VPS شما نصب نیست، می‌توانید آن را همراه بستۀ sysstat نصب کنید:

sudo apt update
sudo apt install sysstat

بسته sysstat ابزارهای دیگری مانند sar را هم نصب می‌کند که در ادامه به آن می‌رسیم.

۷) دستور df

df -h

برای بررسی فضای دیسک، بهتر است از df شروع کنید. این دستور میزان فضای استفاده‌شده و آزاد هر فایل‌سیستم را نشان می‌دهد و با گزینۀ -h حجم‌ها را به‌شکل خواناتری نمایش می‌دهد. اگر پارتیشن اصلی، مثل /، به مرز پر شدن نزدیک شده باشد، موضوع را جدی بگیرید؛ چون کمبود فضا می‌تواند روی سرویس‌های مختلف اثر بگذارد و حتی باعث اختلال در عملکرد آن‌ها شود.

۸) دستور du

du -sh /var/*

df می‌گوید کدام فایل‌سیستم در حال پر شدن است، اما برای پیدا کردن عامل مصرف فضا باید سراغ du بروید. با این دستور می‌توان پوشه‌ها و فایل‌های حجیم را پیدا کرد و مشخص کرد فضای دیسک دقیقاً کجا مصرف شده است.

۹) دستور lsblk

lsblk

وقتی لازم است ساختار دیسک‌ها و پارتیشن‌ها را یک‌جا ببینید، lsblk تصویر واضح‌تری از Storage می‌دهد. خروجی آن Diskها، Partitionها و Mount Pointها را نمایش می‌دهد و برای شناخت چیدمان فضای ذخیره‌سازی مفید است.

5 بخش اصلی در مانیتورینگ لینوکس

۱۰) دستور ps

ps aux

برای دیدن پردازش‌های در حال اجرا می‌توانید از ps استفاده کنید. اگر دنبال سرویس یا پردازش مشخصی هستید، ترکیب خروجی آن با grep جست‌وجو را سریع‌تر می‌کند؛ برای مثال:

ps aux | grep nginx

۱۱) دستور pidstat

pidstat 1

اگر می‌دانید مشکل به یک یا چند پردازش مربوط است و به جزئیات بیشتری نیاز دارید، pidstat انتخاب دقیق‌تری است. این دستور مصرف CPU و بعضی منابع دیگر را برای هر پردازش جداگانه نشان می‌دهد و پیدا کردن پردازش‌های پرمصرف را آسان‌تر می‌کند.

۱۲) دستور sar

sar

تمام مشکلات را نمی‌توان با یک خروجی لحظه‌ای پیدا کرد. sar زمانی به کار می‌آید که بخواهید عملکرد سیستم را در بازه‌های زمانی مختلف بررسی یا ثبت کنید. این ابزار بخشی از مجموعه sysstat است و برای دیدن روند تغییرات سرور کاربرد دارد.

۱۳) دستور ss

ss -tulpn

از اینجا وارد بررسی شبکه می‌شویم. ss اتصال‌ها و Socketهای شبکه را نمایش می‌دهد و با آن می‌توانید ببینید کدام سرویس‌ها روی چه Portهایی در حال Listen هستند؛ اطلاعاتی که برای عیب‌یابی سرویس‌های شبکه بسیار کاربردی است.

۱۴) دستور ip

ip -s link

برای بررسی خود Interfaceهای شبکه، دستور ip -s link اطلاعات مفیدی می‌دهد. علاوه بر وضعیت رابط‌ها، آمار ارسال و دریافت Packetها را هم می‌بینید و می‌توانید وضعیت هر Interface را سریع‌تر بررسی کنید.

۱۵) دستور ping

ping 8.8.8.8

اگر مسئله دسترسی به یک مقصد است، ping ساده‌ترین نقطه شروع است. این دستور نشان می‌دهد مقصد پاسخ می‌دهد یا نه و یک برآورد اولیه از Latency می‌دهد. البته پاسخ موفق ping به‌تنهایی ثابت نمی‌کند که کل مسیر شبکه یا خود سرویس بدون مشکل است.

۱۶) دستور traceroute

traceroute example.com

وقتی ping نشان می‌دهد ارتباط برقرار است، اما همچنان با تأخیر یا اختلال روبه‌رو هستید، traceroute دید بهتری از مسیر می‌دهد. با این دستور می‌توانید مسیر تقریبی Packetها تا مقصد را ببینید و در بعضی شرایط محل شروع تأخیر را بهتر پیدا کنید.

اگر traceroute روی Ubuntu نصب نیست، می‌توانید آن را با دستور زیر نصب کنید:

sudo apt install traceroute

۱۷) دستور curl

curl -I https://example.com

برای بررسی خود سرویس HTTP یا HTTPS، دستور curl از ping کاربردی‌تر است. با این ابزار می‌توانید کد وضعیت، Headerها و پاسخ یک وب سرور را مستقیماً از خط فرمان بررسی کنید و ببینید سرویس واقعاً به درخواست پاسخ می‌دهد یا نه.

۱۸) دستور dig

dig example.com

اگر اتصال شبکه برقرار است اما دامنه Resolve نمی‌شود، نوبت به بررسی DNS می‌رسد. dig جزئیات پاسخ DNS را نمایش می‌دهد و کمک می‌کند بفهمید نام دامنه چگونه پاسخ می‌گیرد و مشکل احتمالی در این بخش را دقیق‌تر بررسی کنید. dig ممکن است روی بعضی VPSهای مینیمال نصب نباشد. اگر سیستم اعلام کرد این دستور پیدا نشد، بستۀ dnsutils را با دستورهای زیر نصب کنید:

sudo apt update
sudo apt install dnsutils

بعد از نصب، دوباره dig را برای دامنه موردنظر اجرا کنید و پاسخ DNS را بررسی کنید.

۱۹) دستور netstat

netstat -tulpn

netstat هم برای مشاهدۀ اتصال‌های شبکه، Portهای در حال Listen و اطلاعات مرتبط با شبکه استفاده می‌شود. با این حال، در بسیاری از سیستم‌های جدید ss جایگزین به‌روزتر آن است و معمولاً برای همین کار ترجیح داده می‌شود.

مسیر سریع مانیتورینگ لینوکس

۲۰) دستور dmesg

dmesg | tail -50

اگر بررسی منابع و شبکه به نتیجه نرسید و احتمال می‌دهید مسئله در سطح کرنل، Driver یا سخت‌افزار باشد، dmesg سرنخ‌های مهمی می‌دهد. این دستور پیام‌های Kernel را نمایش می‌دهد و برای بررسی خطاهای Disk و بعضی مشکلات سیستمی هم مفید است.

بهترین ابزارهای مانیتورینگ لینوکس کدام‌اند؟

این ۲۰ دستور برای عیب‌یابی موردی و بررسی سریع سرور بسیار کاربردی‌اند، اما مانیتورینگ دائمی نیاز دیگری است. وقتی چند سرور دارید، می‌خواهید تاریخچۀ داده‌ها را نگه دارید یا لازم است در زمان بروز مشکل هشدار بگیرید، استفاده از ابزارهای تخصصی منطقی‌تر می‌شود. در چنین شرایطی، ابزارهای زیر از گزینه‌های رایج مانیتورینگ لینوکس هستند:

  • Prometheus: برای جمع‌آوری و ذخیره Metricها و مانیتورینگ زیرساخت.
  • Grafana: برای ساخت Dashboard و نمایش گرافیکی داده‌ها.
  • Zabbix: برای مانیتورینگ متمرکز سرورها، شبکه و سرویس‌ها.
  • Netdata: برای مشاهدۀ لحظه‌ای و گرافیکی عملکرد سیستم.

انتخاب بین این ابزارها به مقیاس زیرساخت و نوع نیازی که دارید برمی‌گردد؛ مثلاً اینکه چند سرور را مانیتور می‌کنید، چه Metricهایی برایتان مهم است و تا چه اندازه به هشدار و تاریخچه داده‌ها نیاز دارید.

آموزش مانیتورینگ لینوکس را از کجا شروع کنیم؟

برای یادگیری مانیتورینگ لینوکس بهتر است از همان چیزهایی شروع کنید که هنگام عیب‌یابی واقعی با آن‌ها سروکار دارید. اگر اول یاد بگیرید CPU، حافظه، دیسک، شبکه و پردازش‌ها را با ابزارهای پایه بررسی کنید، بعداً درک Dashboardها و Metricهای ابزارهای حرفه‌ای هم ساده‌تر می‌شود. یک مسیر ساده برای شروع می‌تواند این ترتیب را داشته باشد:

  1. پردازنده: ابتدا با top و htop و uptime میزان درگیری CPU و Load را بررسی کنید.
  2. حافظه: بعد سراغ free و vmstat بروید تا وضعیت RAM و Swap را ببینید.
  3. دیسک: با df و du فضای ذخیره‌سازی را بررسی کنید و برای وضعیت I/O از iostat کمک بگیرید.
  4. شبکه: ss و ip و ping و traceroute ابزارهای اصلی برای بررسی اتصال‌ها و مسیر شبکه هستند.
  5. پردازش‌ها: با ps و pidstat پردازش‌های فعال و منابع مصرف‌شده توسط آن‌ها را بررسی کنید.
  6. مانیتورینگ حرفه‌ای: وقتی ابزارهای پایه را شناختید، می‌توانید سراغ پلتفرم‌هایی مانند Zabbix و Prometheus یا Netdata بروید.

مانیتورینگ لینوکس روی سرور مجازی

در سرور مجازی، توجه به مصرف منابع اهمیت بیشتری پیدا می‌کند؛ چون CPU و RAM و فضای دیسک براساس پلنی که انتخاب کرده‌اید محدود هستند. اگر Load برای مدت طولانی بالا بماند یا حافظه مرتب پر شود، باید مشخص کنید مشکل با بهینه‌سازی سرویس‌ها برطرف می‌شود یا واقعاً به منابع بیشتری نیاز دارید.

در زیرساخت‌های بزرگ‌تر، بررسی تک‌تک سرورها به‌صورت جداگانه هم عملی نیست. در این شرایط می‌توان چند VPS را به یک سیستم مانیتورینگ مرکزی متصل کرد؛ برای مثال، سرورهای Nginx، پایگاه داده و سرویس‌های Backend داده‌های خود را در یک نقطه ثبت کنند تا وضعیت کل زیرساخت راحت‌تر دیده شود.

مانیتورینگ منابع را هم جدا از امنیت نبینید. دسترسی مدیریتی از طریق SSH را ایمن نگه دارید و در کنار CPU و RAM و دیسک، ورودها، Portهای باز و وضعیت سرویس‌های مهم را هم زیر نظر داشته باشید.

جمع‌بندی

برای مانیتورینگ لینوکس لازم نیست از همان ابتدا سراغ ابزارهای پیچیده بروید. در بسیاری از مشکلات روزمره، چند دستور خط فرمان کافی است تا بفهمید فشار از CPU می‌آید، حافظۀ کم شده، دیسک در حال پر شدن است یا مسئله به شبکه و یک سرویس مشخص برمی‌گردد. ارزش این دستورها زمانی بیشتر می‌شود که بدانید هرکدام پاسخ کدام سؤال را می‌دهند.

اگر VPS کند شده، top یا htop نقطۀ خوبی برای شروع است. بعد از آن free و df وضعیت حافظه و فضای دیسک را روشن‌تر می‌کنند و اگر نشانه‌ها به شبکه مربوط باشد، ip و ss و ping مسیر بررسی را ادامه می‌دهند. برای سرویس‌های حساس هم بهتر است این بررسی‌های دستی را در کنار یک سیستم مانیتورینگ دائمی و هشدار قرار دهید تا مشکل قبل از اثر جدی روی کاربران دیده شود.

 

سؤالات متداول

بهترین دستور برای بررسی CPU لینوکس چیست؟

برای بررسی سریع CPU و top و htop گزینه‌های ساده و مناسبی هستند. اگر لازم است مصرف منابع یک پردازش مشخص را با جزئیات بیشتری دنبال کنید، pidstat اطلاعات دقیق‌تری در اختیارتان می‌گذارد.

برای بررسی RAM در لینوکس از چه دستوری استفاده کنیم؟

برای دیدن وضعیت کلی حافظه، «free -h» سریع و خواناست و مقدار RAM آزاد، مصرف‌شده و Swap را نشان می‌دهد. اگر می‌خواهید تغییرات حافظه و Swap را در طول زمان دنبال کنید، vmstat گزینۀ مناسب‌تری است.

چگونه فضای دیسک لینوکس را بررسی کنیم؟

اول «df -h» را اجرا کنید تا ببینید هر فایل‌سیستم چه مقدار فضای آزاد و استفاده‌شده دارد. اگر یکی از فایل‌سیستم‌ها رو به پر شدن بود، با «du -sh» می‌توانید پوشه‌ها و فایل‌های حجیم را پیدا کنید.

آیا برای مانیتورینگ لینوکس حتماً به ابزار گرافیکی نیاز داریم؟

خیر. بسیاری از مشکلات را می‌توان با دستورهایی مانند top ،free ،df ،ss و vmstat بررسی کرد. ابزارهای گرافیکی بیشتر زمانی ارزش پیدا می‌کنند که به Dashboard، تاریخچه داده‌ها، هشدار یا مانیتورینگ هم‌زمان چند سرور نیاز داشته باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

9 + ده =