دستورات پرکاربرد مانیتورینگ در سرور های لینوکس
در این آموزش قصد داریم تعدادی از دستورات پرکاربرد مانیتورینگ در سرور های لینوکس را به شما کاربران گرامی آموزش دهیم؛ همانگونه میدانید مانیتورینگ برای زمانی کاربرد دارد که بخواهیم میزان مصرف منابع نرم افزاری و سخت افزاری سرور توسط کاربران و یا خود سرور را در سطح شبکه مورد بررسی قرار دهیم.
با توجه به گستردگی دستورات لینوکس، دراین آموزش قصد داریم فقط به چند دستور پرکاربرد در حوزه مانیتورینگ لینوکس بپردازیم.
دستور top – مانیتور نمودن پروسس های لینوکس
دستور top در لینوکس، تمامی پروسه ها و فرایندهای Real-Time ی را که فعال و یا درحال اجرا می باشند را بصورت لیستی مرتب نمایش می دهد و این لیست مرتبا به هنگام می شود.
با دستور top میتوان میزان مصرف CPU، میزان مصرف حافظه، Swap Memory، سایز Cache، سایز بافر (Buffer) پروسس ها، PID، کاربران، دستورات و…. را مشاهده نمود.
همچنین بااین دستور، امکان مشاهده پروسس هایی که بیشترین میزان مصرف حافظه یا CPU را دارند، نیز فراهم می شود.
تصویر فوق مربوط به خروجی top میباشد.
vmstat – میزان مصرف حافظه مجازی
از دیگر دستورات لینوکس دستور vmstat می باشد که جهت نمایش میزان مصرف حافظه مجازی (Virtual Memory Statistics)، رشته های هسته (kernerl threads)، دیسک ها، پروسس های سیستمی، وقفه ها (interrupts)، میزان فعالیت پردازنده، (I/O Blocks) بلوک های I/O و …. بکار می رود.
بصورت پیشفرض vmstat، روی لینوکس وجود نداشته و باید جهت فعال سازی آن بسته sysstat را روی سیستم نصب نمایید.
رایج ترین کاربرد دستور vmstat را مشاهده میکنید.
lsof – نمایش لیست فایل های باز
دستور کاربردی دیگر در سیستم های مبتنی بر Linux/Unix ، دستور lsof می باشد. دستور lsof، جهت نمایش لیستی از تمامی فایل ها و پروسس های باز به کار می رود.
فایلهای باز شامل تمامی فایل های دیسک، سوکت های شبکه، پروسس ها، دستگاه ها (Devices) و Pipes ها می باشد.
از مهمترین موارد استفاده این دستور، زمانی است که هنگام mount/unmount کردن، دیسک نمی تواند un-mount شود و با خطایی نظیر “فایل باز است و یا در حال استفاده می باشد”، همراه است؛ در نتیجه با استفاده از این دستور می توانید تشخیص دهید که کدام فایل ها در حال حاضر باز می باشند.
تصویر فوق مربوط به خروجی فرمان lsof میباشد.
tcpdump – تجزیه و تحلیل بسته های شبکه
دستور tcpdump یکی از پرکاربردترین دستورات لینوکس می باشد. این دستور بعنوان تحلیل بسته های شبکه (network packet analyzer) ویا برنامه محدود کردن بسته های شبکه ای (packets sniffer program) کاربرد زیادی دارد.
همچنین امکان ذخیره سازی بسته های خاصی را در فایل ها جهت تجزیه و تحلیل در آینده نیز دارد. دستور tcpdump روی اکثر توزیع های مختلف لینوکس قابل استفاده می باشد.
خروجی بالا از دستور tcpdump حاصل میشود.
netstat – میزان مصرف شبکه
netstat دستور کاربردی جهت مانیتور کردن مقادیر ورودی و خروجی بسته های شبکه (network packets) می باشد. این دستور جهت مانیتور کردن عملکرد شبکه و برطرف کردن مشکلات احتمالی مربوطه به مدیر سرور کمک شایانی می نماید.
خروجی دستور netstat را در تصویر ببینید.
htop – مانیتورینگ پروسس های لینوکس
دستور htop، دستوری بسیار قدرتمند و Real Time جهت مانیتور کردن لحظه ای / آنی پروسس های لینوکس می باشد. این دستور شبیه دستور Top می باشد، با این تفاوت که قابلیت های کاربردی دیگری نظیر مشاهده عمودی ویا افقی پروسس ها، کلید های میانبر، ارائه رابط کاربرپسند جهت مدیریت پروسس ها را نیز میسر می کند.
دستور htop، از ابزار های سطح کاربری (third party tool) بوده و بطور پیش فرض روی سیستم های لینوکس نمی باشد. جهت نصب دستور htop، می بایست از بسته های مدیریتی YUM استفاده نمایید.
فضای متفاوت دستور htop را مشاهده میفرمایید.
iotop – مانیتورینگ I/O دیسک
از دیگر دستورات لینوکس، دستور iotop است که بسیار شبیه دستور Top و برنامه htop می باشد، با این تفاوت که دستور iotop با استفاده از توابع محاسباتی، جهت مانیتور کردن و نمایش دیسک I/O و پروسس های لحظه ای استفاده می کند.
این دستور بیشتر زمانی بکار می آید که بخواهیم دقیقا پروسس های خواندن/نوشتن (Read/Writes processes) را که فضای زیادی از دیسک مصرف میکنند، بیابیم.
iotop چنین خروجی ای به شما خواهد داد.
iostat – میزان مصرف ورودی / خروجی ها
iostat دستور ساده ای جهت جمعآوری و نمایش میزان مصرف دستگاه های ذخیره سازی ورودی و خروجی می باشد. این دستور غالبا جهت بررسی عملکرد دستگاه های ذخیره سازی بکار میرود و می توان با بکاربردن آن مشکلات مربوط به دیسک های لوکال، دستگاه های ورودی و خروجی، دیسک های ریموت نظیر NFS را عیب یابی نمود.
تصویر فوق مربوط به iostat میباشد.
iptraf – مانیتورینگ لحظه ای IP شبکه LAN
از دیگر دستورات لینوکس، دستور iptraf دستور منبع باز (Open Source) و مبتنی بر کنسول جهت مانیتورینگ لحظه ای IP شبکه LAN ، (Real Time IP LAN Monitoring) می باشد؛ این دستور اطلاعات بسیار متنوعی نظیر ترافیک IP های ورودی به شبکه شامل TCP flag، ICMP، نقاط ضعف TCP/UDP، بسته های ارتباطی TCP و تعداد byne ها را مانیتور نموده و نمایش می دهد.
همچنین اطلاعات مفید و دقیقی از مصرف TCP، UDP، IP، ICMP، non-IP، خطاهای IP checksum ،interface activity و….. را ارائه می دهد.
خروجی دستور ذکر شده در تصویر قابل مشاهده میباشد.
psacct or acct – مانیتورینگ فعالیت های کاربران
دستور psacct یا acct، یکی دیگر از دستورات لینوکس و مفید برای مانیتور نمودن تمامی فعالیت های کاربران می باشد. این دستور ابزار بسیاری مناسبی جهت مانیتور نمودن تمامی فعالیت های کاربران که در پس زمینه (Background) در حال اجرا هستند و نیز امکان بررسی دقیق تمامی فعالیت ها در یک نگاه کلی را فراهم نموده و همچنین مشخص می کند که کدام کاربران در حال استفاده از کدام منابع می باشند.
این دستورات برای مدیران سرور بسیار کاربردی بوده و امکان بررسی فعالیت های کاربران نظیر اینکه در حال حاضر چه عملی را روی سرور انجام می دهند، کدام دستورات را اجرا می کنند، میزان منابع مصرفی هر یک از آن ها چقدر است، مدت زمانی که روی سیستم فعال هستند را میسر می کند.
monit – مانیتورینگ سرویس ها و پروسس های لینوکس
monit دستور منبع باز (Open source) و از ابزار نظارتی پروسس ها می باشد که بطور اتوماتیک پروسس های سیستم مدیریتی، برنامه ها، فایل ها، پوشه ها، مجوز های دسترسی، فایل های سیستمی و checksum را مانیتور می کند.
دستور monit ، تمامی سرویس ها نظیر Apache، MySQL، Mail، FTP، ProFTP، Nginx، SSH و… را مانیتور می نماید.
نتیجه وضعیت سیستم، هم بصورت خط دستور و هم بصورت رابط گرافیکی قابل مشاهده می باشد.
nethogs – مانیتورینگ پهنای باند شبکه به ازای هر پروسس
دستور nethogs نیز دستور منبع باز (Open Source) کوچکی نظیر دستور top می باشد که جهت نمایش فعالیت های شبکه ای هر پروسس روی سیستم شما به کار می رود.
همچنین امکان نمایش ترافیک لحظه ای (real time network traffic bandwidth) استفاده شده توسط هر برنامه ویا نرم افزار کاربردی را فراهم می کند.
iftop – مانیتورینگ پهنای باند شبکه
دستور iftop نیز از دیگر دستورات لینوکس و دستوری منبع باز (Open Source) و terminal-based می باشد که جهت نمایش لیستی از پهنای باند مصرفی که توسط هاست های مبدا و یا مقصد، به کارت شبکه سیستم شما وارد می شود، بکار می رود؛ توجه داشته باشید که دستور iftop جهت بررسی پهنای باند شبکه بکار می رود در حالی که دستور top جهت بررسی میزان مصرف پردازنده (CPU) بکار می رود؛ دستور iftop از خانواده دستور top بوده که اینترفیس مشخصی را ماتیتور نموده و پهنای باند مصرفی بین دو هاست مربوطه را نمایش می دهد.
تصویر فوق مربوط فرمان iftop میباشد.
arpwatch – مانیتورینگ فعالیت های Ethernet
دستور arpwatch، نوعی از دستورات لینوکس و از ابزار هایی است که برای مانیتور کردن آدرس های (تغییرات MAC و IP address) ترافیک شبکه های اترنت (Ethernet)، روی شبکه های لینوکسی می باشد؛ این ابزار بطور مرتب ترافیک اترنت (Ethernet) را بررسی نموده و گزارشی از تمامی IP ها و MAC address هایی که در یک برهه زمانی روی شبکه تغییر می یابند را ایجاد می کند؛ همچنین از قابلیت های دیگر این دستور این است که زمانی که هرگونه تغییری روی این آدرس ها رخ دهد، می تواند ایمیل اطلاع رسانی برای به ادمین شبکه ارسال نماید.
collectl – ابزار مانیتورینگ چند منظوره
ابزار collectl ، ابزار بسیار قدرتمند و جامعی می باشد که می تواند اطلاعات کاملی از منابع سرویس های لینوکس نظیر میزان مصرف CPU ، memory، network، inodes، processes، nfs، tcp، sockets و…. را جمع آوری نماید.
طوبی وب گستر مفتخر است تا در زمینه ارائه، پشتیبانی و آموزش سرورهای مجازی و سرور اختصاصی با سیستم عامل های لینوکس، ویندوز و میکروتیک در کنار شما کاربران گرامی باشد.