Nagios یک سیستم مانیتورینگ اپن سورس برای مانیتور کردن شبکه، زیر ساخت ها و نرم افزار ها است. با Nagios امکان مانیتورینگ سیستم، سرویس ها و شبکه با ارسال پیغام هایی به ایمیل مدیران در زمان های بحرانی وجود دارد. با آن می توانید کل زیر ساخت ها (Inferastructure ها) وجود دارد. در این مطلب چگونگی نصب و پیکربندی آن در توزیع های RHLE/CentOS 6.x گفته خواهد شد.
در پیکربندی Nagios در این مطلب از دو ماشین لینوکسی که یکی به عنوان Nagios Server عمل می کند و دیگری به عنوان Nagios Client استفاده می کنیم. Nagios Server ماشینی است که Nagios و کنسول آن برویش نصب شده و می توان دیگر ماشین های شبکه را را برای مانیتورینگ متمرکر به آن (Nagios Server) معرفی کرد. در واقع با استفاده از ماشین Nagios Server می توان سرویس ها، زیر ساخت ها (مانند ftp, dns) و وضعیت پردازنده، حافظه، swap بر روی ماشین های راه دور را یکجا مانیتور کرد. به ماشین هایی که به Nagios Server معرفی می شوند، Nagios Client گو یند. لازم است بر روی ماشین های Nagios Client، بسته نرم افزاری nrpe نصب شود.
موارد لازم در پیاده ساری این مطلب
دو عدد ماشین مجازی که
- یکی به عنوان Nagios Server و با آدرس 192.168.30.130 و یکی از توزیع های RHLE/CentOS
- و دیگری به عنوان Nagios Client و با آدرس 192.168.30.129 و یکی از توزیع های RHLE/CentOS یا Debian/Ubuntu
به طور خلاصه روش گام های پیاده سازی با نصب و پیکربندی Nagios بر روی ماشین سرور و سپس نصب بسته nrpe بر روی ماشین های کلاینت و معرفی آنها به ماشین سرور انجام می گیرد.
نصب و پیکربندی ماشین Nagios Server
- نصب در RHLE/CentOS
پیش از نصب Nagios از نصب بودن LAMP بر روی ماشین لینوکسی سرور اطمینان داشته باشید. می توانید مطلب “نصب LAMP بر روی توزیع های RHLE/CentOS” را بخوانید. همچنین لازم است که با دستور زیر بسته هایی را پیش از نصب Ngios بر روی ماشین لینوکسی سرور نیز نصب کنید.
yum install gd gd-devel gcc glibc glibc-common
Nagios بر روی مخازن epel نصب می باشد، پس لازم است از قبل Nagios مخزن epel را بر روی توزیع لینوکسی سرور نصب کرده باشیم.
wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
و در نهایت با دستور زیر Nagiso را نصب می کنیم.
*yum install nagios
لازم است برای دسترسی به کنسول تحت وب Nagios بر روی پورت 80، فایل iptables در زیر دایرکتوری etc/sysconfig/ را ویرایش کنیم (خطی به آن اضافه کنیم)
vi /etc/sysconfig/iptables
و سپس خط زیر را به آن اضافه کنید
A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT-
و با دستور زیر iptables را restart کنید
service iptables restart
- تنظیم آدرس ایمیل مدیر برای ارسال پیغام های هشدار
همانطور که گفته شد می توان از Nagios برای ارسال پیغام های هشدار در مواقعی که سرویسی دچار مشکل می شود یا هر گونه وضعیت هشدار دهنده دیگر، به مدیر استفاده کرد. برای این منظور باید فایل باید فایل contact.cfg را ویرایش کرد.
vi /etc/nagios/objects/contacts.cfg
و سپس در جلوی پارامتر email، آدرس ایمیل مدیر را مشخص کرد.
;email [email protected]
با ویرایش فایل nagios.conf می توان محدوده آدرس هایی که از راه دور می توانند به کنسول مدیریتی Nagios دسترسی داشته باشند را مشخص کرد. برای این منظور باید فایل nagios.conf را باز کرده
vi /etc/httpd/conf.d/nagios.conf
و محدوده آدرس ها را جلوی پارامتر Allow from بیاورید.
Allow from 127.0.0.1 192.168.30.0/24
در بالای خط Allow from خط deny for all وجود دارد که به این معنی است دسترسی همه قطع به جز آنهایی که جلوی Allow from آمده اند و این به این خاطر است که اولویت با deny و سپس با allow است.
- ایجاد کاربری که به کنسول دسترسی دارد
کاربری را به نام nagiosadmin ایجاد می کنیم. این کار را توسط دستور htpasswd انجام می دهیم. در خروجی زیر باید پسوردی را وارد و سپس آنرا دوباره تکرا کنیم.
htpasswd /etc/nagios/passwd nagiosadmin
OUTPUT
New password
Re-type new password
و در نهایت باید سرویس های nagios و httpd را start کنیم
service nagios start
service httpd start
chkconfig nagios on
chkconfig httpd on
- دسترسی به کنسول مدیریتی Nagios
برای این منظور از درون سیستمی که Nagios را در آن نصب کردید آدرس 127.0.0.1 یا آدرس کارت شبکه را در مرورگر نوشته و Enter کنید تا مانند زیر به کنسل دسترسی پیدا کنید. نام کاربری . پسورد را مطابق با نام کاربری nagiosadmin و پسوردی که برای آن ایجاد کردید وارد نمایید.
YOUR_NAGIOS_SERVER_IP/nagios
صفحه زیر، پس از ورود به کنسول مدیریتی نشان داده خواهد شد.
اگر روی Host از پنل سمت چپ کلیک کنید خواهید دید که Nagios تنها سرور محلی یعنی همان ماشینی که بر روی آن نصب شده است را مانیتور می کند. البته می توان ماشین های دیگرا را نیز به Nagios برای مانیتور شدن معرفی کرد.
روی نام Host کلیک کنید تا جزییات بیشتری مانند شکل زیر را ببینید.
نصب و پیکربندی NRPE بر روی Nagios Client ها
همانطور که گفته شد می توان دیگر ماشین های شبکه را برای مانیتورینگ راه دور آنها توسط Nagios به برنامه Nagios معرفی کرد. در واقع با Nagios و معرفی یک ماشین دیگر، می توان مانیتورینگ شبکه، زیر ساخت ها، سرویس ها و دیگر موارد مانند پردازنده، حافظه، دیسک، swap و غیره مربوط به ماشین را به صورت راه دور و متمرکز بر روی ماشینی که Nagios بر روی آن نصب شده و آنرا Nagios Server می نامیم، انجام دهیم.
اماشین هایی را که توسط Nagios و به صورت راه دور مانیتور می شوند را Nagios Client می نامیم و لازم است بر روی آنها NRPE که مخفف nagios remote plugin executor است، نصب شود. در واقیع یک NRPE agent یا عامل NRPE بر روی ماشین های راه دور (Nagios Client ها) نصب می شود.
- نصب در توزیع های RHLE/CentOS/Oracle Linux
برای نصب دستور زیر را اجرا کنید. توجه داشته باشید که نصب از مخزن epel صورت می گیرد. (مانند آنچه که در ابتدای مطلب انجام شد)
yum install nrpe nagios-plugins-all openssl
- نصب در توزیع های Ubuntu/Debian
برای نصب دستور زیر را اجرا کنید.
sudo apt-get install nagios-nrpe-server nagios-plugins
- اولین گام در پیکربندی ماشین کلاینت
باید آدرس سرور Nagios (در این مطلب با آدرس 192.168.30.128) را به ماشین کلاینت (که می خواهیم توسط Nagios Server مانیتور شود) را معرفی کنیم. برای این کار لازم است که فایل nrpe.cfg را ویرایش کنیم.
vi /etc/nagios/nrpe.cfg
سپس آدرس را به پارامتر allowed_hosts مانند زیر اضافه می کنیم.
allowed_hosts 127.0.0.1192.168.30.130
سپس سرویس را start می کنیم.
service nrpe start
chkconfig nrpe on
و در توزیع های ابونتو و دبیان از دستور زیر استفاده کنید.
sudo /etc/init.d/nagios-nrpe-server restart
- تنظیمات لازم در ماشین Nagios Server برای معرفی کلاینت به آن
لازم است که مطابق زیر به ماشین سرور بازگشته و تنظیمات را انجام دهید.
نخست فایل nagios.cfg در زیر دایرکتوری etc/nagios.cfg/ را باز کرده
vi /etc/nagios/nagios.cfg
و سپس خطی که شامل پارامتر cfg_dir را پیدا کنید (خط 52) و سپس با برداشتن علامت # از ابتدای آن، آنرا از حالت کامنت خارحج کنید.
cfg_dir=/etc/nagios/servers
لازم است که دایرکتوری هم مسیر با دایرکتوری مشخص شده در پارامتر cfg_dir ایجاد کنید.
mkdir /etc/nagios/servers
سپس یک فایل به عنوان فایل پیکربندی برای کلاینت در زیر دایرکتوری بالا ایجاد کنید.
vi /etc/nagios/servers/clients.cfg
و سپس خطوط شکل زیر را به آن اضافه کنید
}define host
use linux-server
host_name centos2-falearn
alias centos2
address 192.168.30.129
max_check_attempts 5
check_period 24×7
notification_interval 30
notification_period 24×7
{
به ازای هر هاست، یک define host و پارامتر های میان { } را داریم. host_name نام ماشین راه دور و alias نام مستعار آن، address آدرس ماشین راه دور را مشخص می کند.
حال با دستور زیر در سرور، سرویس nagios را restart کنید.
service nagios restart
با ایجاد فایل بالا و وارد کردن تنظیمات لازم به آن، پیکربندی Nagios به اتمام رسید. اگر بر روی سرور مانند بالا آدرس را وارد کرده و سپس به کسنول Nagios وارد شوید، آنگاه به پنل Host بروید، می توایند کلاینت اافه شده را ببنید.
با تعریف define host بالا، کلاینت با آدرس 192.168.30.129 و نام هاست centos2-falearn را به Nagios Server معرفی کردیم. همچنین NRPE بر روی کلاینت نصب شده است که به همراه آن چندین دستور نیز نصب شده اند که وظیفه مانیتورینگ را بر عهده دارند. این دستور ها در زیر دایرکتوری های زیر قرار دارند.
ls -l /usr/lib64/nagios/plugins #in linux 64 bit
ls -l /usr/lib/nagios/plugins #in linux 32 bit
با انجام تنظیمات بالا، سرور Nagios را پیکربندی و سپس ماشین کلاینت را پیکربندی و به سرور معرفی کردیم. در واقع یک Host را به سرور معرفی کردیم که می توان فهرست Host ها را از پنل Host در سمت چپ کنسول Nagios مشاهده کرد. حال باید با یک define دیگر که از نوع define service است، سرویس (هایی) را بر روی ماشین کلاینت راه دور (که در بالا centos2-falearn بود) را برای مانیتور شدن بر روی Nagios Server تعریف کرد. این کار توسط define service انجام می گیرد. خطوط زیر را در فایل clients.cfg و پس از تعریف define host برای centos2-falearn بیاورید.
} define service
use generic-service
host_name centos2-falearn
service_description SSH
check_command check_ssh
notifications_enabled 0
{
سپس سرویس nagios را restart کنید.
service nagios restart
حال اگر به پنل Service در سمت چپ بروید، خواهید دید که به ازای هر hostname سرویس هایی وجود دارد که برای centos2-falearn سرویس ssh برای مانیتورینگ تعریف شده است.
می توایند فایل clients.cfg را نیز دانلود کنید.
مطالب مرتبط