Öncelikle Nagios’u bilmeyenler için biraz ne olduğundan bahsedelim. Nagios sunucularınızı ağ üzerinden izlemek için üretilmiş bir ağ izleme programı. Linux ve Unix türevi sistemler üzerinde çalışan GPL lisanslı bir yazılım. Peki nagios sistem yöneticilerine ne gibi avantajlar sağlıyor? Sahip olduğunuz ve yönettiğiniz sunucuların ayakta kalmadı için hem donanım hem de yazılım olarak kontrol altında tutmanız gerekir. Hele de sunucu sayınız çok fazla ise hepsini izlemek zor olabilir. Nagios bu işi bizim için kolaylaştırıyor.

Örneğin sunucuların disk, işlemci gibi kaynaklarını ve mail, web, ftp gibi servislerini anlık olarak izleyebiliyoruz. Sunucuların durumları hakkında sistem yöneticisine e-posta veya SMS gönderebildiği gibi, sunucular hakkında detaylı raporlarda almak mümkün. Nagios hakkında detaylı bilgiyi [1] adresinden alabilirsiniz.

Nagios Kurulumu

Nagios’u kurmak için ilk olarak kendimize bir ana sunucu belirlememiz gerekiyor. Bu sunucu üzerinde nagios çekirdek programları çalışacaktır. Bu sunucu herhangi bir Linux dağıtımı olabileceği gibi, unix veya bsd tabanlı bir dağıtımda olabilir. Ben ana sunucu için Pardus Kurumsal 2’yi seçtim. Kurumsal 2’nin henüz kararlı sürümü çıkmamış olsa bile bu yazıyı yazmak için yeterince kararlıydı benim için 🙂

Kurumsal 2’yi kurduktan sonra gerekli güncellemelerini yapalım. Daha sonra nagios kurmak için depodan bazı paketleri kurmamız gerekiyor. Aşağıdaki paketleri depodan kendiniz kurabilirsiniz ya da aşağıdaki komutla konsol üzerinden kurabilirsiniz.

# pisi it make glibc-devel gcc kernel-headers apache mod_php gd

Nagios sisteme kurmak için nagios kullanıcısı ve grubu oluşturmak zorundayız. Apache ve nagios kullanıcılarını da oluşturduğumuz nagcmd grubuna dahil edeceğiz. Bunun için aşağıdaki komutları veriyoruz.

# useradd -m nagios

# groupadd nagcmd

# usermod -a -G nagcmd nagios

# usermod -a -G nagcmd apache

Nagios’u kurmak için [1] adresinden nagios core ve nagios plugins paketlerini indiriyoruz. İndirdiğimiz nagios core paketini
açıp içine girerek derlemeye başlıyoruz.

# ./configure –with-command-group=nagcmd

# make all

# make install

# make install-init

# make install-config

# make install-commandmode

komutlarını sıra ile veriyoruz. Herhangi bir hata vermeden bitmesi gerekiyor. Nagios artık sistemimize kuruldu. Program öntanımlı
olarak /usr/local/nagios dizini altına kuruluyor. Nagios’un yapılandırma dosyaları /usr/local/nagios/etc dizini altında bulunur.
Bu dizin altında bulunan contacts.cfg dosyasındaki “define contact” bölümü içindeki email satırına kendi e-posta adresimizi yazıyoruz.

Nagios’u başlatmadan önce kendilerini apache’ye tanıtmamız gerekiyor. Bunun için /etc/apache/conf.d/ dizini altında nagios.conf
dosyası oluşturarak aşağıdaki satırları ekliyoruz.

ScriptAlias /usr/local/nagios/cgi-bin “/usr/local/nagios/sbin”

<Directory “/usr/local/nagios/sbin”>
#  SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1
AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

Alias /usr/local/nagios “/usr/local/nagios/share”
Alias /nagios “/usr/local/nagios/share”

<Directory “/usr/local/nagios/share”>
#  SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
#  Order deny,allow
#  Deny from all
#  Allow from 127.0.0.1
AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>

Nagios’u web arayüzünden ulaşmamız için bir kullanıcı adı ve şifre tanımlamamız gerekiyor. Bunun için aşağıdaki komut ile bir kullanıcı ve
şifre oluşturuyoruz. Bu kullanıcı adı ve şifreyi web üzerinden nagios’a erişirken kullanacağız.

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

