نیاز به نظارت بر عملکرد سیستم لینوکس دارید؟ دستورات و برنامه های زیر را آزمایش کنید. اکثر توزیع های لینوکس به تعداد زیادی از ابزار مانیتورینگ سیستم مجهز هستند. تعدادی از این ابزار رو نیز باید خود اقدام به نصب آنها کنید. شما از این ابزار می توانید برای پیدا کردن علل احتمالی یک مشکل در عملکرد سیستم استفاده کنید.
۱- top — میزان فعالیت یک پروسه
برنامه top ابزاری است برای نشان دادن وضعیت پروسه های فعال به صورت آنی و پویا. به صورت پیشفرض لیست برنامه هایی که بیشترین میزان مصرف cpu را دارند نشان داده میشود. این لیست هر ۵ ثانیه به روز میشود.
برای اجرا شدن برنامه در ترمینال دستور top را در ترمینال وارد کنید. در هنگام فعال بودن برنامه شما می توانید از کلیدهای زیر استفاده کنید.
کلیدهای مهم در هنگام استفاده از برنامه top
t وظیفه خاموش و روشن کردن قسمت مربوط به نمایش اطلاعات خلاصه را دارد. این اطلاعات به صورت زیر نمایش داده میشود.
Tasks: 180 total, 2 running, 178 sleeping, 0 stopped, 0 zombie
m وظیفه خاموش و روشن کردن قسمت مربوط به اطلاعات حافظه است. این اطلاعات به صورت زیر نشان داده میشود.
Mem: 3993180k total, 3963852k used, 29328k free, 317676k buffers
Swap: 811208k total, 3532k used, 807676k free, 2387556k cached
a مرتب کردن اطلاعات براساس بیشترین میزان مصرف منابع سیستم. برای شناسایی سریع برنامه هایی که بیشترین مصرف رو دارند این گزینه عالی هست.
f وارد محیطی می شوید که قادر هستید برنامه top رو تنظیم و پیکربندی کنید. اینکه چه ستون هایی در برنامه top به شما نشان داده بشه، از این قسمت قابل کنترل هست (ستون های نمایش داده شده در برنامه کنارشون یک علامت ستاره قرار دارد). همینطور مخفف تمام ستونها در اینجا نمایش داده میشود. برای خارج شدن از Esc استفاده کنید.
k برای کشتن یک برنامه از این حرف استفاده کنید. بعد از وارد کردن این حرف باید آی دی پروسه ای که قصد نابود کردنش را دارید وارد کنید.
z برای روشن و خاموش کردن رنگ
q برای خارج شدن از برنامه از این حرف استفاده کنید.
۲- vmstat — بررسی فعالیت سیستم، سخت افزار و اطلاعات سیستم
فرمان vmstat اطلاعات در مورد پروسهها، حافظه، صفحه بندی، بلوک IO و فعالیت cpu را گزارش میدهد.
vmstat 3
خروجی نمونه:
نمایش استفاده از حافظه Slabinfo
vmstat -m
دریافت اطلاعات در مورد فعال یا غیرفعال بودن حافظه صفحات
vmstat -a
اطلاعات مربوط به هارد دیسک
vmstat -d
۳- w– پیدا کردن اینکه چه کسی به سیستم متصل است و چه کاری انجام داده است؟
از این دستور برای گرفتن اطلاعات مربوط به کاربرانی که به سیستم متصل هستند استفاده می شود. اطلاعاتی همچون زمان لاگین شدن کاربران و اینکه چه مدت غیرفعال بوده اند و یا از کدام آی پی وارد ماشین شده اند و میزان استفاده آنها از پردازشگر چقدر بوده، را می توان به کمک این دستور بدست آورد.
w username
w enghezi
خروجی نمونه:
۴- uptime– چه مدت سیستم در حال کار است؟
از این دستور می توان مدت زمانی را که سرور در حال کار است را بدست آورد. این دستور اطلاعات مربوط به زمان جاری، مدت زمان کار ماشین، تعداد کاربران متصل به سیستم و متوسط بار سیستم در یک، پنج و ۱۵ دقیقه گذشته را میتوان بدست آورد.
uptime
خروجی:
عدد یک برای متوسط بار به عنوان مقدار بار مطلوب در نظر گرفته شود. این عدد برای سیستم با سیستم فرق میکند. برای سیستم تک هستهای این عدد از یک تا سه و برای پردازشگر با قابلیت SMP این عدد ۶ تا ۱۰است.
۵- ps — نمایش پروسهها
دستور ps پروسه های جاری را به صورت ثابت و یک عکس به ما نشان می دهد. بر خلاف دستور top که این عمل را به صورت پویا نشان میداد. برای نشان دادن همه پروسهها ما از آرگومان A و یا e استفاده میکنیم.
ps -A
نمونه خروجی:
ps مشابه دستور top است با این تفاوت که می تواند اطلاعات بیشتری را به ما نشان دهد.
نمایش خروجی به فرمت بلند
ps -Al
نمونه خروجی:
برای روشن کردن حالت فول و کامل (در این حالت آدرس دقیق پروسهای که در حال اجراست نمایش داده میشود)
ps -AlF
نمونه خروجی:
برای نمایش Treads ( منظور همان LWP و NLWP)
ps -AlFH
نمونه خروجی:
نمایش Treads بعد از انجام پردازشها
ps -AlLm
نمونه خروجی:
نسخه قابل چاپ همه پروسهها بر روی سرور
ps ax
نمونه خروجی:
ps axu
نمونه خروجی:
نسخه قابل چاپ پروسه به صورت سلسله مراتبی(درختی)
ps -ejH
نمونه خروجی:
ps axjf
نمونه خروجی:
pstree
نمونه خروجی:
نسخه قابل چاپ امنیتی
ps -eo euser,ruser,suser,fuser,f,comm,label
نمونه خروجی:
ps axZ
نمونه خروجی:
ps -eM
مشاهده تمام پروسههایی که متعلق به کاربر enghezi میباشد
ps -U enghezi -u enghezi u
تنظیم خروجی در یک قالب تعریف شده توسط کاربر
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
نمایش شماره پروسه برنامه (در اینجا میخواهیم شماره پروسه برنامه فایرفاکس را پیدا کنیم)
ps -C firefox -o pid=
یا
pgrep firefox
یا
pgrep -u enghezi firefox
نمایش نام پروسهای که آیدی اون ۴۴۳۹ باشد. (خروجی اسم برنامه رو میده)
ps -p 4439 -o comm=
نمایش ۱۰ پروسهای که بیشترین میزان مصرف حافظه رو دارند
ps -auxf | sort -nr -k 4 | head -10
نمایش ۱۰ پروسهای که بیشترین میزان مصرف پردازشگر رو دارند
ps -auxf | sort -nr -k 3 | head -10
۶- free — میزان استفاده از حافظه
این دستور میزان کل، آزاد و اشغال شده حافظه اصلی و مجازی (سوپ) رو به ما نشون میده. همچنین میتوانیم میزان بافری رو که توسط کرنل اشغال شده رو ببینیم.
نمونه خروجی:
۷- iostat — متوسط بار پردازشگر و فعالیت دیسک
دستور iostat آمار مربوط به پردازشگر و آمار مربوط به خواندن و نوشتن ابزاری همچون پارتیشن و NFS را به ما نشان میهد.
نمونه خروجی:
۸- sar– جمع آوری و گزارش فعالیت سیستم
فرمان sar برای جمع آوری، گزارش و ذخیره اطلاعات مربوط به سیستم مورد استفاده قرار میگیرد. (دو دستور زیر رو سیستم من اجرا نشد!)
sar -n DEV | more
sar -n DEV -f /var/log/sa/sa24 | more
شما همچنین میتوانید اطلاعات بلادرنگ و مربوط به زمان حال سیستم رو با استفاده از این دستور پیدا کنید.
sar 4 5
خروجی نمونه:
۹- mpstat– پردازشگرهای چند هستهای
این دستور وضعیت هر پردازشگر رو (هر یک از هسته های پردازشگر رو جدا جدا) به ما گزارش میده. و کاربرد اون در پردازشگرهای چند هستهای هست.
mpstat -P ALL
دستور اول وضعیت هر ۴ هسته رو برای یک بار به ما گزارش می ده. اما دستور دوم برای هر هسته ۵ بار وضعیت رو چک می کنه و برای هر هسته ۵ گزارش به ما برنامه میده. فاصله گزارش گیری ها ۲ ثانیه هست. این دستور تقریبا مشابه دستور sar می باشد.
mpstat -P ALL 2 5
۱۰- pmap — پردازش حافظه استفاده شده در سیستم
این دستور یکی از جالبترین دستورایی هست که من تا حالا دیدم و فکر نمی کنم نمونش رو در ویندوز بشه به راحتی پیدا کرد. این دستور به شما نقشه ای از برنامه که در حافظه قرارگرفته رو میده. برای اینکار کافیست آیدی پروسه برنامه مورد نظرتون رو به برنامه بدید و خروجی رو ببینید.
به عنوان مثال آیدی پروسهای به شماره 47394 را در نظر بگیرید.
pmap -d PID
خروجی نمونه:
خط آخر خروجی این دستور بسیار مهمه.
mapped: مقدار کل حافظه که به برنامه اختصاص داده شده
writeable/private: مقدار فضای آدرسهای خصوصی
shared: مقدار فضای آدرس این پروسه که با دیگر برنامه ها مشترک است
۱۱ و ۱۲ – netstat و ss — آمار شبکه
فرمان netstat، اتصالات شبکه، مسیریابی جداول، رو در اختیار میگذاره. دستور ss هم برای پیدا کردن سوکت و پورت های ارتباطی بین میزبان و میهمان مورد استفاده قرار میگیرد. این دستور، میتواند عملکردی مشابه دستور netstat نیز داشته باشد.
اطلاعات بیشتر برای دستور ss و netstat
۱۳- iptraf– آمار مربوط به شبکه
از این دستور برای مانیتورینگ IP شبکه استفاده میشود. برنامه به صورت تعاملی و رنگی هست. و واقعا یکی از برنامه هایی هست که استفاده از اون رو به همه پیشنهاد میکنم . کلا با کمک این برنامه به راحتی می توان متوجه شد که آیا سیستم شما به صورت مخفیانه با جای دیگر در ارتباط هست یا خیر؟ ویا اگر دوست داشته باشید، با این روش میتوان به سرورهای اصلی و پشت صحنه یک سایت دسترسی پیدا کرد. برای مثال هم اکنون که فیسبوک در ایران بسته شده، جالب است بدانید که مکان محل نگهداری فیلمها در فیسبوکجای دیگری غیر از خود فیسبوک میباشد. با این روش یک برنامه نویس میتواند برنامهای بسازد که با گرفتن لینک حاوی فیلم، اقدام به دریافت فیلم کند! برای بدست آوردن سرعت واقعی اینترنت خود نیز میتوانید ازاین برنامه استفاده کنید. از این برنامه به راحتی میتوانید اطلاعات زیر را استخراج کنید:
- آمار ترافیک شبکه توسط اتصال TCP
- آمارترافیک IP توسط رابط شبکه
- آمار ترافیک شبکه توسط پروتکل
- آمار ترافیک شبکه توسط TCP / پورت UDP و اندازه بسته
- آمار ترافیک شبکه از طریق آدرس Layer2
۱۴- tcpdump — جزئیات تحلیل ترافیک شبکه
یک دستور ساده که میتوان پی به میزان ترافیک روی شبکه برد. با این وجود شما برای استفاده از این برنامه نیاز به داشتن آگاهی در مورد چگونگی کارکرد TCP/IP دارید. برای مثال برای نشان دادن اطلاعات مربوط به ترافیک DNS از دستور زیر استفاده میکنیم.
tcpdump -i eth1 ‘udp port 53’
برای نمایش دادن همه بستههایی که از پورت ۸۰ (HTTP) و IP نسخه چهار هستند کار زیر را میکنیم. باید کاری کنیم که فقط بستههایی که حاوی فقط اطلاعات و بسته ACKاست نشان داده شود نه برای مثال بستههای SYN و FIN.
tcpdump ‘tcp port 80 and (((ip[2:2] – ((ip[0]&0xf)<<2)) – ((tcp[12]&0xf0)>>2)) != 0)’
برای نشان دادن همه نشستهای FTP به 202.54.1.5 از دستور زیر استفاده کنید.
tcpdump -i eth1 ‘dst 202.54.1.5 and (port 21 or 20’
برای نمایش همه نشستهای HTTP به 192.168.1.5 از دستور زیر سود میجوییم.
tcpdump -ni eth0 ‘dst 192.168.1.5 and tcp and port http’
این دستورم که خودم نفهمیدم چی کار میکنه براتون میزارم. بلکه یه روز ازش رمزگشایی شد
tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
۱۵- strace — صدا زدن سیستم
برای اشکال زدایی وب سرور و پیدا کردن عیوب بسیار کار گشاست! اما چون خودم هیچی از این دستور نفهمیدم، شما رو مستقیم به چگونگی کارکرد این دستور ارجاع میدم :)
۱۶- فایل سیستم proc — آماری از کرنل
فایلهای درون فولدر proc (در آدرس روت) حاوی اطلاعات دقیق در مورد دستگاههای سخت افزاری مختلف و سایر اطلاعات هسته لینوکس است. به عنوان مثال موارد زیر رو در نظر بگیرید.
cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/zoneinfo
cat /proc/mounts
۱۷- Nagios– مایتورینگ سرور و شبکه
Nagios یکی از محبوب ترین برنامههای مانیتورینگ شبکه و سیستم کامپیوتری میباشد. شما به آسانی میتوانید بر تمام میزبانها، تجهیزات شبکه و سرویسها نظارت کنید. برنامه هنگامی که به مشکلی برخورد به شما پیغام هشدار می فرستد و همچنین زمانی که اوضاع رو به راه شد، باز هم یک هشدار میدهد. حالا یه برنامه به اسم فن ساخته شده که تمام کارا رو برای راه اندازی این Nagios اتومات میکنه (Fully Automated Nagios). این برنامه سعی کرده همه برنامههایی که توسط جامعه nAgios ساخته شده رو فراهم کنه. تمام این ابزار همه در یک فایل ایزو به حجم یک سیدی قابل دریافت هست.
۱۸- Cacti– ابزار مانیتورینگ مبتنی بر وب
برای چگونگی نصب و تنظیم و استفاده از این ابزار کافیست به اینجا نگاهی بیندازید.
۱۹- کیدیای سیستم گارد– گزارش دهی و نموادار فعلی سیستم
KSysguard ابزاری قوی برای مانیتورینگ در محیط کیدیای میباشد.
۲۰- گنوم سیستم مانیتور– گزارش دهی به همراه ترسیم نمودار از وضعیت موجود سیستم
و ابزارهای اضافی دیگر
Nmap: اسکن در سرور شما برای پیدا کردن پورتهای باز
Lsof: لیست پروندههای باز، و اتصالات شبکه
Ntop: ابزاری مبتنی بر وب مشابه دستور top . وضعیت شبکه رو با این دستور به خوبی میتوان مشاهده کرد.
Conky: ابزار قدرتمند دیگری برای مانیتورینگ سیستم در محیط X
GkreIIM: ابزاری خوب برای مانیتورینگ پردازشگر، رم، هارد، شبکه و چیزای زیاد دیگه
Vnstat: یک کنسول مبتنی بر وب برای مانیتورینگ شبکه هست.
Htop: ورژن بهبود یافته دستور top هست که پروسسها رو به صورت درختی میتونه نشون بده.
Mtr: برنامهای که کار چند تا برنامه مثل پینگ و تریس روتر رو همگی با هم یه جا میتونه انجام بده.
پینوشت: این مطلب رو چند هفته پیش قصد ترجمه داشتم که تا امروز کار برد. جالبه امروز سایت نرمافزارهای آزاد یه ترجمه نصف و نیمه از این مطلب رو تو سایتش گذاشته
دیدگاهتان را بنویسید