بدون شک قدرتمندترین بخش سیستمعامل گنو/لینوکس رابط خطفرمان یا «CLI» است. محیط متنی لینوکس، برخلاف آنچه به نظر میرسد بسیار کاربردی و انعطافپذیر است. در این مقاله سعی داریم با برخی از دستورات ساده اما پر کاربرد جهت مانیتورینگ عملکرد سیستم در محیط ترمینال لینوکس آشنا شویم. با زومیت همراه باشید.
اغلب سیستمهای کاری که سرویسهای مهمی را به کاربران ارائه میدهند بدلیل امکان کاهش کارایی، فاقد محیط گرافیکی هستند. علاوه بر آن مدیر یک سیستم مبتنی بر لینوکس اغلب مجبور است از راه دور، به تنظیم و یا رفع عیب سیستم خود بپردازد که این امر با استفاده از پروتکلهای امن بعلاوهی امکانات محیط متنی بسیار راحت انجامپذیر است. به همین دلایل است که اغلب برای لینوکسکارها هیچ کاری لذتبخشتر از کار با محیط متنی نیست.
معمولا مدیر یک شبکه در بازههای زمانی مشخصی تمامی سیستم و کامپیوترهای موجود در شبکه را عیب یابی و بررسی میکند، در سیستمهای ویندوزی برای مانیتورینگ سیستم برنامههای مختلفی وجود دارد که با اجرای آنها نمایی کلی از آنچه در کامپیوتر رخ میدهد، قابل مشاهده است. در سیستمهای لینوکس هم علاوه بر نرمافزارها، توسط محیط متنی آن میتوان همین کار را انجام داد. خیلی از کارها فقط از طریق خط فرمان قابل انجام هست و همچنین خیلی از اقدامات از طریق آن سریع تر انجام میشود.
قبل از اینکه به اصل موضوع بپردازیم چند نکته را باید در نظر بگیرید. نکته اول اینکه الزاما تمام دستوراتی که اشاره خواهند شد به صورت پیش فرض در تمام توزیعهای لینوکس وجود ندارند؛ بنابراین ممکن است بعضی از دستورات در بعضی از توزیعها اجرا نشوند. نکته دوم اینکه با اجرای man قبل از دستور مورد نظر به عنوان مثال «man ls», راهنمای کاملی از آن دستور را مشاهده خواهید کرد. برای اجرای بعضی دستورات باید سطح دسترسی بالا داشته باشید و یا باید آنها را مطابق نیاز خود تغییر دهید.
شاخصهای مدیریت و مانیتورینگ فرآیندها چیست؟
هر برنامهای که در سیستمعامل اجرا میشود، فرآیند یا «Process» نامیده میشود. فرآیندها برای اجرا باید در حافظه رَم قرار بگیرند. وقتی یک فرآیند در این حافظه جای میگیرد، به اصطلاح در حالت آماده قرار دارد و تنها منبعی که لازم دارد تا اجرا شود، پردازنده است. هر فرآیند دارای یک عدد منحصر به فرد و مختص به خود است که PID یا Process ID نام دارد. از این عدد برای کنترل فرآیند توسط ابزارهای خط فرمان استفاده میشود.
شناسهی فرآیند
هر فرآیند دارای یک والد است و والدها هم دارای یک عدد منحصر به فرد هستند. در خروجی دستورها این عدد با عبارت PPID یا «Parent Process ID» نشان داده میشود. اولین فرآیندی که در سیستم ایجاد میشود init با PID=1 و PPID=0 است. PPID به این خاطر صفر است که این فرآیند والد تمام فرآیندها است و خود والدی ندارد.
اولیت فرآیندها
مفهوم دیگری که در ارتباط با فرآیندها وجود دارد، اولویت یک فرآیند است. الگوریتمهای زمانبندی بر اساس اولویت اجرا میشوند، پردازنده فرآیندی که اولویت بیشتری دارد را از حافظه اصلی انتخاب میکند. بطور مثال فرآیندهای سیستمی مانند کرنل اولویت بیشتری نسبت به فرآیند برنامهای مانند فایرفاکس دارد.
حافظهی Swap
مفهوم حافظه Swap که یک حافظه مجازی یا Virtual Memory است این است که ظرفیت حافظه رم محدود و کم است و به دلیل در خواستهای بالا و اینکه پردازنده در هر لحظه میتواند یک فرآیند را اجرا کند بسیاری از فرآیندها بیکار میمانند و فضای حافظه اصلی را اشغال میکنند. فرض کنید در همین حین یک فرآیند با اولویت بالا وارد میشود ولی فضای کافی برای قرار گرفتن در حافظه اصلی را ندارد، پس این فرآیند هر گز نمیتواند اجرا شود. ولی راه حل این موضوع استفاده از حافظه swap است. به اینصورت که فرآیندهای بیکار در حافظه اصلی را به حافظه ثانویه منتقل میکند و فرآیند جدید را جایگزین آن میکند. به این عمل انتقال Swapping گفته میشود.
دستورات مانیتورینگ و مدیریت فرآیندها
۱٫ TOP
این دستور جزو پرکاربردترین دستوراتی است که توسط مدیرهای شبکه جهت مانیتورینگ عملکرد سیستم لینوکسی مورد استفاده قرار میگیرد. دستور top تمامی فرآیندهای در حال اجرای سیستم را در لیستی نشان داده و در فواصل زمانی مرتبی آنها را بروز میکند. این دستور فرآیندهای مرتبط با میزان مصرف پردازنده و حافظهی رم، حافظهی Swap، میزان حافظهی Cache و بافر، شناسهی هر فرآیند یا PID و تمامی این فرآیندها را همراه با کاربری که از آنها استفاده میکند، نشان میدهد. همچنین اگر فرآیند سیستمی که مصرف بالایی از پردازنده و رم دارد را مشخص کرده و نمایش میدهد. top محبوبترین و پرکاربردترین دستور مورد استفاده توسط مدیران شبکههای کامپیوتری است.
۲٫ VmStat
دستور VmStat مخفف virtual memory statistics اطلاعاتی از فرآیندها، حافظه، صفحه بندی، Block I/O و فعالیتهای پردازنده را نشان میدهد. هر برنامه یا فرآیندی برای اجرا شدن ابتدا در حافظه اصلی یا رم قرار میگیرد و با بدست آوردن اصلیترین منبع هر سیستم یعنی پردازنده اجرا خواهد شد. مانیتورینگ حافظه اصلی و پردازنده در بهبود کارایی سیستم مفید است. خود حافظه اصلی به دو ناحیه Kernel Level و User Level تقسیم میشوند. همچنین فضایی در هارد دیسک به نام swap بصورت یک پارتیشن مجزا از نوع سیستم فایل swap وجود دارد که فرآیندها میان حافظه اصلی و swap در حال رد و بدل شدن هستند.
- ستون Procs که مخفف Proccess و اطلاعاتی از فرآیند بلاک شده و در حال اجرا را نمایش میدهد. در زیر این ستون به ترتیب فیلد r مجموع تعداد فرآیندهای runnable و فیلد b مجموع فرآیندهای بلاک شده را نشان میدهد.
- ستون memory اطلاعاتی از حافظه اصلی را نشان میدهد که دارای ۴ فیلد است. فیلد swpd معرف میزان فضای swap اسفاده شده است که مانند شکل اول هیچ فضایی استفاده نشده است. فیلد free مانند ستون free در اولین خط خروجی دستور free میزان فضای آزاد حافظه اصلی را نشان میدهد. فیلد buff و cache به ترتیب مانند ستونهای buffer و cache در خروجی دستور free میزان فضای بافر و cache را نشان میدهند.
- ستون swap اطلاعاتی از swap را نشان میدهد؛ فیلد si یعنی swap in و به میزان فضایی که فرآیندها از دیسک به حافظه اصلی آورده شدهاند، اشاره میکند؛ عملیاتی که طی آن فرآیندی از حافظه swap که برروی دیسک قرار دارد به حافظه اصلی آوره میشود swap in گفته میشود. so یعنی swap out و بلعکس عملیات swap in است و به عملیاتی که طی آن فرآیندی از حافظه اصلی وارد ناحیه swap بر روی دیسک میگویند و فیلد so میزان این عملیات را نشان میدهد. به مجموع این دو عملیات swapping یا مبادله کردن میگونید و چون فیلد swpd برابر صفر است و از حافظه swap استفاده نشده است پس هیچ عملیات si و so نیز انجام نگرفته پس این دوفیلد نیز مانند فیلد swpd برابر صفر هستند.
- ستون io میزان عملیاتهای ورودی وخروجی یا Input/Output را نشان میدهند. این ستون دارای دوفیلد bi که مخفف Block Input و معرف تعداد بلاکهای حافظهای که از دیسک گرفته یا دریافت شدهاند یا همان «خواندن از دیسک» و bo مخفف Block Output و یعنی تعداد بلاکهای حافظهای که بر روی دیسک فرستاده شدهاند یا همان «نوشتن بر دیسک» را نشان میدهد.
- ستون system دارای دو in که مخفف Intrrupt یا تعداد وقفهها در هر ثانیه است. یکی از اعمالی که باعث ایجاد وقفه میشود درخواست خواندن از دیسک است. به محض بروز وقفه برای خواندن از دیسک مقدار این فیلد تغییر کرده و فرآیند باید متوقف شود تا بیخود پردازنده را اشغال نکند، پیش از متوقف کردن فرآیند باید تمامی وضعیت یک فرآیند نگهداری شود که به محض تکمیل عمل I/O دوباره آن فرآیند از وضعیت قبلی خود اجرا شود. به عملیات نگهداری وضعیت فرایند Context Switch گویند که فیلد دوم یعنی cs مخفف Context Switch ها در هر ثانیه است.
- ستون cpu دارای ۴ فیلد است. فضای حافظه اصلی به دو ناحیه Kernel-Level و User-level تقسیم میشود که ناحیه User-level هیچ دخالتی بر ناحیه Kernel-Level ندارد. اولین فیلد یعنی us زمان مصرف شده برای اجرا کردن کدهای کاربری را نشان میدهد. فیلد sy میزان زمان صرف شده برای اجرای کدهای کرنل را نشان میدهد. id که مخفف idle است میزان زمان بیکاری یا Idle Time پردازنده و فیلد wa میزان زمان صرف شده برای تکمیل یک عمل I/O را نشان میدهند.
۳٫ Lsof
هر چیزی در یونیکسها و لینوکس در قالب یک فایل است. کاربران و فرآیندها بصورت مداوم و همیشگی با برخی از فایلها کار میکنند. برای مثال یک CMD با برخی از فایلهای کتابخانه C و یک فایل پیکربندی در حال کار کردن است. فایلها در دایرکتوریها ذخیره میشوند؛ این که میگوییم در یونیکسها و لینوکس همه چیز فایل است فقط به فایلهای متنی و دیگر فایلهای مرسوم ختم نمیشود، بلکه حتی اتصالهای شبکه و سخت افزارها نیز فایل هستند و این فایلها توسط کاربران، سرویسها و فرآیندها مورد استفاده قرار میگیرند. بدون در نظر گرفتن نوع فایل، هر فایلی در یونیکسها و لینوکسها دارای یک File Descriptor است که در خروجی دستور lsof با FD نشان داده میشود. FD اطلاعات جامعی از یک فایل به شما میدهد. lsof مخفف List Open File است که در تمامی سیستمعاملهای مبتنی بر یونیکس مانند BSDها و توزیعهای لینوکسی موجود و قابل استفاده است. این نکته را به یاد داشته باشید که خروجی دستور lsof بسیار طولانی است، به همین دلیل میتوانید این دستور را با less ترکیب کنید. ستونهای PID,COMMAND و USER به ترتیب معرف نام دستور، شناسه یا PID دستور و نام کاربری است که از آن فایل استفاده میکند. ستون Device به نام دیسک، ستون SIZE/OFF به اندازه فایل و ستون NAME معرف نام فایل است. از ستونهای گفته شده میتوان فهمید که کدام USER چه دستوری یا فرآیندی را با چه PIDای استفاده میکند و فرآیند یا دستور در حال استفاده از کدام فایل، با چه اندازهای و در کدام دیسک ذخیره شده است. ستون دیگر FD و TYPE هستند که اطلاعات کاملتری را در اختیار قرار میدهند؛ ستون FD هم مخفف File Descriptor است.
کاربرد دستور lsof
- لیست کردن فرآیندها بر اساس فایلهای باز شده: یعنی بر اساس یک فایل مشخص لیستی از فرآیندها داشته باشیم. مثال زیر فرآیندهایی که فایل syslog را باز کردهاند را نشان میدهد. lsof /var/log/syslog
- لیست کردن فایلهای باز شده در زیر یک دایرکتوری: یعنی فایلهای باز شده تحت یک دایرکتوری معین شده را فهرست کنیم. مثال زیر تمامی فایلهای باز شده در زیر دایرکتوری var/log/ را فهرست میکند. lsof +D /var/log
- لیست کردن فایلهای باز شده توسط فرآیندهایی که با یک رشته مشخص شروع میشوند. برای اینکار از سوئیچ c- استفاده میکنیم. در مثال زیر تمام فایلهای باز شده برای فرآیندهایی که با رشتههای ssh و init آغاز میشوند را فهرست میکند. lsof -c ssh -c init
- لیست کردن فایلهای باز شده برای یک نقطه اتصال: منظور از نقطه اتصال یعنی اینکه یک پارتیشن مانند dev/sda3/ را به یک دایرکتوری مانند home/ یا یک دایرکتوری مانند tmp/mountpoint/ وصل کنیم. این حالت مانند حالت فهرست کردن فایلهای باز شده در زیر یک دایرکتوری است. lsof /home
- لیست کردن فایلهای باز شده برای یک کاربر خاص: یعنی تمامی فایلهای باز شده توسط یک کاربر خاص را فهرست کنیم. اینکار توسط سوئیچ u- انجام میشود و بجای USERNAME نام کاربری دلخواه را بنویسید. lsof -u USERNAME
- لیست کردن فایلهای باز شده برای یک فرآیند خاص: یعنی با PID فرآیند، فهرست تمام فایلهای باز شده توسط آن فرآیند را ببینیم. اینکار توسط سوئیچ p- انجام میشود و بجای PID باید شناسه فرآیند را جایگزین کنید. lsof -p PID
- اما برای بدست آوردن PID یک فرآیند میتوانید از دستور ps بصورت زیر استفاده کنید؛ کافیاست بجای fav نام دستور یا سرویس یا فرآیند را که میخواهید PID آن را بدست آورید بنویسید. ps aux | grep fav
۴٫ TCPdump
یک packet sniffer است که در خط فرمان اجرا میشود و برای بررسی تمام یا قسمتی از پکتهای در حال انتقال بر روی اینترفیسهای شبکه به کار میرود. محدوده این پکتها توسط ترکیبی از عملگرهای منطقی و پارامترهایی مثل آدرس آیپی یا مک مربوط به منبع و مقصد و نوع پروتکل تعیین میشود. packet sniffer یا packet analyzer یک سختافزار یا نرمافزار است که میتواند ترافیک موجود بر روی یک شبکه را آنالیز و رمزگشایی کند و نتیجه را نمایش داده یا ذخیره کند.
گزینههای این دستور به ترتیب زیر است:
- i : برای مشخص کردن کارت شبکه به کار میرود. tcpdump -i eth0
- c: با استفاده از این گزینه میتوانیم مشخص کنیم که اطلاعات چند پکت اول نمایش داده شود. در این حالت اجرای دستور پس از نمایش اطلاعات تعداد پکتهای مشخص شده متوقف میشود. [tcpdump -c [Number Of Packets
- w : مشخص میکند که نتیجه اجرای دستور به جای نمایش در کنسول، در یک فایل نوشته شود. این فایل میتواند ورودی یک برنامه یا اسکریپت برای آنالیز باشد، یا بعدا توسط خود دستور tcpdump خوانده شود. [tcpdump -w [File Address
- r : برای خواندن و نمایش دادن نتایج موجود در فایلی که قبلا توسط دستور tcpdump در آن نوشته شده به کار می رود. [tcpdump -r [File Address
- host : برای نمایش packetهای در حال انتقال که آدرس آیپی یا hostname منبع یا مقصد آنها برابر مقدار مشخصی است، به کار میرود. [tcpdump host [ip address / hostname
- src : به همراه host برای نمایش پکتهای در حال انتقال که آدرس آیپی یا hostname منبع آنها برابر مقدار مشخصی است، به کار میرود. [tcpdump src host [ip address / hostname
- dst : به همراه host برای نمایش پکتهای در حال انتقال که آدرس آیپی یا hostname مقصد آنها برابر مقدار مشخصی است، به کار میرود. [tcpdump dst host [ip address / hostname
- port : برای نمایش پکتهای در حال انتقال که پورت منبع یا مقصد آنها برابر مقدار مشخصی است، به کار میرود. [tcpdump port [portNo
۵٫ Netstat
netstat دستوری برای بدست آوردن اطلاعاتی مانند ارتباطات شبکه، جدول مسیریابی، اطلاعات و آماری از اینترفیسهای شبکه است و جزو ابزارهایی به شمار میرود که در رفع مشکل شبکه استفاده میشود. همچنین netstat در سیستمعامل ویندوز نیز قابل استفاده است. این دستور پارامترهای زیادی دارد که به چند پارامتر در اینجا بسنده میکنیم:
- -a : نمایش تمام ارتباطات فعال و پورتهای UDP وTCP در کامپیوتری که در حال شنود است
- -e : نمایش آمار اترنت؛ مثل نمایش تعداد پکتهای در حال ارسال و دریافت بر روی شبکه
- -n : نمایش TCPهای فعال
- -s : نمایش آمار به وسیله پروتکل
۶٫ Htop
این دستور یکی از پیشرفتهترین ابزارهای لینوکس برای مدیریت و مانیتورینگ شبکه است. در واقع htop بسیار شبیه به دستور top است، با این تفاوت که ویژگیهای پیشرفتهی بسیاری را ارائه میکند. قابلیتهایی مانند رابط گرافیکی کاربر پسندتر برای مدیریت فرآیندها، کلیدهای میانبر و مرتب کردن فرآیندها بصورت افقی و عمودی است. htop جزو ابزارهای شخص ثالث است و به صورت پیش فرض در سیستمهای لینوکسی قرار ندارد؛ به همین دلیل باید توسط مدیریت پکیج YUM آن را نصب کنید. در واقع htop ابزار كوچک بسيار مفيد برای نظارت بر وضعيت داخلی سرور مجازی یا سرور اختصاصی در ترمينال SSH است. اين برنامه میتواند به جای دستور top مورد استفاده قرار بگيرد و نسبت به اين دستور از مزايای بيشتری به خصوص از لحاظ طرح بندی و سهولت عمل با استفاده از ميانبر و همچنين حمايت از ماوس برخوردار است.
۷٫ Iotop
این دستور هم بسیار شبیه به htop و top است. با این تفاوت که فرآیندهای سخت افزارهای ورودی و خروجی را نیز نمایش میدهد. lotop زمانی که بخواهیم بدانیم کدام فرآیند دقیقا مربوط به چه منبعی است، کاربردی و مفید واقع خواهد شد.
۸٫ Iostat
این دستور هم تمامی اطلاعات مربوط به دستگاههای ورودی و خروجی را نشان میدهد. در واقع iostat جزئیات ریز سیستم ذخیره سازی را نشان میدهد. این دستور مشکلات ورودی/خروجی را برای نشان داده و از طریق آن میتوان سرعت و کند شدن سرور را چک کنید.
۹٫ IPTraf
این دستور یک کنسول متنباز بر اساس ابزار real time network در لینوکس است که اطلاعات متنوعی نظیر ترافیک آیپی که در شبکه پردازش میشود و اطلاعات tcp وicmp و خرابیهای ترافیک tcp/udp و بستههای tcp را نشان میدهد.
۱۰٫ Psacct یا Acct
psacct و acct دو برنامه متن باز تحت لینوکس هستند که این قابلیت را میدهند که به راحتی و با چند تا دستور ساده بتوانیم کاربرهای ssh را مانیتور بکنیم، البته دستور ps و دستورات دیگری برای این کار وجود دارد. این دستورات اطلاعات خوبی از جمله میزان منابع مصرفی توسط کاربرها یا مدت زمان کار با سیستم یا حتی دستوری که توسط کاربر در حال اجرا است را با جزئیات کامل در اختیار قرار میدهد. هر کاربر در دایرکتوری خانگی خود فایلی به نام bash_history دارد که بصورت مخفی در دایرکتوری خانگی قرار دارد. در این فایل تمامی دستورهایی که یک کاربر اجرا کند ذخیره خواهد شد و میتوان برای فهمیدن اینکه کاربر چه دستوری را اجرا کرده است از آن بهره برد. در هر خط، یک دستور اجرا شده قرار میگیرد. اما کاربر میتواند این فایل را پاک یا محتوای آن را پاک کند. در تمامی توزیعهای لینوکسی دستورهایی وجود دارند که یک مدیر میتواند اطلاعات کاملتری از فعالیتهای یک کاربر بدست بیاورد. با استفاده از این دستور میتوان فهمید که هر کاربر چه دستوری را انجام داده، چه مقدار منبع استفاده کرده، چه تعداد کاربر در حال فعالیت روی سیستم هستند. برای استفاده از این دستور باید در توزیعهای مبتنی بر Redhat بسته نرمافزاری psacct و در توزیعهای مبتنی بر دبیان بسته نرمافزاری acct را نصب کنید.
۱۱٫ Monit
۱۲٫ NetHogs
در هنگام اجرای برنامه میتوانید از کلیدهای میانبری برای کنترل برنامه نیز استفاده کنید که این کلیدها به شرح زیر است:
- m : برای نمایش سرعت بر اساس B, KB, KB/S, MB
- r : مرتب سازی بر اساس دریافت «received»
- s : مرتب سازی بر اساس ارسال «sent»
- q : پایان دادن به برنامه و رفتن به محیط کنسول
۱۳٫ iftop
۱۴٫ Monitorix
۱۵٫ Arpwatch
این دستور تمامی ترافیک و عملکرد پروتکل Arp را مانیتور میکند، این ابزار به طور خودکار تمامی ترافیک مبادله شده در اترنت را بررسی کرده و لاگ مربوط به آدرسهای مک و آیپی را نگه میدارد. این دستور قابلیت این را دارد که به مدیر سیستم از طریق ایمیل ترافیک و آدرسهای ناشناس را هشدار و گزارش دهد. این ابزار در شناسایی حملهی ARP Spoofing بسیار مفید است.
۱۶٫ Suricata
برخلاف اکثر ابزارهای مانیتورینگ، این دستور از مانیتور کردن شبکه جلوگیری میکند. در واقع اگر دارای سیستمی مهم یا سرور هستید نصب و استفادهی این ابزار را توصیه میکنیم. بوسیلهی این ابزار میتوانید تمامی ترافیکهای ناخواسته به سرور را شناسایی کرده و از مانیتور کرده سیستم جلوگیری کنید.
۱۷٫ VnStat PHP
شاید بسیاری از مدیرهای شبکه نیاز به ابزاری برای مانیتورینگ کل پهنای باند مصرفی دانلود و آپلود شده بر روی سرور داشته باشند. ممکن است بخواهید برای مدیریت بهتر سرور از یک کنترل پنل مانند دایرکت ادمین، سی پنل، پلسک و وب سایت پنل بسته به نوع سیستم عامل سرور استفاده کنید، اما هیچکدام از این پنلها ممکن است کل ترافیک مصرف شده بر روی سرور را نمایش ندهند، این پنل تنها با تقریب ممکن است ترافیک مصرفی یک اکانت را نمایش میدهند. اما ملاک هزینههای پهنای باند، کل ترافیک انتقال یافته بر روی کارت شبکه است که ممکن است صرف بروزرسانیهای سیستم عامل و یا حتی ویروسها و یا حملات بروتفورس شود و مدیر سرور مجبور به پرداخت هزینه برای ترافیک ناخواسته خود میشود. در این حالت میتوان از ابزاری قوی مانند VnStat PHP استفاده کرد.
vnstat PHP برنامهای بر پایه وب برای ابزار محبوب vnstat است. این برنامه برای مانیتورینگ ترافیکهای ورودی و خروجی در سیستم است و میتواند با گزارشهای ماهانه، روزانه و سالانه به صورت گرافیکی آماری از ترافیکهای سیستم نشان دهد. از مزایای این نرم افزار میتوان به سبک بودن آن اشاره کرد که بار خاصی را بر روی سرور اعمال نمیکند.
۱۸٫ Nagios
Nagios یک سیستم مانیتورینگ متنباز برای مانیتور کردن شبکه، زیر ساختها و نرمافزارها است. با Nagios امکان مانیتورینگ سیستم، سرویسها و شبکه با ارسال پیغامهایی به ایمیل مدیران در زمانهای بحرانی وجود دارد. با آن میتوانید کل زیر ساختها «Inferastructure» را بررسی کنید. در پیکربندی Nagios در این مطلب از دو ماشین لینوکسی که یکی به عنوان Nagios Server عمل میکند و دیگری به عنوان Nagios Client باید استفاده شود. Nagios Server ماشینی است که Nagios و کنسول آن بر روی آن نصب شده و میتوان دیگر ماشینهای شبکه را را برای مانیتورینگ متمرکر به آن معرفی کرد. در واقع با استفاده از ماشین Nagios Server میتوان سرویسها، زیر ساختها مانند ftp, dns و وضعیت پردازنده، حافظه، swap بر روی ماشینهای راه دور را یکجا مانیتور کرد. به ماشینهایی که به Nagios Server معرفی میشوند، Nagios Client میگویند. لازم است بر روی ماشین های Nagios Client، بسته نرم افزاری nrpe نصب شود.
۱۹٫ Nmon
این دستور خلاصه شدهی Nigel’s performance Monitor است که برای مانیتور کردن تمامی منابع سیستم از جمله پردازنده، حافظهی رم، میزان مصرف دیسک، فرآیندهای مهم و کرنل به کار میرود. این ابزار در دو حالت Online Mode و Capture Mode ارائه شده است. Online Mode برای مانیتور کردن شبکه در زمان واقعی و Capture Mode برای زمانی استفاده میشود که میخواهیم نتایج در فایلی با فرمت CSV ذخیره شود.
۲۰٫ Collectl
میتوان گفت collectl کاملترین ابزار برای مانیتورینگ شبکه است. این ابزار دارای قابلیتی برای جمعآوری اطلاعاتی از منابع سیستم از جمله مصرف پردازنده، حافظه، فرآیندها، سوکتها، nfs و tcp است.