کامپیوتر، مهندسی ۵۵۹ بازدید

در این راهنما مراحل نصب 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 می‌توانید همه میزبان‌ها و سرویس‌هایی که مورد نظارت دارید را مشاهده کنید.

سخن پایانی

توجه کنید که برای نظارت روی میزبان‌ها و برخی از سرویس‌های دیگر، ممکن است بخواهید زمانی را صرف بررسی میزبان‌ها و سرویس‌ها بکنید تا دریابید که کدام یک از آن‌ها برای شما مهم‌تر هستند و باید آن‌ها را مورد نظارت قرار دهید. همچنین ممکن است بخواهید اطلاع‌رسانی را نیز فعال کنید، برای نمونه زمانی که مصرف دیسک شما به حد هشدار یا آستانه بحرانی رسید یا وب‌سایت اصلی داون شد، یک ایمیل دریافت کنید تا بتوانید پیش از این که هر گونه مشکل جدی رخ بدهد وضعیت را مدیریت کنید.

اگر این مطلب برایتان مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«میثم لطفی» در رشته‌های ریاضیات کاربردی و مهندسی کامپیوتر به تحصیل پرداخته و شیفته فناوری است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار با مجله فرادرس همکاری دارد.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد.

مشاهده بیشتر