در این مقاله به شما نشان خواهیم داد چگونه می توانید ماشین ریموت لینوکس و سرویس های آن را به هاست مانیتورینگ nagios اضافه کنیم. امیدواریم در حال حاضر Nagios را به درستی نصب و اجرا کرده باشید. بعد از اینکه آن را نصب کردید می توانید افزونه NRPE را بر روی هاست ریموت لینوکس نصب نمایید. در این مقاله همراهامید احمدیانی باشید تا مراحل کار را با هم مرور کنیم.
NRPE چیست؟
افزونه NRPE به شما اجازه می دهد هر دستگاه شبکه یا سرویس لینوکس / یونیکسی را مانیتور کنید. این افزونه به Nagios اجازه می دهد هرگونه منبع محلی همچون بار CPU، Swap ، استفاده از حافظه و کاربران آنلاین را مانیتور کند. مهم تر از همه این است که چنین منابع محلی تقریبا در معرض دستگاه های خارجی نیستند و افزونه NRPE باید بر روی دستگاه ریموت نصب و پیکربندی شود.
نصب افزونه NRPE:
برای اینکه بتوانید از این گزینه استفاده کنید باید کارهایی را بر روی هاست مانیتورینگ Nagios و هاست ریموت لینوکس انجام دهید. سعی می کنیم هر کدام از بخش های نصب را به صورت جداگانه پوشش دهیم. قبل از هر چیزی فرض می کنیم که شما NRPE را بر روی هاستی نصب می کنید که از TCP wrappers پشتیبانی می کند و بر روی آن Xinted daemon نصب شده است.
این روزها بیشتر توزیع های مدرن لینوکسی این دو گزینه را به صورت پیش فرض در خود دارند. اگر نبود باید آن ها را نصب کنید.
بر روی هاست ریموت لینوکس:
برای نصب افزونه Nagios و NRPE daemon بر روی هاست لینوکس باید از دستورالعمل های زیر استفاده کنید.
گام اول: نصب Dependency های مورد نیاز
ما باید لایبرری های مورد نیاز را نصب کنیم:
————– On Fedora 22+ Onwards ————–
# dnf install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel
# 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
یک کاربر جدید و پسورد را ایجاد کنید. برای اینکار می توانید از دستور زیر کمک بگیرید:
# passwd nagios
# useradd nagios
# passwd nagios |
این مقاله را هم بخوانید: چگونه سیستم مانیتورینگ Nagios را بر روی اوبونتو ۱۶٫۰۴ نصب کنیم؟
گام سوم: نصب افزونه 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 |
بعد از اکسترکت کردن یک فولدر جدید در آن دایرکتوری ظاهر خواهد شد:
total 2640
drwxr-xr-x. 15 root root ۴۰۹۶ Aug ۱ ۲۱:۵۸ nagios-plugins-2.1.2
-rw-r–r–. ۱ root root 2695301 Aug ۱ ۲۱:۵۸ nagios-plugins-2.1.2.tar.gz
# ls -l
total 2640
drwxr–xr–x. 15 root root ۴۰۹۶ Aug ۱ ۲۱:۵۸ nagios–plugins–2.1.2
–rw–r—r—. ۱ root root 2695301 Aug ۱ ۲۱:۵۸ nagios–plugins–2.1.2.tar.gz |
گام پنجم: کامپایل و نصب افزونه Nagios
حالا به کمک دستور زیر افزونه را کامپایل و نصب کنید:
# ./configure
# make
# make install
# cd nagios-plugins-2.1.2
# ./configure
# make
# make install |
دسترسی های مدنظر را به دایرکتوری افزونه بدهید:
# chown -R nagios.nagios /usr/local/nagios/libexec
# chown nagios.nagios /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios/libexec |
گام ششم: نصب Xinetd
بیشتر سیستم ها به طور پیش فرض این گزینه را دارند. اگر این گزینه وجود نداشت به کمک دستور زیر آن را نصب کنید:
————– On Fedora 22+ Onwards ————–
# dnf install xinetd
# yum install xinetd
——————— On Fedora 22+ Onwards ———————
# dnf install xinetd |
گام هفتم: نصب افزونه NRPE
آخرین نسخه از افزونه NRPE را به کمک دستور زیر دانلود کنید:
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
# cd /root/nagios
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz |
به کمک دستور زیر سورس کد NRPE را از حالت پک درآورید:
# cd nrpe-3.2
# tar xzf nrpe-3.2.1.tar.gz
# cd nrpe-3.2 |
افزونه NRPE را کامپایل و نصب کنید.
# make all
# ./configure
# make all |
حالا باید NRPE plugin daemon را نصب کنید:
# make install-daemon
# make install-daemon-config
# make install-plugin
# make install-daemon
# make install-daemon-config |
NRPE daemon را تحت xinted به عنوان سرویس نصب کنید:
OR
# make install-inetd
# 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 ۵۶۶۶/tcp NRPE |
سرویس xinted را ریستارت کنید:
گام هشتم: تایید NRPE Daemon به صورت محلی
دستور زیر را اجرا کنید تا NRPE Daemon را تایید نمایید:
tcp ۰ ۰ *:nrpe *:* LISTEN
# netstat -at | grep nrpe
tcp ۰ ۰ *: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 daemon اجازه می دهد از سرویس ریموت دسترسی داشته باشد. برای اینکار باید دستور زیر را اجرا کنید:
# 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
——————— 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 دستور زیر را اجرا کنید:
# service iptables save
——————— On RHEL/CentOS 6/5 and Fedora ———————
# service iptables save |
گام دهم: سفارشی سازی دستورات NRPE
فایل پیکربندی پیش فرض NRPE که بر روی سیستم نصب شده است دستورات متعددی دارد که می توان از آن ها برای مانیتور کردن سیستم استفاده کرد.فایل پیکربندی در همان بخش قرار دارد.
# vi /usr/local/nagios/etc/nrpe.cfg |
موارد زیر دستورات پیش فرضی هستند که در فایل پیکربندی قرار گرفته اند. ما فرض می کنیم که شما از این دستورات استفاده می کنید. می توانید به کمک دستورات زیر ان ها را بررسی کنید:
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # /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 بروید و آخرین نسخه از این افزونه را به کمک دستور زیر دانلود نمایید:
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
# cd /root/nagios
# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz |
به کمک دستور زیر سورس کد NRPE را از حالت پک در آورید:
# cd nrpe-3.2
# tar xzf nrpe-3.2.1.tar.gz
# cd nrpe-3.2 |
افزونه های NRPE را کامپایل و نصب کنید:
# make all
# make install-daemon
# ./configure
# make all
# make install-daemon |
گام دوم: تایید NRPE Daemon به صورت ریموت
مطمئن شوید که افزونه check_nrpe می تواند با NRPE daemon بر روی هاست لینوکس ریموت ارتباط برقرار کند. آی پی آدرس را در دستور زیر با آپی آدرس هاست لینوکس خود جایگزین کنید:
# /usr/local/nagios/libexec/check_nrpe -H |
باید خروجی زیر را داشته باشید که نشان دهنده نسخه NRPE نصب شده بر روی هاست ریموت است:
اگر خروجی دیگری دریافت کردید موارد زیر را بررسی کنید:
- مطمئن شوید که فایروال ارتباط بین هاست ریموت و هاست مانیتورینگ را مسدود نمی کند.
- اطمینان حاصل کنید که NRPE daemon به درستی نصب شده است
- مطمئن شوید که قوانین فایروال هاست ریموت لینوکس به درستی تنظیم شده است
اضافه کردن هاست لینوکس ریموت به سرور مانیتورینگ Nagios:
برای اضافه کردن هاست ریموت شما باید دو فایل جدید به نام های hosts.cfg و services.cfg در موقعیت “/usr/local/nagios/etc/” ایجاد کنید.
# touch hosts.cfg
# touch services.cfg
# cd /usr/local/nagios/etc/
# touch hosts.cfg
# touch services.cfg |
حالا این دو فایل را به فایل پیکربندی اصلی Nagios اضافه کنید. فایل nagios.cfg با ویرایشگر دلخواه خود باز کنید:
# vi /usr/local/nagios/etc/nagios.cfg |
حالا دو فایل جدید ایجاد شده را همانند دستور زیر، اضافه کنید:
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.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 را با جزییات هاست ریموت خود جایگزین می کنید:
## Default Linux Host Template ##
define host{
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period ۲۴x7
check_interval ۵
retry_interval ۱
max_check_attempts ۱۰
check_command check-host-alive
notification_period ۲۴x7
notification_interval ۳۰
notification_options d,r
contact_groups admins
register ۰ ; 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 ۵٫۱۷۵٫۱۴۲٫۶۶ ; IP address of Remote Linux host
}
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ | # 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 ۲۴x7
check_interval ۵
retry_interval ۱
max_check_attempts ۱۰
check_command check–host–alive
notification_period ۲۴x7
notification_interval ۳۰
notification_options d,r
contact_groups admins
register ۰ ; 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 ۵٫۱۷۵٫۱۴۲٫۶۶ ; IP address of Remote Linux host
} |
فایل 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
}
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ ۵۱ ۵۲ ۵۳ ۵۴ ۵۵ ۵۶ ۵۷ ۵۸ ۵۹ ۶۰ ۶۱ | # 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$
}
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ | ###############################################################################
# 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 را تایید کنید تا مطمئن شوید خطایی نداشته باشد:
Total Warnings: 0
Total Errors: ۰
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: ۰ |
nagios را به کمک دستور زیر ریستارت کنید:
خوب کار شما تمام شده است. حالا به رابط وب nagios بروید و نام کاربری و پسورد را وارد نمایید. ببینید هاست ریموت نصب شده و به درستی مانیتور می گردد یا خیر.
چگونه به کمک افزونه NRPE هاست لینوکس را به سرور مانیتورینگ Nagios اضافه کنیم؟
۵ (۱۰۰%) ۱ vote
در صورت نیاز به سرور و خدمات مدیریت آن با ما در تماس باشید
۰۲۱۲۸۴۲۱۱۹۳
۰۹۱۲۹۷۲۶۳۴۳
۰۹۳۶۲۱۹۶۳۴۳
@omidahmadyani
@omid_ahmadyani