Bundan sonraki işimiz nagios plugin’lerinin sisteme kurulması. Bu plugin’leri de yine [1] adresindeki download bölümünden indirebilirsiniz.
Eklenti dosyasını indirip açtıktan sonra aşağıdaki komutlar ile sisteme kurmamız gerekiyor. Fakat bunun için libwrap7-6-dev paketi
sistemde kurulu olmalı. Kurumsal 2 deposunda bu paket olmadığı için kendimiz indirip kuracağız. [2] adresinden paketi indirdikten sonra
paketin içinden çıkan dosyaları ilgili klasörlere kopyalıyoruz. Daha sonra aşağıdaki komutları verebiliriz.

# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install

Plugin’leri de sisteme kurduktan sonra aşağıdaki komutla nagios yapılandırmamızı kontrol edelim ve servisleri başlatalım.

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

# /etc/init.d/nagios start

# service apache start

Artık web tarayıcıda adres satırına http://localhost/nagios yazdıktan sonra kullanıcı adı ve şifremizi giriyoruz. Önümüze aşağıdaki
gibi bir ekran gelmesi gerekiyor.

Artık nagios servisimiz çalışıyor. Fakat ana sunucu üzerinde yapmamız gereken son bir işlem daha var. Nagios ile diğer sunucuları
izlemek için sistemde NRPE isimli eklentinin de olması gerekiyor. Bu eklentiyi de yine [1] adresindeki Nagios Addons kısmından indirebilirsiniz.
Eklentiyi sisteme kurmamız için sistemde openssl-devel paketinin olması gerekiyor. Kurumsal deposunda bu pakette olmadığı için kendimiz
indirip kurmalıyız. Aksi takdirde program “checking for SSL headers… configure: error: Cannot find ssl headers” hatası verecektir. Bu paketi de [3] adresinden indirip klasik “./configure”, “make” ve “make install” derleme komutları ile kuruyoruz.

Openssl-devel paketini kurduktan sonra indirdiğimiz nrpe eklentisinin dizinine girerek aşağıdaki komutları uyguluyoruz.
# ./configure
# make all
# make install-plugin

NRPE eklentisi de diğer eklentiler gibi yüklendikten sonra Nagios’a nrpe eklentisini nasıl çalıştıracağını göstermeliyiz. Bunun içinde
/usr/local/nagios/etc/objects/commands.cfg dosyasına aşağıdaki satırları ekliyoruz.

#########################################################
#NRPE CHECK
########################################################

# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

Ana sunucumuz üzerinde yapacaklarımız bu kadar. Bundan sonra izlememiz gereken sunuculara ilgili nagios eklentilerinin kurulması var.
Örneğin uzakta üzerinde Centos işletim sistemi yüklü bir makinemiz var ve bunu nagios üzerinden izlemek istiyoruz. Centos üzerinde yum
komutunu kullanarak bu dosyaları kolaylıkla sisteme yükleyebiliriz. NRPE isimli paketin son sürümünü sisteme yüklemek için http://dag.wieers.com/rpm/packages/rpmforge-release/
adresinden kontrol edebilirsiniz.

Aşağıdaki satırları uygulayarak NRPE eklentisini sisteme kuruyoruz.
# wget http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-
0.3.6-1.el5.rf.i386.rpm
# rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# rpm -K rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -i rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Sonra yum komutu ile paketi kuruyoruz ve sistemin açılışında çalışmasını sağlıyoruz.

# yum -y install nagios-nrpe
# chkconfig –level 2345 nrpe on

Herhangi bir sorun olmadan kurulduysa paketimiz sıra yapılandırmada. Centos üzerinde öntanımlı NRPE yapılandırma dosyası
/etc/nagios altındaki nrpe.cfg isimli dosyadır. Bu dosyada Nagios ana sunucudan gelen eklenti çalıştırma isteklerinde kullanılacak
komutlar vardır. Aşağıdaki örneğe bakabilirsiniz:
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

NRPE servisini aşağıdaki komutla çalıştırıyoruz.
# service nrpe start

Servisin düzgün çalışıp çalışmadığını aşağıdaki komutla deneyebilirsiniz.
# netstat -an |grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN

Yazıyı çok uzatmamak için Nagios ana sunucudaki istemci host yapılandırmalarını bir sonraki yazıda vereceğim..

[1] http://www.nagios.org/
[2] http://ftp.thquast.de/linux/eisfair-1/pool/libw/libwrap7-6-dev/1.0.0/
[3] ftp://ftp.univie.ac.at/packages/cygwin/release/openssl/openssl-devel/