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 ?
- İlk makalede Nagios sunucumuzu kurduk https://www.cozumpark.com/nagios-ile-sistem-izleme-bolum-1/
- 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.
merhaba yazının devamını bekliyorum.Bilgileriniz için teşekkür ederim.
Merhaba çok teşekkürler, kısa zamanda yeni bölümü sizlerle paylaşacağız inşallah.