بیشترین سوالی که بعد از خرید سرور مجازی ذهن کاربران را به خود درگیر میکند، این مسئله میباشد که چگونه میتوان سرویسهای اجرا شده در سرور لینوکسی را مانند Apache، MySQL، FTP، SSH، SMTP Nginx، دایرکتوریها، فایلها و … را با نصب monit نظارت کرد و از فرآیند کار آنها اطمینان حاصل نمود که به طور مداوم آنلاین هستند و اطلاعات درستی را به مخاطب ارجاع میدهند.
در این مطلب قصد داریم شما را با نصب Monit، این ابزار کاربردی آشنا نماییم تا بتوانید به راحتی امور مربوط به سرور ابری خود را مدیریت نمایید.
Monit ابزاری منبعباز و رایگان است که برای مدیریت و نظارت بر فایلها، برنامهها، فرآیندها، دایرکتوریها و فایلهای سیستمی در سرور لینوکس، کاربردی تلقی میشود.
این ابزار کاربردی، به صورت خودکار فرآیندهای درحال اجرا را برررسی میکند و در صورت بروز اختلال و یا استفاده بیش از حد از منابع، فرآیند را متوقف نموده و تعمیر و نگهداری خودکار آن سرویس را انجام میدهد.
Monit را علاوهبر نظارت برروی فایلها و دایرکتوریها، میتوانید در تغییرات Checksum، تغییرات اندازه فایل یا تغییرات Timestamp استفاده کنید.
مانیت ازطریق یک فایل با پیکربندی آسان و فرمت رایگان توسط کاربران کنترل میشود و در صورت بروز مشکل گزارشها را به syslog یا فایل log منتقل میکند و از طریق پیامهای هشدار که میتوانید گزینههای مختلفی را در آن تنظیم نمایید، در صورت بروز اختلال هشدارهای لازم را ارسال میکند.
به عنوان مثال، در صورت بروز حمله DOS در وب سرور آپاچی، مانیت میتواند آپاچی را متوقف نموده و آن را مجدد راه اندازی نماید و یک پیام هشدار برای کاربر ارسال کند.
Monit با استفاده از گواهینانه SSL میتواند بررسیهای مختلفی را در شبکه TCP/IP و پروتکلهای سرور انجام دهد و آن را از راه دور نظارت نماید.
این ابزار یک رابط HTTP(S) ارائه میدهد که میتوانید با مرورگر دلخواه خود برای دسترسی به آن استفاده کنید.
Monit چه فرآیندهایی را نظارت میکند
Monit برای نظارت برروی فرآیندهای درحال اجرا مانند sendmail، sshd، apache و mysql و نظارت مقدار حافظه یا چرخههای CPU یک فرآیند، استفاده میشود و برخلاف بسیاری از سیستمهای نظارتی، در صورت بروز خطا میتواند فرآیند را به صورت خودکار شروع نماید.
به عنوان مثال، در صورت توقف فرآیند کار sendmail، این ابزار فرآیند کار آن را مجدد شروع مینماید و یا در صورتی که وب سرور آپاچی از منابع زیادی استفاده کند، این عمل را به کاربر هشدار خواهد داد.
بیشتر بدانید : WAF چیست
Monit میتواند اتصالات شبکه به سرورهای مختلف را در هاست محلی و ریموت هاست، نظارت نماید. در این ابزار از سوکتهای دامنهTCP، UDP، Unix پشتیبانی میشود و دارای تست داخلی شبکه برای پروتکلهای اصلی اینترنت مانندHTTP، SMTP میباشد و در صورت عدم پشتیبانی پروتکل، میتوانید فرآیند موردنظر را در سرور ابری خود تست نمایید. زیرا میتوانید Monit را برای ارسال هرگونه داده و آزمایش پاسخ از سرور پیکربندی کنید.
با نصب monit میتوان برای آزمایش برنامهها یا اسکریپتها در زمانهای خاص استفاده کرد تا در صورت بروز مشکل اقدام به ارسال هشدار نماید.
در نهایت میتوانید به واسطه این ابزار، برای انجام هر نوع بررسی که میتوانید اسکریپت آن را بنویسید، استفاده کنید. در ادامه شما را با نصب Monit این ازار پیشرفته و کاربردی بر روی سیستم عامل لینوکس آشنا خواهیم نمود، پس تاپایان همراه ما باشید.
قبل از پرداختن به آموزش این ابزار کاربردی، میتوانید برای تست و آزمایش نصب Monit در چند ثانیه و تنها با چند کلیک سرور ابری رایگان خود را فعال نمایید.
روش نصب Monit در سرور لینوکسی
سادهترین روش نصب Monit با استفاده از دستور apt میباشد که میتوانید این دستور را در توزیعهای Debian، Ubuntu نصب و اجرا نمایید.
sudo apt-get install monit
درصورتی که Monit در ریپازتوری پیش فرض سیستم عامل شما در دسترس نباشد لازم است از مخزن epel استفاده نمایید.
برخلاف سیستم عامل ابونتو و دبیان که روش نصب آنها با استفاده از دستور apt میباشد، برای نصب مانیتورینگ Monit تحت توزیعهای مبتنیبر RHEL مانند CentOS ، fedora و Rocky Linux و AlmaLinux، ابتدا لازم است مخزن epel را دانلود نمایید.
--------- On RHEL 9 based Systems ---------
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
--------- On RHEL 8 based Systems ---------
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
--------- On RHEL 7 based Systems ---------
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
هنگامیکه مخزن epel را اضافه کردید، بسته Monit را با اجرای یکی از دستورات yum زیر نصب و اجرا نمایید.
# yum install monit
OR
# dnf install monit [On Fedora Linux]
پس از نصب، مانیت را با دستور زیر اجرا نمایید.
Monit
با اجرای دستور Monit status جزئیات ابزار مانیتورینگ را مشاهده نمایید.
The Monit daemon 5.3.2 uptime: 1h 25m System 'myhost.mydomain.tld' status Running monitoring status Monitored load average [0.03] [0.14] [0.20] cpu 3.5%us 5.9%sy 0.0%wa memory usage 26100 kB [10.4%] swap usage 0 kB [0.0%] data collected Thu, 30 Aug 2012 18:35:00
پس از نصب این ابزار مانیتورینگ لازم است پیکربندی آن را به دلخواه تنظیم نمایید. پیکربندی این ابزار بسیار راحت و قابل درک است و به راحتی میتوانید تایم نظارت بر سرور یا موارد دیگر را در آن تنظیم نمایید.
پیکربندی monit
برای اینکار کافیست پس از نصب، پیکربندی مانیت را از خطوط daemon و set logfile تغییر دهید.
بهطورپیشفرض Monit برای نظارت هر ۲ دقیقه بر سرورهای در حال اجرا طراحی شده است و گزارشها را در /var/log/monit ذخیره میکند.
Monit رابط کاربری تحتوبی دارد که برای فعال نمودن آن، لازم است تغییراتی در فایل پیکربندی این ابزار که با استفاده از وب سرور بر روی پورت ۲۸۱۲ اجرا میشود، ایجاد نمایید.
فایل پیکربندی اصلی مانیتورینگ Monit برای Ubuntu و Debian ،Linux Mint در قسمت /etc/monit/monitrc و برای RedHat و CentOS و Fedora در بخش /etc/monit.con قرار دارد که میتوانید آدرس IP یا نام دامنه سرور خود را اضافه کنید و یک کاربر و رمز عبور برای مانیتورینگ خود ایجاد کنید.
set httpd port 2812 and
use address 0.0.0.0 # only accept connections from localhost
allow 0.0.0.0/0 # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
allow @monit # allow users of group 'monit' to connect (rw)
allow @users readonly # allow users of group 'users' to connect readonly
بعداز اتمام پیکربندی و تعیین رمز، لازم است سرویس Monit را با اجرای دستور زیر مجدد بارگیری کنید تا تنظیمات پیکربندی جدید فعال شود.
monit reload
پس از بارگیری پیکربندی، میتوانید با مراجعه به آدرس زیر به رابط وب Monit دسترسی پیدا کنید و با نام کاربری و رمز عبور انتخابی خود وارد شوید.
example.com:2812
پس از ورود، صفحه ای به صورت زیر برای نمایان خواهد شد.
پیکربندی برنامهها در Monit
پس از راهاندازی سرویسهای وب، میتوانید برنامههای مورد نظر خود را برای نظارت در ابزار کاربری Monit اضافه نمایید.
برای افزودن برنامه در توزیعهای Ubuntu و Debian و LinuxMint به فایل /etc/monit/monitrc و برای RedHat و CentOS و Fedora به فایل /etc/monitrc مراجعه نمایید.
همچنین میتوانید برای اطمینان از آنلاین بودن برنامهها، از دستورات /etc/init.d، برای توقف یا شروع یک برنامه استفاده کنید.
در ادامه نصب monit شما را با چند نمونه از پیکربندیهای کاربردی در این ابزار آشنا خواهیم نمود تا به واسطه آنها بتوانید از اجرای سرویسها، شروع و توقف آنها و… مطلع شوید.
افزودن MySQL در monit
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
اضافه کردن ssh در monit
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/bin/systemctl sshd start"
stop program "/usr/bin/systemctl sshd stop"
if failed host 127.0.0.1 port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
افزودن Nginx در monit
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl nginx start"
stop program = "/usr/bin/systemctl nginx stop"
افزودن Apache در monit
check process apache with pidfile /run/apache2.pid
start program = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program = "/etc/init.d/apache2 stop"
پس از اتمام افزودن سرویسهای موردنظر در نصب Monit، اطلاعات سرویسها را به صورت زیر در یک صفحه به شما نمایش خواهد داد و در صورت خاموش شدن، آن سرویس را دوباره راهاندازی خواهد نمود.
کاربران میتوانند سرویسهای فعال شده در ابزار مانیتورینگ را از طریق رابط وب یا خط فرمان کنترل نمایند.
اکنون لازم است سرویسهای اضافه شده در Monit را با استفاده از دستور زیر بررسی نمایید و در صورت بروز خطا، آن را رفع کنید.
monit -t
پس از رفع تمامی خطاهای احتمالی در این ابزار، میتوانید دستور زیر را اجرا نمایید تا سرویس Monit راهاندازی شود.
monit start all
گزینههای بیشتر در Monit
Monit برای سهولت استفاده کاربران گزینههای بسیار فراهم آورده است تا به واسطه آن بتوانید به راحتی سرویسهای خود را نظارت نمایید، در ادامه به بررسی هریک خواهیم پرداخت.
g-
با اجرای این دستور در خط فرمان مانیت میتوانید نام گروه را برای شروع فرآیند، توقف، شروع مجدد، نظارت سرویس، حذف نظارت، وضعیت و عملکرد تنظیم نمایید.
s-
با اجرای این فرمان میتوانید اطلاعات کیفی را در فایل statefile بنویسید.
l-
با استفاده از این دستور میتوانید اطلاعات گزارش را در یک فایل چاپ کنید.
B-
این دستور حالت خط فرمان دستهای (شامل یک سری دستورات است که باید توسط کاربر خط فرمان اجرا و در یک فایل متنی ساده ذخیره شوند) را بدون خروجی جدول و بدون رنگ اجرا مینماید.
I-
این فرمان ابزار ماینت را در حالت پس زمینه اجرا نمیکند.
i-
این خط فرمان چاپ شناسه Monit را نمایش میدهد.
r-
این دستور شناسه Monit مجدد راه اندازی مینماید.
t-
با استفاده از این دستور میتوانید syntax را برای اجرای فایلها کنید.
V-
این دستور شماره نسخه و سطح پچ را چاپ و نمایش میدهد.
h-
با اجرای این فرمان میتوان متن راهنما را چاپ و نمایش داد.
آرگومانهای Monit
پس از نصب Monit میتوانید آن را با متصل شدن به یکی از پورتها به طور پیش فرض پورت TCP 127.0.0.1:2812، آرگومان موردنظر خود را فراخوانی کنید و عمل درخواستی را انجام دهید.
در واقع، فراخوانی monit بدون آرگومان، دیمون مانیت را شروع میکند، و فراخوانی مانیت با آرگومانها شما را قادر میسازد تا با فرآیند Monit دیمون ارتباط برقرار کنید. در ادامه شما را با کاربردیترین آرگومانهای این ابزار مانیتورینگ سرور لینوکسی آشنا خواهیم نمود.
start all
این آرگومان تمام سرویسهای فهرست شده در فایل را راه اندازی میکند و نظارت بر عملکرد آنها را فعال مینماید.
در صورتی که گزینه گروه خاصی به عنوان مثال (-g) تنظیم شده باشد، آرگومان start all فقط نظارت بر خدمات گروه نامگذاری شده را شروع میکند.
Start
Start<name|pattern >
با اجرای این آرگومان میتوانید سرویسهای نامگذاری شده را از فایل monitrc راه اندازی کنید و نظارتبر عملکرد آن را توسط مانیت آغاز نمایید.
stop all
این آرگومان تمام خدمات فهرست شده در فایل را متوقف نموده و نظارت بر فعالیت آنها را غیرفعال مینماید.
درصورتی که گزینه گروه خاصی تنطیم شده باشد، فقط نظارت برروی سرویس گروه نامگذاری شده را متوقف و غیرفعال مینماید.
stop
اجرای این آرگومان، فقط سرویسهای نامگذاری شده را متوقف و نظارتبر آن را غیرفعال مینماید.
stop<name|pattern>
restart all
اجرای این آرگومان تمامی خدمات و سرویسها را متوقف نموده و مجدد فعالیت آنها را شروع مینماید. درصورتی که گزینه گروه تنظیم شده باشد، فقط سرویس گروه نامگذاری شده را مجدداً راه اندازی میکند.
restart
با اجرای این آرگومان میتوانید سرویسهای نامگذاری شده را از فایل monitrc مجددا راه اندازی میکند.
restart<name|pattern>
monitor all
این آرگومان مانیتورینگ تمامی سرویسهای فهرست شده در فایل را فعال نموده و نظارت برآنها را آغاز مینماید. اگر گزینه گروه تنظیم شده باشد، فقط مانیتورینگ گروه نامگذاری شده شروع به فعالیت میکند.
monitor
اجرای این آرگومان نظارت بر سرویسهای نامگذاری شده را از فایل monitrc ، مجددا راه اندازی نموده و نظارت بر کلیه خدماتی که این سرویس به آنها وابسته است را فعال میکند.
monitor<name|pattern>
unmonitor
این آرگومان برخلاف آرگومانmonitor ، مانیتورینگ سرویسهای نامگذاری شده را از فایل monitrc، غیرفعال مینمایند و نظارتبر کلیه سرویسهایی را که به این سرویس وابسته است را متوقف میکند.
unmonitor<name|pattern>
[name|pattern] status
با اجرای این آرگومان اطلاعات وضعیت خدمات چاپ و نمایش داده خواهد شد.
[name|pattern] summary
این آرگومان خلاصهای از جزئیات وضعیت سرویسها را چاپ و نمایش میدهد.
reload
با اجرای این آرگومان یک سرویس درحال اجرا در Monit را مجدداً راه اندازی نموده و پیکربندی آن را دوباره بازخوانی میکند.
Validate
اجرای این آرگومان تمامی خدمات سرویسها را بررسی میکند. این آرگومان رفتار پیشفرض زمانی است که Monit در حالت Daemon اجرا میشود.
نکته مهم درباره Monit
اگر میخواهید بدانید ابزار مانیتورینگ نصب شده برروی سرور لینوکسی شما درحال انجام چه کاری است میتوانید با استفاده از سوئیچ -vو فایل log فرآیند آن را دنبال کنید.
برای تست و آزمایش نصب Monit میتوانید را با سوئیچ -Iv راه اندازی کنید و اطلاعات و مشکلات موجود در کنسول خود را مشاهده نمایید. درنهایت برای عدم فعالیت این ابزار مانتیورینگ CTRL^Cدر کنسول فشار دهید.
جمع بندی
Monit ابزاری برای مدیریت و نظارت بر فرآیندها، برنامهها، فایلها، دایرکتوریها و… در یک سیستم یونیکس است. به عنوان مثال مانیت میتواند فرآیندی را در صورت اجرا نشدن راهاندازی کند و اگر سرویسی از منابع زیادی استفاده کرد آن فرآیند را متوقف نماید. در این مقاله شما را با با نصب Monit برروی تمامی توزیعهای سرور لینوکس آشنا نمودیم تا بتوانید به راحتی این ابزار پیشرفته و کاربردی را در سیستم عامل لینوکسی خود پیاده سازی و مدیریت نمایید.
سلام
لطفا چند ابزار مشابه دیگه هم معرفی کنید
باسلام و وقت بخیر
ازجمله ابزارهای کاربردی برای نظارت بر سرور میتوان به Zabbix، Sematext و Nagios Core اشاره نمود که میتوانید در نسخههای پولی و رایگان از این ابزارها استفاده نمایید.
سلام و وقت بخیر
این ابزار برای نظارت چه فرایندهایی هست
باسلام خدمت کاربر عزیز ابر آسیاتک
Monit ابزاری منبعباز و رایگان است که برای مدیریت و نظارت بر فایلها، برنامهها، فرآیندها، دایرکتوریها و فایلهای سیستمی در سرور لینوکس، کاربردی تلقی میشود.
بسیار کاربردی و مفید بود
سپاس
سپاس از همراهی شما کاربر عزیز🙏
برای دیدن سطح پچ باید چه دستوری رو اجرا کنیم؟
با اجرای دستور V- در خط فرمان ابزار MONIT میتوانید نسخه و سطح پچ را چاپ و نمایش را مشاهده نمایید.