Anasayfa » Nagios ile Sistem İzleme Bölüm 2

Makaleyi Paylaş

Open Source

Nagios ile Sistem İzleme Bölüm 2

Merhaba ilk makalede Nagios kurulumunu tamamlamıştık. İkinci makalede sırayla hostlarımızı eklemeye başlıyoruz.

İlk makaledeki diyagrama sadık kalacağım.

Bu makalede bilgisayarlarımızı dinlemeye çalışacağız. İlk makalede Nagiosu kurduk buraya kadar sorun yok ancak aşağıdaki ekranda bir sorunumuz olduğu gözüküyor.

Bunun nedeni ilk kurulumdan sonra Nagios, kurulu olduğu sunucuyu dinlemeye başlar ama bunu göremiyoruz. Bunun nedeni kullanıcı izinleri ile ilgili.


Hatırlarsanız biz kurulum sırasında Nagios kullanıcısı olarak “yonetici” isimini seçmiştik ancak daha bu kullanıcıya gerekli izinleri vermediğimiz için bize sunucu ile ilgili detayları göstermiyor.

Aşağıdaki komut ile “cgi.cfg” dosyasını düzenlememiz gerekli.

nano /usr/local/nagios/etc/cgi.cfg

nagiosadmin” gördüğünüz tüm satırların yanına “yonetici” yazıyorsunuz ve dosyayı kaydedip çıkıyorsunuz.

Aşağıdaki komut ile Nagios servislerini resetledim.

systemctl restart nagios.service

Görüldüğü gibi “localhost” olarak Nagios sunucu üzerindeki servisleri izleme başladık.

Şimdi yukarıdaki diyagrama uygun olarak “Windows Server 2012 R2” olan sunucumuzu ekleyerek başlıyoruz.

Bunun için ilk olarak aşağıdaki komut ile “/usr/local/nagios/etc/” yoluna gidiyoruz.

cd /usr/local/nagios/etc/

Sonrasında “mkdir servers” komutu ile “servers” adında bir klasör oluşturuyoruz.

 mkdir servers

Bu klasör altında her bir farklı sunucu grubunu için config dosyaları oluşturacağız ” Windows sunucular” “Linux sunucular” gibi..

Sıra geldi “nagios.cfg” dosyasını düzenlemeye

nano nagios.cfg

Aşağıdaki satırı bularak başındaki “#” karakterini kaldırıyorum böylece bu satırı aktif etmiş oluyorum.

cfg_dir=/usr/local/nagios/etc/servers

Yaptığım değişikliği kaydedip çıkıyorum.

Burada bir kısa not yazmak istiyorum:

Nagios’da gelen default configler var ister bunları kopyalayarak çoğaltıp kullanabilirsiniz, yada yeni config dosyaları oluşturarak devam edersiniz.

Ben örnek olması açısından ilk örneğimizde default gelen “windows.cfg” dosyasını kopyalıyorum ve üzerinde düzenleme yapıyorum.

Aşağıdaki komut “windows.cfg” config dosyasını yeni oluşturduğumuz “servers” klasörüne kopyalamak

cp /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/servers/

Aşağıdaki komut “windows.cfg” dosya isimini “windows-sunucular.cfg” olarak değiştiriyor.

mv windows.cfg windows-sunucular.cfg

sonra “nano windows-sunucular.cfg” komutu ile dosyayı düzenliyorum.

Dosya içeriği aşağıdaki gibi, yalnız burada bir kaç önemli nokta var

windows.cfg” dosyasını ilk kopyaladığınız da “explorer.exe” “Explorer.exe” şeklinde geliyor burada ki “e” harfi büyük “E” olduğu için hata veriyor bu yüzden küçük “e” yapıyoruz. Bu karşılaştığım bir sorundu belirtmek istedim.

define service {

    use                     generic-service
    host_name               winserver
    service_description     Explorer
    check_command           check_nt!PROCSTATE!-d SHOWALL -l explorer.exe
}

Aşağıdaki ki conf dosyasında ki ip adresine kendi Windows sunucunuzun ip adresini giriniz ve kaydedin.

define host {

    use                     windows-server          ; Inherit default values from a template
    host_name               winserver               ; The name we're giving to this host
    alias                   My Windows Server       ; A longer name associated with the host
    address                 192.168.70.159             ; IP address of the host
}

Sonuç olarak tüm ayarları yapıyoruz ve kaydedip çıkıyoruz.

###############################################################################
# WINDOWS.CFG - SAMPLE CONFIG FILE FOR MONITORING A WINDOWS MACHINE
#
#
# NOTES: This config file assumes that you are using the sample configuration
#    files that get installed with the Nagios quickstart guide.
#
###############################################################################



###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################

# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation

define host {

    use                     windows-server          ; Inherit default values from a template
    host_name               winserver               ; The name we're giving to this host
    alias                   My Windows Server       ; A longer name associated with the host
    address                 192.168.70.159             ; IP address of the host
}



###############################################################################
#
# HOST GROUP DEFINITIONS
#
###############################################################################

# Define a hostgroup for Windows machines
# All hosts that use the windows-server template will automatically be a member of this group

define hostgroup {

    hostgroup_name          windows-servers         ; The name of the hostgroup
    alias                   Windows Servers         ; Long name of the group
}



###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################

# Create a service for monitoring the version of NSCLient++ that is installed
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     NSClient++ Version
    check_command           check_nt!CLIENTVERSION
}



# Create a service for monitoring the uptime of the server
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     Uptime
    check_command           check_nt!UPTIME
}



# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     CPU Load
    check_command           check_nt!CPULOAD!-l 5,80,90
}



# Create a service for monitoring memory usage
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     Memory Usage
    check_command           check_nt!MEMUSE!-w 80 -c 90
}



# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     C:\ Drive Space
    check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}



# Create a service for monitoring the W3SVC service
# Change the host_name to match the name of the host you defined above

#define service {
#
#    use                     generic-service
#    host_name               winserver
#    service_description     W3SVC
#    check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
#}



# Create a service for monitoring the Explorer.exe process
# Change the host_name to match the name of the host you defined above

define service {

    use                     generic-service
    host_name               winserver
    service_description     Explorer
    check_command           check_nt!PROCSTATE!-d SHOWALL -l explorer.exe
}

Nagios servislerini resetliyorum.

systemctl restart nagios.service

Görüldüğü gibi Windows sunucumuz geldi.

Sıra geldi Ubuntu Sunucumuza

İlk önce Nagios kurulu olan sunucuda aşağıdaki komutu çalıştırarak gerekli pluginlerin yüklenmesini sağlıyorum.

apt-get install nagios-nrpe-plugin -y

sonrasında “/usr/local/nagios/etc/objects/” path yoluna gidiyorum aşağıdaki komutu çalıştırarak “command.cfg” düzenliyorum.

 nano commands.cfg

En alt satıra giderek aşağıdaki satırları ekliyor ve dosyayı kaydediyorum.

define command{
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

Sonra izlemek istediğimiz Ubuntu sunucuya ssh ile bağlanıyoruz.

Bu komut ile Nagios client ve pluginlerin kurulması sağlanıyor

apt-get install nagios-nrpe-server nagios-plugins -y

Aşağıdaki komut ile “nrpe.cfg” dosyasını düzenliyorum.

nano /etc/nagios/nrpe.cfg

allowed_host” bu kısma Nagios sunucumuzun ip adresini yazıyor ve dosyayı kaydedip çıkıyoruz.

Servisi resetliyorum.

systemctl ststus nagios-nrpe-server.service

Sıra geldi izlemek için kullanacağımız “cfg” dosyasını düzenlemeye. Bu sefer bir önce yaptığımız gibi Windows sunucuları izlemek için kullandığımız hazır bir “cfg” dosyası kopyalayıp kullanmayacağız bunun yerine sıfırdan bir “cfg” dosyayı oluşturacağız.

Şimdi yeniden Nagios sunucuma bağlanıyorum ve ağadaki pathe gidiyorum.

usr/local/nagios/etc/servers/

ve “ubuntu-sunucular.cfg” oluşturuyorum.

nano ubuntu-sunucular.cfg

Şimdi yine “address 192.168.70.150” kısmını kendi dinlemek istediğiniz Ubuntu sunucunun ip si ile değiştirin ve dosyayı kaydedin.

define host{
use linux-server
host_name ubuntu-sunucu
alias nagios.client
address 192.168.70.150
}
define hostgroup{
hostgroup_name linux-server
alias Linux Servers
members ubuntu-sunucu
}
define service{
use local-service
host_name ubuntu-sunucu
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use local-service
host_name ubuntu-sunucu
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use local-service
host_name ubuntu-sunucu
service_description Current Load
check_command check_nrpe!check_load
}

Nagios servislerimizi resetliyoruz.

systemctl ststus nagios-nrpe-server.service

Aşağıda görüldüğü gibi Ubuntu sunucumuzu izlemeye başladık.

Sıra geldi Centos 8 sunucumuza

Aşağıdaki iki komutu sırasıyla veriyorum. İlk komut gerekli repoları ekliyor ve ikinici komut agent ve pluginleri kuruyor.

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
 yum -y install nagios-plugins-nrpe

Bu işlemlerden sonra yeniden Nagios sunucuma geri dönüyorum.

Tekrardan bu pathin “usr/local/nagios/etc/servers/” altına gidip aşağıdaki komut ile “centos-sunucular.cfg” adında bir dosya oluşturuyorum.

nano centos-sunucular.cfg

Dosya içeriğini aşağıdaki gibi ve yine “address 192.168.70.150” siz yine ip adresini kendi izlemek istediğiniz sunucu ip adresi ile değiştirin.

define host{
use linux-server
host_name centos-sunucu
alias nagios.client
address 192.168.70.150
}
define hostgroup{
hostgroup_name centos-server
alias Linux Servers
members centos-sunucu
}
define service{
use local-service
host_name centos-sunucu
service_description Current Users
check_command check_nrpe!check_users
}
define service{
use local-service
host_name centos-sunucu
service_description Total Processes
check_command check_nrpe!check_total_procs
}
define service{
use local-service
host_name centos-sunucu
service_description Current Load
check_command check_nrpe!check_load
}

Son durum aşağıda görüldüğü tüm sunucular eklendi.

Şuana kadar Windows ve Linux sunucularımızı ekledik ( Windows 10 bilgisayarın izlenmesi, Windows sunucudan farkı yok o yüzden onu ayrı yazmadım ).

Şuana kadar neler yaptık ?

  • Bu makalede Windows ve Linux sunucu eklemeyi gördük

Neleri Yapmadık ?

  • Aktif cihazlarımızı eklemedik
  • Host grupları oluşturmadık
  • Servis bazlı dinleme yapmadık
  • NagVis kurup görsel haritalar oluşturmadık
  • Nagios detay ayarlarına girmedik

Hepsini sırayla yapacağız.

Sıra geldi aktif cihazlarımıza (router,firewall,switch) bu cihazları nasıl izleyeceğimizi diğer makalede anlatmaya devam edeceğim.

Faydalı olması dileğiyle, İyi okumalar.

Makaleyi Paylaş

Cevap bırakın

Email adresiniz gizli kalacak Zorunlu alanlar * olarak işaretlenmiştir

Bunları kullanabilirsinizHTML etiketler ve öznitelikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>