مدیریت سرورمقالات وب
چگونه به کمک افزونه NRPE هاست لینوکس را به سرور مانیتورینگ Nagios اضافه کنیم؟

در این مقاله به شما نشان خواهیم داد چگونه می توانید ماشین ریموت لینوکس و سرویس های آن را به هاست مانیتورینگ nagios اضافه کنیم. امیدواریم در حال حاضر Nagios را به درستی نصب و اجرا کرده باشید. بعد از اینکه آن را نصب کردید می توانید افزونه NRPE را بر روی هاست ریموت لینوکس نصب نمایید. در این مقاله همراه وب ایده باشید تا مراحل کار را با هم مرور کنیم.
NRPE چیست؟
افزونه NRPE به شما اجازه می دهد هر دستگاه شبکه یا سرویس لینوکس / یونیکسی را مانیتور کنید. این افزونه به Nagios اجازه می دهد هرگونه منبع محلی همچون بار CPU، Swap ، استفاده از حافظه و کاربران آنلاین را مانیتور کند. مهم تر از همه این است که چنین منابع محلی تقریبا در معرض دستگاه های خارجی نیستند و افزونه NRPE باید بر روی دستگاه ریموت نصب و پیکربندی شود.
نصب افزونه NRPE:
برای اینکه بتوانید از این گزینه استفاده کنید باید کارهایی را بر روی هاست مانیتورینگ Nagios و هاست ریموت لینوکس انجام دهید. سعی می کنیم هر کدام از بخش های نصب را به صورت جداگانه پوشش دهیم. قبل از هر چیزی فرض می کنیم که شما NRPE را بر روی هاستی نصب می کنید که از TCP wrappers پشتیبانی می کند و بر روی آن Xinted daemon نصب شده است.
این روزها بیشتر توزیع های مدرن لینوکسی این دو گزینه را به صورت پیش فرض در خود دارند. اگر نبود باید آن ها را نصب کنید.
بر روی هاست ریموت لینوکس:
برای نصب افزونه Nagios و NRPE daemon بر روی هاست لینوکس باید از دستورالعمل های زیر استفاده کنید.
گام اول: نصب Dependency های مورد نیاز
ما باید لایبرری های مورد نیاز را نصب کنیم:
# yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel -------------- On Fedora 22+ Onwards -------------- # dnf install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel
گام دوم: ایجاد کاربر Nagios
یک کاربر جدید و پسورد را ایجاد کنید. برای اینکار می توانید از دستور زیر کمک بگیرید:
# useradd nagios # passwd nagios
این مقاله را هم بخوانید: چگونه سیستم مانیتورینگ Nagios را بر روی اوبونتو 16.04 نصب کنیم؟
گام سوم: نصب افزونه Nagios
دایرکتوری را برای نصب و همه دانلودهای آینده ایجاد نمایید:
# cd /root/nagios
حالا آخرین نسخه از افزونه Nagios را به کمک دستور زیر دانلود کنید:
# wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz
گام چهارم: اکسترکت کردن افزونه
دستور زیر را برای اکسترکست کردن اجرا نمایید:
# tar -xvf nagios-plugins-2.1.2.tar.gz
بعد از اکسترکت کردن یک فولدر جدید در آن دایرکتوری ظاهر خواهد شد:
# ls -l total 2640 drwxr-xr-x. 15 root root 4096 Aug 1 21:58 nagios-plugins-2.1.2 -rw-r--r--. 1 root root 2695301 Aug 1 21:58 nagios-plugins-2.1.2.tar.gz
گام پنجم: کامپایل و نصب افزونه Nagios
حالا به کمک دستور زیر افزونه را کامپایل و نصب کنید:
# cd nagios-plugins-2.1.2 # ./configure # make # make install
دسترسی های مدنظر را به دایرکتوری افزونه بدهید:
# chown nagios.nagios /usr/local/nagios # chown -R nagios.nagios /usr/local/nagios/libexec
گام ششم: نصب Xinetd
بیشتر سیستم ها به طور پیش فرض این گزینه را دارند. اگر این گزینه وجود نداشت به کمک دستور زیر آن را نصب کنید:
# yum install xinetd -------------- On Fedora 22+ Onwards -------------- # dnf install xinetd
گام هفتم: نصب افزونه NRPE
آخرین نسخه از افزونه NRPE را به کمک دستور زیر دانلود کنید:
# cd /root/nagios # wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
به کمک دستور زیر سورس کد NRPE را از حالت پک درآورید:
# tar xzf nrpe-3.2.1.tar.gz # cd nrpe-3.2
افزونه NRPE را کامپایل و نصب کنید.
# ./configure # make all
حالا باید NRPE plugin daemon را نصب کنید:
# make install-plugin # make install-daemon # make install-daemon-config
NRPE daemon را تحت xinted به عنوان سرویس نصب کنید:
# make install-xinetd OR # make install-inetd
حالا فایل /etc/xinetd.d/nrpe را باز کنید و لوکال هاست و آی پی آدرس سرور مانیتورینگ Nagios را اضافه نمایید:
only_from = 127.0.0.1 localhost <nagios_ip_address>
در این مرحله باید فایل /etc/services را باز کنید و مقادیر زیر را برای NRPE daemon در انتهای فایل بیفزایید:
nrpe 5666/tcp NRPE
سرویس xinted را ریستارت کنید:
# service xinetd restart
گام هشتم: تایید NRPE Daemon به صورت محلی
دستور زیر را اجرا کنید تا NRPE Daemon را تایید نمایید:
# netstat -at | grep nrpe tcp 0 0 *:nrpe *:* LISTEN
اگر خروجی شبیه خروجی بالا دریافت کردید این موضوع بدین معنی است که کار را تا به اینجا درست انجام داده اید. اگر چنین خروجی دریافت نکردید موارد زیر را بررسی کنید:
- مطمئن شوید ورودی NRPE را به درستی به فایل /etc/services اضافه کرده اید
- only_from در برگیرنده ورودی برای nagios_ip_address در فایل /etc/xinetd.d/nrpe است
- xinted نصب و استارت شده است
- به دنبال خطا در فایل لاگ سیستم در مورد Xinted یا Nrpe باشید و در صورت نیاز خطاهای موجود را برطرف کنید.
حالا دستور زیر را اجرا کنید:
# /usr/local/nagios/libexec/check_nrpe -H localhost
خوب حالا خروجی زیر را خواهید داشت که نشان دهنده نسخه NRPE نصب شده است:
NRPE v3.2
گام نهم: پیکربندی قوانین فایروال
در این مرحله باید مطمئن شوید که فایروال بر روی ماشین محلی به NRPE daemon اجازه می دهد از سرویس ریموت دسترسی داشته باشد. برای اینکار باید دستور زیر را اجرا کنید:
-------------- On RHEL/CentOS 6/5 and Fedora -------------- # iptables -A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT -------------- On RHEL/CentOS 7 and Fedora 19 Onwards -------------- # firewall-cmd --permanent --zone=public --add-port=5666/tcp
برای ذخیره کردن قوانین جدید Iptable دستور زیر را اجرا کنید:
-------------- On RHEL/CentOS 6/5 and Fedora -------------- # service iptables save
گام دهم: سفارشی سازی دستورات NRPE
فایل پیکربندی پیش فرض NRPE که بر روی سیستم نصب شده است دستورات متعددی دارد که می توان از آن ها برای مانیتور کردن سیستم استفاده کرد.فایل پیکربندی در همان بخش قرار دارد.
# vi /usr/local/nagios/etc/nrpe.cfg
موارد زیر دستورات پیش فرضی هستند که در فایل پیکربندی قرار گرفته اند. ما فرض می کنیم که شما از این دستورات استفاده می کنید. می توانید به کمک دستورات زیر ان ها را بررسی کنید:
# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users USERS OK - 1 users currently logged in |users=1;5;10;0 # /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load OK - load average: 3.90, 4.37, 3.94|load1=3.900;15.000;30.000;0; load5=4.370;10.000;25.000;0; load15=3.940;5.000;20.000;0; # /usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1 DISK OK - free space: /boot 154 MB (84% inode=99%);| /boot=29MB;154;173;0;193 # /usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs PROCS CRITICAL: 297 processes # /usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs PROCS OK: 0 processes with STATE = Z
شما با ویرایش فایل پیکربندی NRPE می توانید دستورات را ویرایش کنید یا دستور جدید به آن بیفزایید. در نهایت شما افزونه NRPE را با موفقیت بر روی سیستم لینوکس نصب کرده اید. حالا زمان نصب کامپوننت های NRPE و برخی سرویس ها بر روی سرور Nagios فرا رسیده است.
بر روی سرور مانیتورینگ Nagios:
حالا وارد سرور مانیتورینگ خود شوید. در این مرحله باید کارهای زیر را انجام دهید:
- نصب افزونه check_nrpe
- ایجاد دستورات Nagios به کمک افزونه check_nrpe
- ایجاد هاست Nagios و اضافه کردن سرویس ها برای مانیتورینگ
گام اول: نصب افزونه NRPE
به دایرکتوری دانلود nagios بروید و آخرین نسخه از این افزونه را به کمک دستور زیر دانلود نمایید:
# cd /root/nagios # wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
به کمک دستور زیر سورس کد NRPE را از حالت پک در آورید:
# tar xzf nrpe-3.2.1.tar.gz # cd nrpe-3.2
افزونه های NRPE را کامپایل و نصب کنید:
# ./configure # make all # make install-daemon
گام دوم: تایید NRPE Daemon به صورت ریموت
مطمئن شوید که افزونه check_nrpe می تواند با NRPE daemon بر روی هاست لینوکس ریموت ارتباط برقرار کند. آی پی آدرس را در دستور زیر با آپی آدرس هاست لینوکس خود جایگزین کنید:
# /usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>
باید خروجی زیر را داشته باشید که نشان دهنده نسخه NRPE نصب شده بر روی هاست ریموت است:
NRPE v3.0
اگر خروجی دیگری دریافت کردید موارد زیر را بررسی کنید:
- مطمئن شوید که فایروال ارتباط بین هاست ریموت و هاست مانیتورینگ را مسدود نمی کند.
- اطمینان حاصل کنید که NRPE daemon به درستی نصب شده است
- مطمئن شوید که قوانین فایروال هاست ریموت لینوکس به درستی تنظیم شده است
اضافه کردن هاست لینوکس ریموت به سرور مانیتورینگ Nagios:
برای اضافه کردن هاست ریموت شما باید دو فایل جدید به نام های hosts.cfg و services.cfg در موقعیت “/usr/local/nagios/etc/” ایجاد کنید.
# cd /usr/local/nagios/etc/ # touch hosts.cfg # touch services.cfg
حالا این دو فایل را به فایل پیکربندی اصلی Nagios اضافه کنید. فایل nagios.cfg با ویرایشگر دلخواه خود باز کنید:
# vi /usr/local/nagios/etc/nagios.cfg
حالا دو فایل جدید ایجاد شده را همانند دستور زیر، اضافه کنید:
# You can specify individual object config files as shown below: cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg
حالا فایل hosts.cfg را باز کنید و نام قالب هاست پیش فرض را اضافه نمایید و هاست ریموت را همانند زیر تعریف کنید.
مطمئن شوید که گزینه host_name, alias را با جزییات هاست ریموت خود جایگزین می کنید:
# vi /usr/local/nagios/etc/hosts.cfg ## Default Linux Host Template ## define host{ name linux-box ; Name of this template use generic-host ; Inherit default values check_period 24x7 check_interval 5 retry_interval 1 max_check_attempts 10 check_command check-host-alive notification_period 24x7 notification_interval 30 notification_options d,r contact_groups admins register 0 ; DONT REGISTER THIS - ITS A TEMPLATE } ## Default define host{ use linux-box ; Inherit default values from a template host_name tecmint ; The name we're giving to this server alias CentOS 6 ; A longer name for the server address 5.175.142.66 ; IP address of Remote Linux host }
فایل services.cfg را باز کنید و سرویس های زیر را برای مانیتور کردن اضافه نمایید:
# vi /usr/local/nagios/etc/services.cfg define service{ use generic-service host_name tecmint service_description CPU Load check_command check_nrpe!check_load } define service{ use generic-service host_name tecmint service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use generic-service host_name tecmint service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name tecmint service_description SSH Monitoring check_command check_nrpe!check_ssh } define service{ use generic-service host_name tecmint service_description FTP Monitoring check_command check_nrpe!check_ftp }
حالا باید در فایل commands.cfg تعریف دستورات NRPE اضافه شود.
# vi /usr/local/nagios/etc/objects/commands.cfg
تعاریف زیر را در انتهای فایل اضافه کنید:
############################################################################### # NRPE CHECK COMMAND # # Command to use NRPE to check remote host systems ############################################################################### define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
در نهایت فایل پیکربندی Nagios را تایید کنید تا مطمئن شوید خطایی نداشته باشد:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg Total Warnings: 0 Total Errors: 0
nagios را به کمک دستور زیر ریستارت کنید:
# service nagios restart
خوب کار شما تمام شده است. حالا به رابط وب nagios بروید و نام کاربری و پسورد را وارد نمایید. ببینید هاست ریموت نصب شده و به درستی مانیتور می گردد یا خیر.