لینوکس بهعنوان یکی از محبوبتری سیستمعاملهای دنیا در این روزها بخش زیادی از فضای اینترنت را در دست گرفته است. به گزارش W3Tech، بهتقریب نیمی از یک میلیون وبسایت پربازدید دنیا، روی سرورهای لینوکسی قرار دارند. همین موضوع نشان میدهد که مانیتورینگ سرور لینوکس و پایش آنها، به دغدغهی بسیاری از افراد فعال در این حوزه تبدیل شده است. روشهای بسیاری برای مانیتورینگ سرورهای لینوکس وجود دارد. بعضی از این راهها سادهتر و بعضی دیگر به دانش فنی بیشتری نیاز دارند. در ادامهی این مطلب، شما با برنامههای تخصصی طراحی شده برای مانیتورینگ و Command Lineهای مانیتورینگ سرور لینوکس آشنا میشوید.
دستورات مانیتورینگ سرور لینوکس
در این بخش، شما با ۶ مورد از بهترین دستورات Command Line لینوکس آشنا میشوید که میتوانند ابزارهای شگفتانگیزی برای مانیتورینگ عملکرد سرور باشند. این دستورات میتوانند پردازش CPU، مقدار رم مصرفی، اطلاعات شبکه و دیگر موارد مورد نیاز را به شما نشان بدهند. همچنین برخی از Diagnostic Commands نیز در ادامه بررسی میشوند.
دستور Top
یکی از متداولترین راههای شما برای مانیتورینگ سرور لینوکس، استفاده از دستور Top است. کافی است که این دستور را در ترمینال تایپ کنید و Enter را بزنید. در صفحهی شما، پردازشهای سیستم براساس مصرف پردازنده و زمان فعالیت فهرست میشوند. در بخش بالا، اطلاعات عمومی مانند زمان روشن بودن سیستم، تعداد کاربرها، متوسط لود، تعداد پردازش و موارد مشابه نوشته شده است. در بخش پایین، فهرستی از پردازشها به همراه PID، درصد استفاده از CPU و درصد استفاده از رم را مشاهده میکنید.
در این صفحه، شما میتوانید پردازشی که حجم بسیاری از رم یا سیپییو را اشغال کرده بود را متوقف کنید یا اینکه اولویت پردازشی آن را در حداقل قرار دهید. به این شکل میتوانید به میزان قابل توجهای کارکرد سرور لینوکستان را افزایش دهید. همچنین دستور Top این امکان را به شما میدهد تا پردازشهای درحال اجرا را مشاهده کرده و براساس معیارهایی مثل مصرف رم، ویرایش کنید. تمامی این راهکارها در دسترس شما است تا برای بهبود عملکرد سیستم از آن بهره ببرید.
دستور Netstat
دستور Netstat همانطور که از نامش مشخص است، یک دستور قدرتمند برای رصد و بررسی آمارهای مرتبط با شبکه است. این دستور جزییات پیکربندی شبکه را به شما نشان میدهد و اطلاعاتی از قبیل کانکشنهای ورودی و خروجی را برای شما فهرست میکند.
برای استفاده از این دستور، شما ابتدا باید پکیج مرتبط با Net-Tools را نصب کنید. نصب این پکیج با دستور زیر قابل انجام است:
sudo apt-get update -y && apt-get install net-tools -y
حالا شما میتوانید آمار مرتبط با شبکهی خود را دریافت و با استفاده از پرچم –s مشکلات مرتبط را رفع کنید. بنابراین این دستور از مواردی است که بهعنوان Diagnostic Commands هم شناخته میشوند. برای این کار دستور زیر را وارد کنید:
netstat -s | less
شما میتوانید برای مشاهدهی آمار مرتبط به یک پروتکل خاص از نوع TCP از دستور زیر استفاده کنید:
netstat -st | less
همچنین میتوانید برای رفع مشکل مشاهدهی سرویسها بهوسیلهی PID، از دستور زیر استفاده کنید:
netstat -tp | less
دستور HTop
این دستور مشابه با دستور Top است. اطلاعات مرتبط با پردازشهای سیستم را به شما نشان میدهد و میزان مصرف CPU، رم و میزان مصرف هر پردازش و امکان ویرایش آن را در اختیار شما میگذارد. نکتهی جالب توجه در HTop، ظاهر متفاوت و بهینهی آن است. در دستور HTop شما میتوانید با راحتی بیشتری اطلاعات موردنظرتان را پیدا کنید. از طرف دیگر، در این دستور، شما میتوانید بدون آنکه از این دستور خارج شوید، ویرایشهای موردنظر خودتان را اعمال کنید، چرا که عملکرد موس در این دستور پشتیبانی میشود و نیازی به خروج از محیط آن ندارید.
برخلاف دستور Top، این دستور بهشکل پیشفرض روی توزیعهای لینوکسی نصب نیست و شما باید آن را از طریق مدیریت پکیج سیستم خودتان نصب کنید.
Acct/Psacct
دستور Acct یا PsAcct یک برنامهی ایدهآل برای سرورهای لینوکسی چندکاربره است. در اینجا شما میتوانید فعالیت هرکاربر و برنامههای مورد استفادهی او را رصد کنید. این برنامه در پیشزمینه اجرا میشود تا فعالیتهای کاربر و مصرف منابع او را رصد کند. این دستور، زمان دسترسی کاربر به سرور، دستورات مورداستفاده وهمچنین پردازشهای فعال را نمایش میدهد.
برای استفاده از این دستور باید برنامه را نصب کنید. سپس شما میتوانید با دستور Accton آن را فعال کرده و فایلهای آن را در مسیر /var/account/pac پیدا کنید. این ابزار به عنوان یک دستور، میتواند به همراه ابزارهای دیگری مانند Ps یا WHO به کار گرفته شود تا مشکلات مرتبط دیگر در سیستم را شناسایی کند.
IOTop
دستور IOTop یک دستور با پایهی پایتون است که میتواند پردازشهای ورودی و خروجی سیستم را براساس میزان مصرف آنها فهرست کند. این ابزار به شما در پیدا کردن پردازشهایی با مصرف دیسک بالا کمک میکند. برای استفاده از این ابزار، ابتدا باید آن را از طریق دستور زیر نصب کنید:
sudo iotop
این ابزار یکی از بهترین موارد برای شناسایی پردازشهایی با مصرف بالای حافظهی موقت و فعالیت سنگین روی دیسک است که با استفاده از آن میتوانید مصرف منابع را روی سرور لینوکس خود رصد کنید.
نرمافزارهای مانیتورینگ سرور لینوکس
در کنار دستوراتی که برای مانیتورینگ سرور لینوکس موجود است، چند نرمافزار کاربردی هم وجود دارند که با ظاهر بهتر و ترکیب اطلاعات، میتوانند به شما در شناسایی بهتر مشکلات وهمچنین مانیتورینگ ۲۴ ساعته کمک کنند. در ادامه چند گزینه از بهترین برنامهها را به شما معرفی میکنیم.
برنامه Zabbix
برنامهی زابیکس که یک برنامهی منبعباز یا Open-Source است، روشی مناسب برای مانیتورینگ هرنوع سرور، شبکه، ابر، برنامه و حتا دیتابیس است. شما میتوانید از این برنامه برای مانیتورینگ سرور لینوکس خودتان بهره ببرید و معیارهای عملکردی مانند مصرف پردازنده، شبکه، پهنای باند و فضای موجود دیسک را دریافت کنید.
از مزایای زابیکس میتوان به ردپای کوچک، پشتیبانی از شناسایی و اتصال خودکار سرور لینوکس با سرور زابیکس اشاره کرد. همچنین وجود یک جامعهی کاربری بزرگ و آنلاین به شما این امکان را میدهد تا هرمشکل و پرسشی که داشتید را در لحظه بپرسید و جواب بگیرید. پیکربندی و مراحل آغازین پیچیده از معایب این نرمافزار هستند. همچنین Zabbix به یک سرور دیتابیس برای ذخیرهی پیکربندیها نیازمند است.
Prometheus and Grafana
با استفاده از برنامههای Prometheus و Grafana، شما میتوانید سرور لینوکس خود را رصد کنید. این دو برنامه بهشکل منبع باز بوده و رایگان هستند. برنامهی Prometheus اطلاعات سختافزاری و سیستمعامل سرور را در بازههای زمانی متوالی ذخیره میکند و برنامهی Grafana این اطلاعات را بهشکل مناسبتری نمایش میدهد. شما از طریق داشبورد برنامهی Prometheus میتوانید بهراحتی به برنامهی Grafana متصل شوید.
برای استفادهی کامل از این ابزار، باید یک Node Exporter را نصب کنید تا اطلاعات مرتبط با سختافزار را جمعآوری کرده و در اختیار Prometheus برای پردازش قرار دهد. از مزایای این ابزار میتوان مدلسازی چندبعدی دیتا را نام برد که برای سرورهای لینوکس توزیعشده مناسب است. همچنین پشتیبانی از شناسایی خودکار سرورهای لینوکس و نیاز اندک به منابع زیرساختی از دیگر مزایای این برنامه است. توجه داشته باشید که این برنامه قابلیت مقیاسبندی خودکار ندارد و همچنین برای برخورداری از داشبورد و ظاهر مناسب باید برنامهی Grafana را هم راهاندازی کنید.
Nagios Core
برنامهی دیگری که بهشکل Open-source برای نظارت به سرورهای لینوکسی وجود دارد، Nagios Core است که میتواند به وسیلهی افزونههای سفارشی، کاربردهای بیشتری هم پیدا کند. این برنامه از راه دور، افزونههای متفاوتی را روی سرور لینوکس شما اجرا میکند که به شما اطلاعات مهمی دربارهی سیستمعامل، وضعیت پردازشی، CPU، رم، میزان پینگ و فضای استفادهشدهی دیسک میدهد.
این برنامه تاریخچهای از گزارشها و لاگهای قبلی را در اختیار شما میگذارد تا بتوانید در شرایط مختلف بهترین تصمیم را با توجه به گذشتهی سیستم بگیرید.همچنین شما میتوانید هشدارهایی را به شکل ایمیل یا پیامک برای مشکلات ممکن، پیکربندی کنید که اگر دسترسی سریع به سرور نداشتید، کنترل شما از دست نرود و امکان Debug کردن فراهم باشد.
این برنامه میتواند به شکل خودکار سرورها یا برنامههایی که به مشکل خوردهاند را راهاندازی کند وهمچنین برای ارتقا سرور لینوکس، از برنامهریزی ظرفیتی پشتیبانی میکند. بد نیست بدانید که Nagios Core به شکل بومی روی سیستمهای لینوکسی اجرا میشود. هرچند این برنامه امکان کشف خودکار را برای میزبان و سرویسها ارایه نمیکند و همچنین تنظیم دستی افزونهی NRPE در سرور لینوکس مدنظر کمی پیچیده است.
Elastic Stack
برنامهی Elastic Stack از برنامههای شناختهشده در زمینهی نظارت بر عملکرد لینوکس است. این برنامه یک نرمافزار چند منظوره است که از این بخشها تشکیل شده است، در این برنامه Elasticsearch برای جستوجوی متنکامل یا Full-text، Logstash برای جمع کردن گزارشها و لاگها، Kibana برای تصویرسازی به وسیلهی گرافها و نمودارها و Beats برای گردآوری معیارهای سبک است.
شما میتوانید همهی امکانات این برنامه را با نصب برنامهی Metricbeat که نوعی Elastic Beat است، داشته باشید. با نصب این برنامه و پیکربندی آن روی جمعآوری دادهها به شکل متناوب، میتوانید اطلاعات کاملی از سرور لینوکسی خود روی Elastic Stack داشته باشید.
این برنامه از یکپارچگی فایلها و دادههای بازبینیشده بهوسیلهی Auditbeat پشتیبانی میکند. همچنین با استفاده از آن، بهشکل خودکار امکان نظارت بر ترافیک شبکه به وسیلهی Packetbeat فعال میشود. این برنامه از جامعهی کاربری بزرگی برخوردار است که میتواند در مواقع حساس به شما کمک کند.
از معایب Elastic Stack باید به پیچیدگی راهاندازی اولیهی آن اشاره کرد که برای سیستمهایی با اجزای پشتهی چندگانه میتواند هزینهبر باشد.
برنامه Datadog
برنامهی دیگری که میتوانید برای مانیتورینگ سرورهای لینوکس استفاده کنید، برنامهی Datadog نام دارد. دیتاداگ یک برنامهی SaaS است که با سیستمهای لینوکسی و یونیکسی سازگار است. شما میتوانید روی سرور لینوکسی خود، برنامهی واسطهی Datadog را نصب کنید. این برنامه بهشکل خودکار دادههای استاندارد عملکرد سرور را جمعآوری و به اکانت Datadog شما ارسال میکند. به این شکل میتوانید دسترسی لحظه به لحظه به وضعیت سرور خود داشته باشید.
برای آنالیز و مانیتورینگ دادههای سرور لینوکس شما، برنامهی Datadog داشبوردهای تعاملی متنوعی دارد. همچنین میتوانید هشدارهای خودکار سرور را برای آستانهی عملکرد، تخلفها یا ناهنجاریهای سیستماتیک تنظیم کنید. همچنین از ارسال اعلان از طریق ایمیل، اسلک، webhooks و PagerDuty پشتیبانی میکند.
از مزایای Datadog میتوان به امکان نظارت بر سلسلهپردازشها یا Process Trees نام برد. همچنین این برنامه امکان تشخیص کمبود رم و خطاهای سیستمی را دارد و میتواند تهدیدهای امنیتی را هم در پردازشهای سیستمی شناسایی کند. به یاد داشته باشید که کار اولیه با این برنامه ممکن است کمی گیجکننده به نظر برسد و نصب و راهاندازی اولیه میتواند کمی وقتگیر باشد.
سرور ابری لینوکس؛ راهحلی متفاوت
اگر به سرور لینوکس نیاز دارید، یکی از بهترین راهها استفاده از سرور ابری لینوکس است. در این روش، شما فقط به میزانی که از منابع مختلف استفاده میکنید، هزینه میپردازی و همچنین از هزینههای سنگین پشتیبانی و نگهداری تجهیزات معاف میشوید. سرور ابری لینوکس ابر آروان گزینهای ایدهآل برای افرادی است که قصد دارند یک سرور لینوکس با نظارت کامل بر عملکرد آن داشته باشند. ابر آروان با مانیتورینگ پیوسته سرور لینوکستان، همهی پیشآمدهایی را رصد کرده و نتایج آن را در قالب گزارشهای تصویری به شما ارایه میدهد.
اگر به فکر تهیهی یک سرور لینوکس هستید، بهتر است همین حالا برای تهیه سرور ابری لینوکس ابر آروان اقدام کنید.