Centos 7 Üzerinde Nagios 4.1.1 İzleme (monitoring) Sunucu Kurulumu ve Ayarlanması


#1

Merhaba,

Zabbix sunucu için gelen yoğun ilgiden dolayı alternatif olarak Nagios kurulumunu da anlatmaya karar verdim :slight_smile:. Nagios için zabbixe göre en büyük avantaj birçok plugin bulundurması ve gerçekten istediğiniz gibi eğip bükebiliyorsunuz. Zabbix de templatelerle uğraşmak istemiyorsanız, Nagios oldukça basit ve işinizi görecektir diye düşünüyorum :smiley:
Kurulum için güncel Centos minimal indirmeye karar verdim daha önceki kurulumları genel olarak Centos 5 1503 üzerinde anlatmıştım. Bu sefer Centos 7 1511 kullanacağım. Güncelleme çıktıkça yeni kurulum anlatımlarını da yeni stable versiyonlar üzerinde anlatmaya özen göstermeye çalışacağım.

Neyse şimdi kuruluma geçebiliriz. Bize öncelikle LAMP server lazım 1503 ile 1511 arasında LAMP kurulumu açısından bir fark yok o yüzden LAMP kurulumunu buraya bakarak yapabilirsiniz. Centos 7 minimal buradan indirebilirsiniz.

Kurulum için:
CentOS Linux release 7.2.1511 (Core)
Hostname : nagios.herbibk.com
IP : 10.11.12.201

Client :
CentOS Linux release 7.1.1503 (Core)
Hostname : ntp.herbibk.com
IP : 10.11.12.154

P.S: Öncelikle LAMP server kurulumunu tamamladığınızdan emin olunuz.

Öncelikle kurulum ve derleme aşamalarında bize lazım olacak paketleri yüklüyoruz.

yum install gd gd-devel gcc glibc glibc-common unzip wget -y

Şimdi nagios sistemde kullanıcı açıyoruz. passwd komutu ile nagios kullanıcısına şifre tanımlanmaktadır.

useradd -m nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache

Şimdi nagios source dosyamızı indiriyoruz.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Aşağıdaki komut yardımıyla sıkıştırılmış dosyamızı açıyoruz ve cd “change directory” komutuyla dizin içerisine giriyoruz.

tar xzf nagios-4.1.1.tar.gz
cd nagios-4.1.1

Şimdi derleme işlemine geçebiliriz. Sırasıyla aşağıdaki adımları takip edin ve herhangi bir hata ile karşılaşmadığınıza emin olun.

./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf

Şimdi de GUI nagiosadmin kullanıcısı için şifre belirlememiz gerekiyor. Bunun için;

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Nagios kurulumunu yaptık ve şifremizi de belirledik. Şimdi nagios pluginlerinide yükleyelim :smiley: Plugin içinde yine download işlemi ve derleme işlemi yapacağız. Aşağıdaki adımları izleyin ve herhangi bir hata almadığınızdan emin olun.

cd
wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
tar xvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Plugin yükleme işlemini de tamamladık. Fakat konfigurasyon ile alakalı ufak tefek işlerimiz mevcut. Burada yaptığımız kurulumlarla beraber nagiosa ait konfigurasyon dosyaları /usr/local/nagios/etc klasörü altına gelmiş olması lazım. Burada bulunan /usr/local/nagios/etc/objects/contacts.cfg dosya içeriğindeki mail adresi kısmına notificationların düşeceği admin mail hesabını belirtmemiz gerekiyor.

vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name                    nagiosadmin             ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin            ; Full name of user

        email                           herbibk@herbibk.com        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }


Yukarıdaki gibi dosya içeriğine mail adresinizi belirterek kaydediniz.
Şimdi önemli bir konu daha var. Bu ayar sizin keyfinize ve security konusundaki genişliğinize kalmış bir durum. Şuanki mevcut ayarlarla Nagios Web interface heryerden ulaşabilirsiniz. Ama burada bunu kısıtlamakta isteyebilirsiniz. Eğer bu kısıtlamayı yapmak isteseniz. /etc/httpd/conf.d/nagios.conf içerisinde bulunan ;

#   Order allow,deny
#   Allow from all

Yukarıdaki kısımları aynı şekilde başına # işareti koyarak komut dışı bırakın ve aşağıdaki gibi;

