ابزار monit چیست؟
بهدنبال یک ابزار مانیتورینگ پرطرفدار برای لینوکس و یونیکس هستید؟ اصلا اهمیت مانیتورینگ و مدیریت سرور را میدانید؟ اگر بهدنبال یک ابزار مانیتورینگ موفق هستید، حتما اسم ابزار Monit را زیاد شنیدهاید. باید بدانید که مانیتورینگ خوب تا چه حد برای سرور بهخصوص در سیستمعامل لینوکس مهم است. بههرحال همیشه امکان این وجود دارد که سرور شما با مشکلاتی مواجه شود و شما در این شرایط نیاز به عیبیابی و کشف مشکلات احتمالی خواهید داشت.
پس هر وبمستر و دارنده وبسایت یا سرور احتیاج به سیستمی دارد که از آن طریق بتواند به اطلاعات، حافظه، سیپییو و تمامی فرآیندها دسترسی داشته و آنها را نظارت و اشکالات موجود را کشف و برطرف کند. در سیستم عامل لینوکس این مانیتورینگ دقیق را ابزارهایی مانند monit انجام میدهند. در واقع با وجود این ابزار کاربردی، دقیق و پرقدرت شما نگرانی از بابت مشکلات احتمالی نخواهید داشت. در ادامه این مقاله، با ما همراه باشید تا این ابزار رایگان و محبوب که بهصورت خودکار عمل کنترل و مانیتورینگ سرور را برای شما انجام میدهد، را معرفی کنیم و به شما بگوییم که چطور از این ابزار استفاده کنید.
ابزار monit
گفتیم که monit، یک ابزار پرقدرت و بسیار محبوب برای مانیتورینگ و مدیریت است که همهی فرآیندها، فایلها و پوشهها را نظارت و مدیریت میکند. این ابزار در سیستمهای لینوکسی عمل نظارت و مدیریت را بهصورت خودکار و رایگان بهعهده دارد. محبوبیت این سیستم به این علت است که از فایلها و پوشهها تا سرویسهایی مانند Apache، Nginx، My SQL و… همهوهمه را بررسی میکند و هرگونه ایرادی را بهشما اطلاع میدهد. monit، رابط کاربری جذابی دارد و ابزار نظارتی فوقالعادهای را در اختیار مدیران سایتها قرار میدهد. از طرفی کار کردن با این ابزار اصلا سخت نیست. برای دسترسی به رابط کاربری این ابزار نیاز به نصب یک وب سرور مانند آپاچی یا Nginx خواهید داشت.
Monit چه کاریهایی انجام میدهد؟
تا اینجا با ابزار monit برای نظارت و مدیریت سرورهای لینوکسی آشنا شدیم. حالا سوال اینجاست که این ابزار چه کارهایی انجام میدهد. یکی از مهمترین کارهایی که این ابزار انجام میدهد، نظارت بر پردازشهای daemon است. پردازشهایی که در پسزمینه سیستم بهصورت دائمی اجرا میشوند و آماده پاسخگویی به درخواستهای جدید هستند. بهطور مثال میتوان به سرورها اشاره کرد که تمام مدت درحال انجام عملیات و در انتظار درخواست و جستوجوی جدید کاربر هستند تا در کوتاهترین زمان به آن پاسخ دهند.
این ابزار درصورت بروز اختلال و خطا وارد عمل میشود و تصمیم میگیرد که از چهروشی خطا را برطرف کند و آن را بهصورت خودکار برطرف میکند. جالب است بدانید که خیلی از سیستمهای مانیتورینگ و مدیریتی این تصمیمگیری خودکار را ندارند. تصور کنید، sendmail درست کار نمیکند، یا سرور از منابع زیادی استفاده میکند یا…، در اینصورت ابزار monit وارد میشود و این ایرادات را برطرف میکند. همچنین این ابزار گزارشی از این عملیات را در قالب یک پیام دقیق برای شما ارسال میکند.
همانطور که پیشتر نیز گفتیم یکی دیگر از کاربردهای این ابزار، نظارت بر دادهها، فایلها و طبقهبندی و… در لوکال هاست شماست. این ابزار روی تغییرات برچسب زمانی، checksum و تغییرات ایجاد شده در حجم فایلها نظارت میکند. این ویژگی monit، امنیت را بالا میبرد. همچنین این ابزار امکان نظارت دقیق روی فایلها و جزئیاتی مثل md5 file checksum که نباید تغییر کنند را نیز به شما میدهد. ابزار کاربری و محبوب monit علاوهبر نظارت و مدیریت لوکال هاست امکان نظارت روی remote hosts را هم فراهم میکند. بنابراین باید بدانید که استفاده از این ابزار برای سرویسهای وابسته به remote server کاملا مناسب است. شما همچنین میتوانید از این ابزار برای مانیتورینگ منابع کلی سیستم و بررسیهایی مانند مصرف cpu، میانگین بارگذاری و بررسی حافظه و… نیز استفاده کنید.
نصب و پیکربندی Monit در لینوکس
حالا که با ابزار پیشرفته و کاربردی Monit آشنا شدید وقت آن رسیده که به نصب و راهاندازی این ابزار در لینوکس بپردازیم. پیشنهاد میکنیم این ابزار را برای عیبیابی و مدیریت سرور استفاده کنید و با این روش خیال خودتان را از سلامت سرورتان راحت کنید. خوشبختانه مراحل نصب و پیکربندی این ابزار و استفاده از آن بسیار ساده است و نیاز به تخصص خاصی ندارد.
مرحله اول: نصب Monit در لینوکس
برنامههای مانیتورینگ مانند Monit بهصورت پیشفرض روی سیستم وجود ندارند و شما باید این برنامه را از مخزنی مثل epel بگیرید. ابتدا مخزن مورد نظر را فعال و پیکربندی کرده و سپس ابزار Monit را تحت توزیعهای مبتنیبر RHEL مثل CentOS و Rocky Linux و AlmaLinux نصب کنید:
——— 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، نوبت به اجرای دستور Yum و نصب بسته Monit میرسد:
# yum install monit
OR
# dnf install monit [On Fedora Linux]
همچنین در اوبونتو، لینوکس و Debian میتوانید با دستور apt ابزار مونیت را نصب کنید:
sudo apt install monit
مرحله دوم: پیکربندی Monit در لینوکس
خوشبختانه پیکربندی ابزار Monit بسیار ساده است. شما بهراحتی میتوانید فایلهای مربوط به پیکربندی این ابزار را بخوانید و مطابق خواسته خود عملیات پیکربندی را تکمیل کنید. این ابزار بهطور پیشفرض هر دو دقیقه، سرور در حال اجرا را نظارت کرده و گرازشهای تهیهشده را در /var/log/monit ذخیره میکند. رابط کاربری تحت وب ابزار مونیت روی پورت 2812 و توسط وبسرور اجرا میشود. شما نیاز دارید برای فعالکردن رابط کاربری تحت وب این ابزار تغییراتی را در فایل پیشفرض پیکربندی ایجاد کنید. فایل پیکربندی اصلی این ابزار برای RedHat و CentOS و Fedora در آدرس /etc/monit.conf و برای Ubuntu و Debian و Linux Mint در آدرس /etc/monit/monitrc قابل دسترس است. شما میتوانید این فایل را با استفاده از ویرایشگری مانند Nano باز کنید:
# vi /etc/monitrc
Or
$ sudo nano /etc/monit/monitrc
سپس کدهای زیر را از کپی کرده و قبل از آن آدرس 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” و فعال و تاییدکردن آن میرسد تا تنظیمات جدید روی آن اعمال شود. برای این مرحله هم از دستور زیر استفاده کنید:
# systemctl start monit
# systemctl enable monit
# systemctl status monit
برای مشاهده خروجی به عکس بعدی توجه کنید:
همچنین برای دسترسی به رابط وب ابزار “monit” میتوانید به آدرسهای زیر سر بزنید:
http://localhost:2812
OR
http://ip-address:2812
Or
http://example.com:2812
حالا کافی است نام کاربری را admin و رمز عبور را مطابق شکل زیر وارد و تایید کنید. در این مرحله صفحه مانیتورینگ را مشاهده میکنید:
مرحله سوم: افزودن خدمات لینوکس به نظارت بر مانیتورینگ
بعد از اتمام مراحل پیکربندی ابزار Monit باید برنامههایی که قصد مانیتورینگ و مدیریت آنها را دارید به فایلهای مربوطه اضافه کنید. برای این منظور و درصورتی که از RedHat و CentOS و Fedora استفاده میکنید، آنها را به فایل /etc/monitrc و برای Ubuntu و Debian و Linux Mint از فایل /etc/monit/monitrc استفاده کرده و به این فایلها اضافه کنید. درادامه همین بخش، میتوانید چند مثال از پیکربندی ابزار monit را مشاهده کنید. این مثالها، میتوانند برای درک طریقه اجرای سرویس، نگهداری نمایه، روش شروع و توقف سرویس و… کاربردی و مفید باشند.
1. مانیتورینگ آپاچی در ابزار مونیت
check process httpd with pidfile /var/run/httpd.pid
group apache
start program = “/usr/bin/systemctl httpd start”
stop program = “/usr/bin/systemctl httpd stop”
if failed host 127.0.0.1 port 80
protocol http then restart
if 5 restarts within 5 cycles then timeout
2. مانیتورینگ آپاچی 2 در ابزار مونیت
check process apache with pidfile /run/apache2.pid
start program = “/usr/bin/systemctl apache2 start” with timeout 60 seconds
stop program = “/usr/bin/systemctl apache2 stop”
3. مانیتورینگ Nginx در ابزار مونیت
check process nginx with pidfile /var/run/nginx.pid
start program = “/usr/bin/systemctl nginx start”
stop program = “/usr/bin/systemctl nginx stop”
4. مانیتورینگ MySQL در ابزار مونیت
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = “/usr/bin/systemctl mysqld start”
stop program = “/usr/bin/systemctl mysqld stop”
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout
5. مانیتورینگ SSH در ابزار مونیت
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
بعد از اینکه همه برنامههای مورد نظرتان را برای مانیتورینگ و مدیریت، پیکربندی کردید، بررسی کنید که آیا خطایی در Monit وجود دارد یا خیر. خیلی مهم است که در این مرحله خطاهای احتمالی را برطرف کنید. پیداکردن خطاهای موجود هم بهسادگی انجام میشود. درصورتیکه پیغامی شبیه Control file syntax OK را مشاهده کردید، یا پیغامی مشاهده نکردید و خواستید از وجود نداشتن خطا مطمئن شوید کافی است از مسیر زیر ادامه دهید:
# monit -t
Or
sudo monit –t
پس از برطرفکردن خطاها در صورتی که خطایی مشاهده کردید، کافی است دستور زیر را اجرا کنید تا از این طریق سرویس مونیت را دوباره راهاندازی کنید.
# systemctl monit restart
OR
$
sudo systemctl monit restart
در عکس زیر میتوانید مشاهده کنید که پس از اضافهکردن سرویسهای لینوکس برای مانیتورینگ با تصویر زیر مواجه میشوید:
تا اینجا موفق شدید تمام مراحل نصب و پیکربندی سرویس مونیت را با موفقیت انجام دهید. حالا کافی است ویژگیها و عملکردها را تست کنید و تمام. همانطور که گفتیم، این ابزار یکی از بهترین انتخابهای منبع باز و رایگان برای مانیتورینگ و نظارت سرور است که امکانات بسیار خوبی را در اختیار مدیران سایتها قرار میدهد. شما میتوانید با مراحلی که در این مقاله بررسی کردیم خیلی راحت از این ابزار استفاده کنید و احتمال خطاهای غیرمنتظره در سرور را به صفر برسانید. همچنین فراموش نکنید که برای نصب مونیت، مشاوره و خرید سرور مجازی لینوکس، همین حالا میتوانید با دوریس هاست تماس بگیرید.