Monit چیست؟ آشنایی با ابزار مانیتورینگ لینوکس
در این مقاله میخوانید
Monit ازجمله ابزارهای محبوب مانیتورینگ برای لینوکس و یونیکس بهشمار میآید. مانیتورینگ یکی از سیستمهای ضروری هر سرور است که تمامی اطلاعات را نشان میدهد. هر صاحب وبسایت یا سروری احتیاج دارد تا دادههای سرور خود را روی صفحهای جامع مشاهده کند تا درصورت نیاز، اقدامهای لازم را انجام دهد. Monit قابلیتهای کاربردی مانند تکرار خودکار عملیاتها و مانیتورینگ قوی دارد. در این مقاله، ابزار Monit را معرفی میکنیم و روش نصب و استفاده از آن در انواع توزیعهای لینوکس را شرح میدهیم.
خرید سرور لینوکس با قابلیت نصب Monit از پارس پک
شما میتوانید از این مقاله برای مدیریت سرورهای لینوکس با قابلیت نصب Monit خود استفاده کنید و اگر قصد خرید هر یک از سرویسهای لینوکسی پارس پک را دارید، میتوانید با کارشناسان فروش ما در ارتباط باشید. همچنین، شما میتوانید برای اطلاع از تعرفهها و هزینهها به لینکهای زیر مراجعه کنید.
Monit چیست؟
Monit ابزار منبعباز رایگان و مفیدی است که بهطورخودکار فرایندها، فایلها، دایرکتوریها، Checksumها، مجوزها، فایلهای سیستمی و سرویسهایی مانند Apache ،Nginx ،MySQL ،FTP ،SSH و SMTP را در یونیکس یا لینوکس نظارت (مانیتورینگ) و مدیریت میکند. این ابزار سیستمها و قابلیتهای نظارتی عالی و مفیدی به مدیران سیستم ارائه میدهد.
سیستم مانیتورینگ Monit رابط کاربری زیبایی دارد که با استفاده از آن میتوانید مستقیماً وضعیت سیستم و فرایندهای راهاندازی را با استفاده از وب HTTP(S) یا رابط خط فرمان مشاهده کنید. برای دسترسی و مشاهده رابط وبسایتی Monit، باید وب سروری مانند Apache یا Nginx را روی سیستم خود نصب کنید.
Monit چه کاریهایی انجام میدهد؟
Monit این قابلیت را دارد که درصورت اجرانشدن فرایند و پاسخگونبودن آن، فرایندی را مجدداً راهاندازی و درصورت استفاده زیاد از منابع، انجام فرایندی را متوقف کند. علاوهبراین، از Monit برای نظارت بر فایلها و دایرکتوریها، تغییرات فایلهای سیستمی، تغییرات Checksum، تغییرات اندازه فایل یا تغییرات Timestamp میتوانید استفاده کنید.
با Monit میتوانید پورت TCP/IP و پروتکلهای سرور لینوکس آرو پینگ هاستهای راه دور را نظارت کنید. Monit فایل گزارش خود را نگه میدارد و درصورت مشاهده هرگونه شرایط خاص، هشدارهای لازم را ارسال میکند.
آموزش قدم به قدم نصب Putty در لینوکس و اتصال به سرور لینوکسی از طریق سیستم عامل لینوکس را در مقاله زیر بخوانید.
مزایای Monit
- فرایندهای نظارت
- فایلهای مانیتورینگ
- نظارت بر دایرکتوریها
- دستگاهها و ابزارهای نظارتی
- مانیتورینگ میزبان از راه دور
- تست پروتکل
- رابط وب
نصب و پیکربندی Monit در لینوکس
Monit ابزاری پیشرفته با قابلیتهای فراوان است که میتواند روی سیستمعامل لینوکس نصب و اجرا شود. درادامه، هرآنچه برای نصب و راهاندازی Monit در لینوکس نیاز دارید، توضیح میدهیم.
برای اینکه بتوانید ایرادهای احتمالی سرورها را شناسایی کنید، به ابزارهای نظارت و بررسی مانند 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 را اضافه کردید، بسته Monit را با اجرای دستور yum زیر نصب کنید:
# yum install monit OR # dnf install monit [On Fedora Linux]
در اوبونتو و Debian و Linux، کاربران با استفاده از دستور apt زیر میتوانند بسته Monit را نصب کنند:
$ sudo apt install monit
مرحله دوم: پیکربندی Monit در لینوکس
Monit پیکربندی آسانی دارد؛ زیرا فایلهای پیکربندی آن را میتوانید بخوانید و درک کنید و آن را مطابق خواستههای خود پیکربندی کنید. بهطورپیشفرض Monit برای نظارت هر ۲ دقیقه بر سرورهای در حال اجرا طراحی شده است و گزارشها را در /var/log/monit نگه میدارد.
Monit رابط کاربری تحتوبی دارد که با استفاده از وب سرور روی پورت ۲۸۱۲ اجرا میشود. برای فعالکردن رابط کاربری تحتوب، باید تغییراتی در فایل پیکربندی Monit ایجاد کنید. فایل پیکربندی اصلی Monit برای 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
خروجی میتواند ازاینقرار باشد:
اکنون با رفتن به URLهای زیر، میتوانید به رابط وب Monit دسترسی پیدا کنید:
http://localhost:2812 OR http://ip-address:2812 Or http://example.com:2812
درادامه، نام کاربری را admin و رمزعبور را monit وارد کنید. پس از تأیید، صفحه مانیتورینگ را مشاهده خواهید کرد.
مرحله سوم: افزودن خدمات لینوکس به نظارت بر مانیتورینگ
هنگامیکه رابطهای وب Monit بهدرستی پیکربندی شدند، برنامههایی که میخواهید نظارت کنید، برای RedHat و CentOS و Fedora به فایل /etc/monitrc و برای Ubuntu و Debian و Linux Mint به فایل /etc/monit/monitrc اضافه کنید. درادامه، چند نمونه پیکربندی مفید برای monit را ذکر کردهایم که میتواند برای مشاهده نحوه اجرای سرویس، محل نگهداری نمایه، نحوه شروع و توقف سرویس و… مفید باشد.
۱. مانیتور آپاچی در Monit
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 در Monit
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"
۳. مانیتور 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"
۴. مانیتور MySQL در Monit
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
۵. مانیتور 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
وقتی همه برنامهها را برای نظارت پیکربندی کردید، باید وجود خطا در Monit را بررسی کنید تا اگر خطایی پیدا شد، آنها را برطرف کنید. شناسایی نوع خطای رخداده نیز آسان است. هنگامیکه پیامی مانند Control file syntax OK دریافت کردید یا اگر خطایی مشاهده نکردید، میتوانید ادامه دهید:
# monit -t Or $ sudo monit -t
پس از رفع تمامی خطاهای احتمالی، میتوانید دستور زیر را تایپ کنید تا سرویس Monit راهاندازی شود:
# systemctl monit restart OR $ sudo systemctl monit restart
پس از افزودن تمام سرویسهای لینوکس برای نظارت، مانیتورینگ بهصورت زیر خواهد بود:
در مقاله زیر معرفی ۱۰ ابزار پرکاربرد نظارت بر ترافیک شبکه اوبونتو را بخوانید.
۶. تست ویژگیها و راهاندازی مجدد سرویس
برای تست ویژگیها و عملکرد، با دستور زیر میتوانید این سیستم را متوقف کنید:
$ sudo systemctl stop proftpd
پس از متوقفکردن سرویس، باید اعلان ایمیلی درباره توقف سرویس دریافت کنید. در ۱۲۰ ثانیه Monit سعی میکند سرویس را دوباره راهاندازی کند. همچنین، گزارشها باید در فایل log /var/log/monit.log باشند:
cat /var/log/monit.log
۷. نحوه پیکربندی هشدارها در Monit
اگر میخواهید همیشه از تازهترین بهروزرسانیها درباره فرایندهای نظارتشده مطلع شوید، هشدارها را باید فعال کنید تا درصورت بروز هرگونه خطایی، Monit ایمیلی به آدرس مشخصشده ارسال کند. برای فعالکردن این گزینه، چند خط را در فایل پیکربندی اصلی باید تغییر دهید.
۸. تنظیم آدرس ایمیل هشدار
بهطورپیشفرض، Monit از هاست محلی برای ارسال ایمیل استفاده میکند. علاوهبراین، میتوانید چندین سرور ایمیل را مشخص کنید تا برای ارسال هشدارها استفاده شوند. اگر ارسال ایمیل ازطریق سرور اول شکست بخورد، Monit سرور دوم و… را اجرا میکند:
/etc/monit/monitrc set mailserver your.mail.server set alert your.mail.address
جمعبندی
Monit ابزار مانیتورینگ کارآمد منبعباز و رایگانی است که کاربردهای فراوانی دارد. در این مقاله از آموزش سیستم عامل، درباره قابلیتهای متنوع Monit مانند مانیتورینگ فایلها، دایرکتوریها، Checksumها و مجوزها، انجام دوباره عملیاتهای خودکارسازیشده و اطلاعرسانی هشدارهای مهم بهطورمفصل صحبت کردیم. همچنین، نحوه نصب آن در توزیعهای لینوکس و یونیکس را آموزش دادیم تا Monit را روی سرور خود بتوانید بهراحتی نصب و پیکربندی کنید.
سؤالات متداول
۱. Monit چه کاربردهایی دارد؟
Monit فرایندی را بهطورخودکار مجدداً راهاندازی و درصورت ازبینرفتن فرایند، با نظارت بر حافظه یا چرخههای CPU و هشدار ازطریق ایمیل اطلاعرسانی میکند. علاوهبراین، Monit میتواند سیستمهای کامپیوتری توزیعشده را نظارت و مدیریت کند.
۲. مانیتورینگ Monit چیست؟
Monit ابزاری برای مدیریت و نظارت بر فرایندها، برنامهها، فایلها، دایرکتوریها و فایلهای سیستمی در سیستم یونیکس و لینوکس است. ناگفته نماند Monit اقدامات تعریفشدهای را در موقعیتهای خطا و عملیاتهای نگهداری و تعمیر را بهطورخودکار انجام میدهد.
۳. Monit در لینوکس چگونه کار میکند؟
از Monit برای آزمایش برنامهها یا اسکریپتها در زمانهای خاص میتوانید استفاده و مقدار خروج از برنامه را آزمایش کنید و درصورتیکه مقدار خروج نشاندهنده خطا باشد، اقدامی انجام دهید یا هشدار ارسال کنید. این یعنی Monit بهمنظور انجام هر نوع بررسیای که میتوانید برایش اسکریپت بنویسید، بهکار برده میشود.
۴. فایل پیکربندی Monit در لینوکس کجاست؟
فایل پیکربندی اصلی Monit در /etc/monit قرار دارد: conf برای RedHat و CentOS و Fedora و /etc/monit/monitrc برای Ubuntu و Debian و Linux Mint.
۵. چگونه مانیتور را غیرفعال کنیم؟
- Kill /bin/bash /etc/init.d/arcsight_services start monit.
- Run /etc/init.d/arcsight_service stop monit.
۶. سیکل Monit چقدر است؟
۳۰ یا ۶۰ ثانیه فاصله مناسبی است؛ البته در برخی سیستمها این فاصله زمانی را میتوان تغییر داد.