Order deny,allow
Deny from all
Allow from 127.0.0.1 10.11.12.0/24 10.11.12.13

daha önce komut dışı bırakılmış olan bu üç satırın başındaki # işaretini silerek komut içerisine alın. Burada hem network hem ip belirttim fakat bu ikisine birden gerek yoktu. Dolayısı ile eğer tüm network buraya ulaşsın istiyorsanız network, belirli ip adresleri ulaşsın istiyorsanız ip adreslerini yazınız ve httpd servisini yeniden başlatınız.

systemctl restart httpd.service

Son olarak aşağıdaki komutla herhangi bir hata var mı yokmu kontrol ediyoruz.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Almanız gereken çıktı aşağıdaki gibi olmalı.

[root@nagios nagios-plugins-2.1.1]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
    Checked 8 services.
    Checked 1 hosts.
    Checked 1 host groups.
    Checked 0 service groups.
    Checked 1 contacts.
    Checked 1 contact groups.
    Checked 24 commands.
    Checked 5 time periods.
    Checked 0 host escalations.
    Checked 0 service escalations.
Checking for circular paths...
    Checked 1 hosts
    Checked 0 service dependencies
    Checked 0 host dependencies
    Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Eğer herhangi bir hata ile karşılaşmadıysanız servisimizi başlatabiliriz.

/etc/init.d/nagios start
systemctl enable nagios
chkconfig nagios on
systemctl restart httpd

Son olarak aşağıdaki komutla selinux disable edebilirsiniz.

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenfoce 0

Şimdi nagios web interface girebiliriz. bunun için http://10.11.12.201/nagios kullanacağız. Sizde ip kısmına sunucu ipnizi yazınız.

Eğer tüm ayarlarınız doğru ise kullanıcı adı ve şifrenizi yazdıktan sonra aşağıdaki gibi bir ekran sizi karşılayacaktır.

Şimdi sunucumuza monitoring için makine ekleyebiliriz. Ben eskiden kurmuş olduğum ntp server ekleyeceğim.

Client makinemizi izlemek için “nrpe” ve “nagios-plugins” kurulumu yapacağız. Ekleyeceğim sunucu Centos olduğu için bu paketlerin bulunduğu epel-release reposunu da kurmam gerekiyor. Bunun için;

yum install epel-release -y

Ve izleme için gerekli paketlerin kurulumunu yapıyorum:

yum install nrpe nagios-plugins-all openssl -y

nrpe kurulumu yaptık şimdi konfigurasyon dosyasında izleme sunucumu belirtmem gerekiyor bunun için /etc/nagios/nrpe.cfg kalörü içerisine girip aşağıdaki değişikliği yapıyorum. Aynı web sunucumuzu konfigure ettiğimiz gibi izleme sunucumuzun nrpe ulaşabilmesi için izin veriyoruz.

vi /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1 10.11.12.201

Şimdi nrpe servisimizi çalıştırabiliriz.

systemctl start nrpe
chkconfig nrpe on

Şimdi tekrar nagios server dönüyoruz ve bu sunucu için konfigurasyon dosyası açarak izlemeye alıyoruz. Bunun için Nagios sunucu üzerinde /usr/local/nagios/etc/nagios.cfg dosyasına girerek **cfg_dir=/usr/local/nagios/etc/servers
** satır başındaki # işaretini kaldırıyoruz.

cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers

Konfigurasyon içerisinde kanfigurasyon dizini belirlemiş olduk şimdi bu dizini oluşturup içerisine client sunucumuza ait bilgileri gireceğiz.

mkdir /usr/local/nagios/etc/servers
vi /usr/local/nagios/etc/servers/clients.cfg

Konfigurasyon dosya içeriği aşağıdaki gibi olmalı.

define host{
use                             linux-server
host_name                       ntp.herbibk.com
alias                           NTP Server
address                         10.11.12.154
max_check_attempts              5
check_period                    24x7
notification_interval           30
notification_period             24x7
}

Son olarak nagios servisimizi ayarların geçerli olabilmesi için restart ediyoruz.

systemctl restart nagios

Eğer ayarlarınızı doğru yaptıysanız sol tarafta bulunan menüden hosts kısmına girdiğinizde eklemiş olduğunuz sunucuyu göreceksiniz.

Saygılarımla…
Ahmed Hüsrev ÇAKIR