نصب Nagios 4 و نظارت روی سرورهای اوبونتو ۱۴.۰۴ – به زبان ساده


در این راهنما مراحل نصب Nagios 4 را بررسی میکنیم. Nagios یک سیستم نظارت متن-باز بسیار محبوب روی سرورهای اوبونتو 14.04 محسوب میشود. در این مقاله برخی پیکربندیهای ابتدایی را مطرح میکنیم که شما را قادر میسازد تا منابع میزبان را از طریق یک رابط وب مورد نظارت قرار دهید. همچنین از اجراکننده افزونه ریموت Nagios یعنی (NRPE) که به عنوان یک عامل روی سرورهای ریموت نصب میشود، بهره میگیریم تا منابع محلی آنها را مورد نظارت قرار دهیم.
Nagios برای زیر نظر گرفتن سرورها و اطمینان از این که همه سرویسها در حال اجرا هستند بسیار مناسب است. استفاده از یک سیستم نظارتی مانند Nagios، ابزاری ضروری برای هر محیط سرور production محسوب میشود.
پیشنیازها
برای مطالعه این راهنما باید دسترسیهای superuser را روی سرور اوبونتو 14.04 که Nagios را اجرا خواهد کرد داشته باشید. بدین منظور بهتر است از کاربری غیر root با دسترسیهای superuser استفاده کنید. اگر برای راهاندازی چنین سروری نیاز به کمک دارید، میتوانید از «آموزش Ubuntu» کمک بگیرید. ما به یک استک LAMP هم نیاز داریم. در این راهنما فرض میکنیم که سرور شما دارای شبکهبندی خصوصی است. اگر چنین نیست در همه موارد میتوانید آدرسهای IP خصوصی را با آدرسهای IP عمومی جایگزین کنید.
زمانی که همه پیشنیازها را آماده ساختهاید میتوانیم به بحث اصلی راهنما که نصب Nagios 4 است بپردازیم.
نصب Nagios 4
در این بخش مراحل نصب Nagios 4 روی سرور نظارتی را بررسی میکنیم. دستورالعملهای این بخش تنها یک بار باید انجام شود.
ایجاد کاربر و گروه Nagios
ابتدا باید یک کاربر و گروه ایجاد کنید که پروسه Nagios را اجرا خواهد کرد. بدین منظور یک کاربر به نام «nagios» و یک گروه به نام «nagcmd» ایجاد کنید و سپس با دستورات زیر آن کاربر را به این گروه اضافه کنید:
sudo useradd nagios sudo groupadd nagcmd sudo usermod -a -G nagcmd Nagios
نصب وابستگیهای Build
از آنجا که ما Nagios Core را از روی منبع آن میسازیم، باید چند کتابخانه توسعه را که به ما اجازه اجرای فرایند build را میدهند، نصب کنیم. همزمان apache2-utils را نیز نصب میکنیم که برای راهاندازی رابط وب Nagios لازم است. ابتدا فهرست بسته apt-get را بهروزرسانی کنید:
sudo apt-get update
سپس بستههای مورد نیاز را نصب کنید:
sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip
اینک میتوانیم Nagios را نصب کنیم.
نصب Nagios Core
کد منبع آخرین انتشار Nagios Core را دانلود کنید. بدین منظور باید به صفحه دانلود Nagios بروید و سپس روی لینک Skip to download در زیر صفحه بزنید. آدرس لینک آخرین انتشار پایدار را بزنید تا بتوانید سرور Nagios را دانلود کنید.
در زمان نگارش این مقاله آخرین انتشار پایدار نسخه Nagios 4.4.2 است. با استفاده از دستور curl آن را در دایرکتوری home دانلود کنید:
cd ~ curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.2.tar.gz
با دستور زیر آن را از حالت فشرده خارج سازید:
tar xvf nagios-*.tar.gz
سپس به دایرکتوری مربوطه بروید:
cd nagios-*
پیش از build کردن Nagios باید آن را پیکربندی کنیم. اگر میخواهید آن را با استفاده از postfix پیکربندی کنید (که با استفاده از apt-get قائل نصب است) فلگ with-mail=/usr/sbin/sendmail-- را به انتهای دستور زیر اضافه کنید:
./configure --with-nagios-group=nagios --with-command-group=nagcmd
اینک میتوانید با دستور زیر Nagios را کامپایل کنید:
make all
سپس دستورات زیر را اجرا کنید تا Nagios، اسکریپتهای init، و فایلهای پیکربندی نمونه را نصب نمایید:
sudo make install sudo make install-commandmode sudo make install-init sudo make install-config sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf
برای اینکه بتوانید دستورهای خارجی را از رابط وب Nagios صادر کنید، باید کاربر وبسرور www-data را به گروه nagcmd اضافه کنید:
sudo usermod -G nagcmd www-data
نصب افزونههای Nagios
جدیدترین نسخه از افزونههای Nagios را میتوانید از صفحه آن دانلود کنید. آدرس لینک جدیدترین نسخه افزونهها را دانلود کنید تا بتونید روی سرور Nagios دانلود کنید. در زمان نگارش این مقاله آخرین نسخه Nagios Plugins 2.2.1 بوده است. آن را با استفاده از دستور curl در دایرکتوری home خود دانلود کنید:
cd ~ curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
فایل فشرده Nagios Plugins را از حالت فشرده خارج کنید:
tar xvf nagios-plugins-*.tar.gz
به دایرکتوری مربوطه بروید:
cd nagios-plugins-*
پیش از build کردن باید آن را با استفاده از دستور زیر پیکربندی کنیم:
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
اینک میتوانیم Nagios Plugins را با دستور زیر پیکربندی کنیم:
Make
سپس با دستور زیر آن را نصب میکنیم:
sudo make install
نصب NRPE
کد منبع جدیدترین نسخه از NRPE را در صفحه دانلود مربوطه پیدا کنید و آخرین نسخه از سرور Nagios را دانلود نمایید. در زمان نگارش این مقاله آخرین نسخه منتشر شده 2.15 بوده است. آن را با استفاده از دستور curl در دایرکتوری home خود دانلود کنید:
cd ~ curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
NRPE را با دستور زیر از حالت فشرده استخراج کنید:
tar xvf nrpe-*.tar.gz
به دایرکتوری مربوطه بروید:
cd nrpe-*
NRPE را با دستورات زیر پیکربندی کنید:
./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
اینک میتوانید NRPE و اسکریپت آغازین xinetd آن را با استفاده از دستورات زیر build کرده و نصب نمایید:
make all sudo make install sudo make install-xinetd sudo make install-daemon-config
اسکریپت آغازین xinetd را در یک ویرایشگر باز کنید:
sudo vi /etc/xinetd.d/nrpe
خط only_from را با افزودن آدرس IP خصوصی سرور Nagios خود به انتهای آن تغییر دهید (دقت کنید که آدرس IP واقعی سرور خود را جایگزین کنید:
only_from = 127.0.0.1 10.132.224.168
فایل را ذخیره ساخته و خارج شوید. تنها سرور Nagios اجازه ارتباط با NRPE دارد. سرویس xinetd را ریاستارت کنید تا NRPE کار خود را آغاز کند:
sudo service xinetd restart
اینک که موفق شدید Nagios 4 را نصب کنید باید آن را پیکربندی کنیم.
پیکربندی Nagios
در این مرحله برخی پیکربندیهای ابتدایی را انجام میدهیم. این بخش کافی است یک بار روی سرور Nagios اجرا شود.
سازماندهی پیکربندی Nagios
فایل پیکربندی اصلی Nagios را در ویرایشگر مورد نظرخود باز کنید. ما از vi استفاده میکنیم:
sudo vi /usr/local/nagios/etc/nagios.cfg
اینک خط زیر را یافته و آن را با حذف # ابتدایی از حالت کامنت خارج سازید:
#cfg_dir=/usr/local/nagios/etc/servers
فایل را ذخیره کرده و ببندید. سپس یک دایرکتوری ایجاد میکنیم که فایل پیکربندی هر سرور که قرار است مورد نظارت قرار گیرد را در آن ذخیره خواهیم ساخت:
sudo mkdir /usr/local/nagios/etc/servers
پیکربندی مخاطبین Nagios
فایل پیکربندی مخاطبین Nagios را در ویرایشگر متنی مورد نظر خود باز کنید. ما از vi به این منظور استفاده میکنیم:
sudo vi /usr/local/nagios/etc/objects/contacts.cfg
راهنمای ایمیل را یافته و آدرس ایمیل خود را جایگزین کنید:
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
فایل را ذخیره ساخته و خارج شوید.
پیکربندی دستور check_nrpe
در این بخش دستور زیر را به پیکربندی Nagios اضافه میکنیم:
sudo vi /usr/local/nagios/etc/objects/commands.cfg
دستور زیر را به انتهای فایل اضافه کنید:
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
فایل را ذخیره ساخته و ببندید. بدین ترتیب میتوانید از دستور check_nrpe در تعریفهای سرویس Nagios استفاده کنید.
پیکربندی Apache
ماژولهای rewrite و cgi آپاچی را با دستورهای زیر فعال کنید:
sudo a2enmod rewrite sudo a2enmod cgi
از htpasswd برای ایجاد یک کاربر ادمین که «nagiosadmin» نام دارد استفاده کنید. این کاربر به رابط وب Nagios دسترسی خواهد داشت:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
یک رمز عبور در اعلان مربوطه وارد کنید. این رمز را به خاطر بسپارید زیرا برای دسترسی به رابط وب Nagios به آن نیاز خواهید داشت.
توجه کنید که اگر کاربری با نامی غیر از «nagiosadmin» ایجاد کردهاید، باید فایل usr/local/nagios/etc/cgi.cfg/ را نیز ویرایش کنید و همه ارجاعها به «nagiosadmin» را با نام کاربری که ایجاد کردهاید عوض کنید.
اینک میتوانید یک پیوند نمادین (symbolic link) به نام nagios.conf به دایرکتوری sites-enabled ایجاد کنید:
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
اینک Nagios آماده آغاز به کار است. آن را شروع و آپاچی را نیز ریاستارت میکنیم:
sudo service nagios start sudo service apache2 restart
برای فعالسازی آغاز خودکار Nagios در زمان بوت مجدد سرور باید دستور زیر را اجرا کنید:
sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
اختیاری: محدودسازی دسترسی به وسیله آدرس IP
اگر میخواهید آدرسهای IP که میتوانند به رابط وب Nagios دسترسی دارند محدود بکنید میتوانید فایل پیکربندی آپاچی را ویرایش کنید:
sudo vi /etc/apache2/sites-available/nagios.conf
دو خط زیر را یافته و با استفاده از نماد # در ابتدای آنها به حالت کامنت درآورید:
Order allow,deny Allow from all
سپس خطوط زیر را با حذف کردن نمادهای # از حالت کامنت خارج کنید و آدرسهای IP یا محدوده مورد نظر (با اسپیس جدا میشود) که میخواهید اجازه دسترسی داشته باشند در خط Allow from اضافه کنید:
# Order deny,allow # Deny from all # Allow from 127.0.0.1
از آنجا که این خطوط دو بار در فایل پیکربندی ظاهرمی شوند، بنابراین باید این مراحل را یک بار دیگر نیز اجرا کنید. فایل را ذخیره ساخته و خارج شوید. اینک میتوانید آپاچی را ریاستارت کنید تا تغییرات اعمال شوند:
sudo service nagios restart sudo service apache2 restart
اکنون Nagios در حال اجرا است و میتوانید آن را بررسی کنید.
دسترسی به رابط وب Nagios
مرورگر وب مورد علاقه خود را باز کنید و به سرور Nagios بروید (آدرس آیپی یا نام میزبانی خود را جایگزین کنید):
http://nagios_server_public_ip/nagios
از آنجا که آپاچی را برای استفاده از htpasswd پیکربندی کردهایم باید اطلاعات احراز هویت را که قبلاً ایجاد کردهایم در این بخش وارد کنیم. ما از «nagiosadmin» به عنوان نام کاربری استفاده میکنیم:
پس از احراز هویت صفحه اصلی پیشفرض Nagios را میبینید. بر روی پیوند Hosts در نوار ناوبری کلیک کنید تا ببینید که Nagios روی کدام میزبانها نظارت دارد:
میبینید که Nagios تنها روی localhost یعنی خودش نظارت دارد. در ادامه هاستهای دیگر را نیز تحت نظارت Nagois میبریم.
نظارت روی یک میزبان با استفاده از NRPE
در این بخش به شما نشان میدهیم که چگونه میتوانید یک میزبان جدید به Nagios اضافه کنید. مراحل زیر را برای هر سرور که میخواهید اضافه کنید باید تکرار نمایید. روی سروری که میخواهید تحت نظارت باشد ابتدا apt-get را بهروزرسانی کنید:
sudo apt-get update
اینک افزونهها و NPRE را نصب کنید:
sudo apt-get install nagios-plugins nagios-nrpe-server
پیکربندی میزبانهای مجاز
اکنون میتوانید فایل پیکربندی NRPE را پیکربندی کنید. آن را در ویرایشگر محبوب خود باز کنید:
sudo vi /etc/nagios/nrpe.cfg
راهنمای allowed_hosts را یافته و آدرس IP خصوصی سرور Nagios را به فهرستی که با کاما از هم جدا میشود اضافه کنید:
allowed_hosts=127.0.0.1,10.132.224.168
فایل را ذخیره کرده و خارج شوید. NRPE درخواستها از سمت سرور Nagios را از طریق آدرس IP خصوصی میپذیرد.
پیکربندی دستورهای NRPE مجاز
اینک باید Filesystem ریشه سیستم خود را بررسی کنید (زیرا یکی از مواردی است که باید مورد نظارت قرار دهیم):
Df –h /
از نام filesystem در پیکربندی NRPE برای نظارت بر فضای دیسک (احتمالاً در مسیر dev/vda/ است) استفاده میکنیم. اینک فایل nrpe.cfg را برای ویرایش باز کنید:
sudo vi /etc/nagios/nrpe.cfg
فایل پیکربندی NRPE بسیار طولانی است و کامنت های زیادی دارد. اما چند خط وجود دارند که باید آنها را تغییر دهیم:
- server_address - برابر با آدرس IP خصوصی میزبان تنظیم میشود.
- allowed_hosts – برابر با آدرس IP خصوصی سرور Nagios تنظیم میشود.
- command[check_hda1] – مسیر dev/vda/ را به مسیر filesystem ریشه خود تغییر دهید.
سه خطی که در بالا اشاره کردیم پس از تغییر باید به صورت زیر باشند (دقت کنید که شما باید موارد مورد نظر خود را درج نمایید):
server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
توجه کنید که چند دستور «commands» در این فایل تعریف شدهاند که در صورتی اجرا میشوند که سرور Nagios برای استفاده از آنها پیکربندی شده باشد. همچنین دقت کنید که NRPE روی پورت 5666 گوش میدهد، زیرا مقدار server_port=5666 تنظیم شده است. اگر فایروال شما این پورت را مسدود ساخته است مطمئن شوید که آن را به روی سرور Nagios باز کرده باشید. فایل را ذخیره ساخته و خارج شوید.
ریاستارت کردن NRPE
برای این که تغییرات اعمال شوند باید NRPE را ریاستارت کنیم:
sudo service nagios-nrpe-server restart
زمانی که NRPE روی همه میزبانهایی که قرار است نظارت شوند، نصب و پیکربندی شد، میبایست این میزبانها را پیش از آن که شروع به نظارت بر آنها بکنیم به فایل پیکربندی Nagios اضافه کنید.
افزودن میزبان به پیکربندی Nagios
در سرور Nagios یک فایل پیکربندی جدید برای هر میزبان ریموت که میخواهید نظارت شوند در مسیر usr/local/nagios/etc/servers/ ایجاد کنید. کلمه هایلایت شده «yourhost» را با نام میزبان خود جایگزین کنید:
sudo vi /usr/local/nagios/etc/servers/yourhost.cfg
تعریف میزبان زیر را اضافه کنید و مقدار host_name را با نام میزبانمیزبانی ریموتی ریموت خود تعویض کنید (در این مثال «web-1» است)، مقدار alias را با توصیف میزبان و مقدار address را با آدرس IP خصوصی میزبان ریموت عوض کنید:
define host { use linux-server host_name yourhost alias My first Apache server address 10.132.234.52 max_check_attempts 5 check_period 24x7 notification_interval 30 notification_period 24x7 }
در فایل پیکربندی فوق Nagios تنها نظارت میکند که یک میزبان روشن است یا خاموش. اگر این مسئله برای شما کافی است فایل را ذخیره کرده و بندید و Nagios را ریاستارت کنید. اگر میخواهید سرویسهای خاصی را مورد نظارت قرار دهید، ادامه این راهنما را مطالعه کنید.
هر کدام از این بلوکهای سرویس را برای سرویسهایی که میخواهید مورد نظارت قرار دهید به فایل پیکربندی اضافه کنید. توجه داشته باشید که check_commands آنچه را مورد نظارت قرار میگیرند تعیین میکنند که شامل مقادیر آستانه میشوند. در ادامه برخی مثالها ارائه شدهاند که میتوانید به فایل پیکربندی میزبان خود اضافه کنید:
Ping
define service {
use generic-service
host_name yourhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
SSH
دقت کنید که با قرار دادن مقدار notifications_enabled برابر با صفر، اعلانهای یک سرویس خاموش میشوند.
define service {
use generic-service
host_name yourhost
service_description SSH
check_command check_ssh
notifications_enabled 0
}
اگر مطمئن نیستید که منظور از use generic-service چیست، باید اشاره کنیم که این مقدار باعث میشود قالب، مقادیر خود را از سرویسی که «generic-service» نام دارد (سرویس پیشفرض) به ارث میبرد.
اینک میتوانید فایل را ذخیره ساخته و ببندید. پیکربندی Nagios را مجدداً بارگذاری کنید تا همه تغییرات اعمال شوند.
sudo service nagios reload
زمانی که تغییرات فوق را انجام دادید، Nagios آماده است که همه میزبانهای ریموت را تحت نظارت خود قرار دهد. با مراجعه به رابط وب Nagios و بررسی صفحه Services میتوانید همه میزبانها و سرویسهایی که مورد نظارت دارید را مشاهده کنید.
سخن پایانی
توجه کنید که برای نظارت روی میزبانها و برخی از سرویسهای دیگر، ممکن است بخواهید زمانی را صرف بررسی میزبانها و سرویسها بکنید تا دریابید که کدام یک از آنها برای شما مهمتر هستند و باید آنها را مورد نظارت قرار دهید. همچنین ممکن است بخواهید اطلاعرسانی را نیز فعال کنید، برای نمونه زمانی که مصرف دیسک شما به حد هشدار یا آستانه بحرانی رسید یا وبسایت اصلی داون شد، یک ایمیل دریافت کنید تا بتوانید پیش از این که هر گونه مشکل جدی رخ بدهد وضعیت را مدیریت کنید.
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- ابزارها و راهکارهای مدیریت وبسایتها
- تنظیم سرورهای محیط توزیع نهایی (Production) برای وب اپلیکیشن — راهنمای مقدماتی
- مجموعه آموزشهای پایگاه داده و سیستم های مدیریت اطلاعات
- توزیع وب اپلیکیشن ها در محیط Production — راهنمای جامع
- پشتیبانگیری و بازیابی فایلها در سیستمعامل لینوکس
- انتخاب پلتفرم مناسب برای ساخت اپلیکیشن — رایانه شخصی، وب، موبایل یا کراسپلتفرم
==