1. Genel Bakış
Nagios performans izleme uygulaması, switch, router, güvenlik duvarı gibi çeşitli ağ aygıtlarını izlemek ve aynı zamanda Linux / Windows sunucularının up / down durumu, CPU kullanımı, bellek kullanımını monitörize etmek için kullanılmaktadır. Switch performansının izlemesi veya router’ın up / down durumu ya da daha fazlası için de idealdir. Ağda işler kötüye gittiğinde ya da düzeldiklerinde uyarıyla bilgilendirme yapabilir.
Bu yazıda, SNMP protokolünde çalışan bazı Nagios eklentilerini kullanarak Cisco switch’lerin Nagios performans izleme uygulamasıyla nasıl izleneceğini göreceğiz.
2. Gereksinimler
RHEL / CentOS 7 Linux sunucuyu kurduğunuzu ve düzgün çalıştırdığınızı varsayalım.
3. SNMP’yi Yapılandırma
Öncelikle, Cisco switch’e giriş yaparak 10.0.0.10 IP adresini erişim kontrol listesine eklememiz gerekiyor. SNMP server community değerini daha önceki örneklerimizde olduğu gibi yine “T@s9aMon” olarak yapılandıralım.
# ip access-list standard ACL-SNMP
permit 10.0.0.10
# snmp-server community T@s9aMon RO ACL-SNMP
# snmp-server location DC
# snmp-server contact netadmin@tanergunal.com.tr
# ip domain-name tanergunal.com.tr
Cisco switch üzerindeki SNMP sunucusunun düzgün ve yapılandırıldığını test etmek için Nagios sunucusunda oturum açarak aşağıdaki snmpwalk komutunu çalışalım. Aşağıdaki komutta Cisco switch IP adresinin 10.0.0.1 olduğu varsayılmıştır.
# snmpwalk -v2c -c T@s9aMon 10.0.0.1
4. Nagios Eklentisini İndirin ve Test Edin
Nagios ile bir Cisco switch’i monitörize etmek için iki Nagios eklentisine ihtiyacımız var. Bu iki eklentiyi Nagios Exchange web sitesinden veya doğrudan buradan indirebilirsiniz, check_cisco_switch ve check_cisco. İndirdikten sonra, bu iki eklentileri “/ usr / local / nagios / libexec” adresindeki Nagios eklenti dizinine kopyalamanız gerekir.
Cisco switch’in güç kaynağı durumunu, fan durumunu, CPU kullanımını ve hafıza kullanımını izlemek için “check_cisco_switch.pl” adlı eklentiyi kullanacağız. Bu eklenti ile Cisco switch’in up / down durumunu takip etmek mümkün, ancak bunun yerine daha kapsamlı bir çıktı sağladığı için “check_cisco.pl” eklentisini kullanacağız.
Bu iki eklentiyi test etmek için “/ usr / local / nagios / libexec” dizinine gidelim, ancak önce gerekli bir perl-Net-SNMP paketini kurmamız gerekiyor.
# cd /usr/local/nagios/libexec # yum -y install perl-Net-SNMP # chmod +x check_cisco_switch.pl
Şimdi Cisco switch’in fan durumunu izlemek için “check_cisco_switch.pl” eklentisini kullanalım.
# ./check_cisco_switch.pl -H 10.0.0.1 -C T@s9aMon -t fan Fans: OK - 1 Fans are running all good | total=1 err=0
Güç kaynağını izlemek için ps parametresini kullanıyoruz.
# ./check_cisco_switch.pl -H 10.100.1.22 -C T@s9aMon -t ps PS: OK - 1 PS are running all good | total=1 err=0
CPU kullanımını kontrol için aşağıdaki gibi kullanıyoruz.
# ./check_cisco_switch.pl -H 10.0.0.1 -C T@s9aMon -t cpu -w 30 -c 70 Cpu: OK - Cpu Load 5% 5% 6% | cpu_5s=5percent;30;70 cpu_1m=5percent cpu_5m=6percent
Hafıza kullanımı için de aşağıdaki gibi kullanıyoruz.
# ./check_cisco_switch.pl -H 10.0.0.1-C T@s9aMon -t mem -w 50 -c 40 Memory: OK - Free Memory 83% | memory_total=90MB memory_used=15MB
Cisco switch’s arabirimleri icin de kullanmamız mümkün fakat daha kapsamlı bilgi sunması için “check_cisco.pl” eklentisini kullanacağız.
#./check_cisco_switch.pl -H 10.0.0.1-C T@s9aMon -t int -i FastEthernet0/1 OK: FastEthernet0/1 -> up | int=1
İkinci eklentiyi çalışırabilmemiz için gerekli net-snmp-utils paketini kurmamız gerekiyor.
# yum install -y net-snmp-utils # chmod +x check_cisco.pl # ./check_cisco.pl -H 10.100.1.22 -C A@B9aMon -i FastEthernet0/1 Fa0/1 up: ECC800-WAN1, LastChanges: (33570955) 3 days, 21:15:09.55, Traffic in : 27011460 octets, out: 143756229 octet
5. Host ve Service Gruplarının Tanımlanması
Yapılandırmamızı aşağıdaki gibi dizinler içine yerleştirirsek biraz daha derli toplu olacaktır.
# cd /usr/local/nagios # mkdir tanergunal # cd tanergunal/ # mkdir commands # mkdir remotehosts # mkdir servicegroups # mkdir hostgroups
Bu yeni yapılandırma ile servisi yeniden başlatalım.
# vim /usr/local/nagios/nagios.cfg cfg_dir=/usr/local/nagios/etc/tanergunal # systemctl restart nagios
Tüm Cisco switch’leri gruplamak adına “/ usr / local / nagios / tanergunal / hostgroups” dizinine giderek “cisco-switches.cfg” dosyasını oluşturun ve aşağıdaki define kısmını dosyaya yazın.
# cd /usr/local/nagios/tanergunal/hostgroups
# vim cisco-switches.cfg
define hostgroup{
hostgroup_name cisco-switches
alias Cisco Switches
}
Şimdi de bellek kullanımı, cpu kullanımı, cihaz fanı, cihaz güç kaynağı ve cisco-arabirim durumunu kontrol etmek amacıyla servis gruplarını oluşturacağız. “/ usr / local / nagios / tanergunal / hostgroups” dizinine giderek cisco-services.cfg isimli yapılandırma dosyasını oluşturalım ve içine aşağıdakileri yazalım.
# cd /usr/local/nagios/tanergunal/servicegroups
# vim cisco-services.cfg
define servicegroup{
servicegroup_name memory-usage
alias Memory Usage
}
define servicegroup{
servicegroup_name cpu-usage
alias CPU Usage
}
define servicegroup{
servicegroup_name device-fan
alias Device Fan
}
define servicegroup{
servicegroup_name device-powersupply
alias Device Power Suply
}
define servicegroup{
servicegroup_name cisco-interfacestatus
alias Cisco Interface Status
}
6. Nagios Komutlarının Tanımlanması
Kurduğumuz iki eklentiyi kullanarak komut tanımlamalarımızı yapacağız. Güç kaynağının durumunu, fan durumunu, CPU kullanımını ve bir Cisco switch’in hafıza kullanımını izlemek için aşağıdaki komutu tanımlayalım.
# cd /usr/local/nagios/tanergunal/commands
# vim check_cisco_switch.cfg
define command{
command_name check_cisco_switch
command_line $USER1$/check_cisco_switch.pl -H $HOSTADDRESS$ -C $ARG1$ -t $ARG2$ -w $ARG3$ -c $ARG4$
}
define command{
command_name check_cisco_int
command_line $USER1$/check_cisco.pl -H $HOSTADDRESS$ -C $ARG1$ -i $ARG2$
}
#
7. Host ve Servislerin Tanımlanması
Host grubu, servis grupları ve komutlarını tanımladıktan sonra, test etmek için Cisco switch tanımlayalım. Bu test switch’i üzerinde host up / down durumunu ve ping, CPU kullanımı, bellek kullanımı ve iki arabirimin (F0/1 ve F0/2) up / down durumu gibi bazı hizmetleri izleyeceğiz.
# cd /usr/local/nagios/tanergunal/remotehosts
# vim test-switch01.cfg
define host{
use generic-switch
host_name Test-Switch01
alias Test-Switch01
notes Access Switch
address 10.0.0.1
hostgroups cisco-switches
}
define service{
use generic-service
host_name Test-Switch01
service_description PING
check_command check_ping!200.0,20%!600.0,60%
check_interval 5
retry_interval 1
}
define service{
use generic-service
host_name Test-Switch01
service_description Memory Usage
check_command check_cisco_switch!T@s9aMon!mem!50!40
servicegroups memory-usage
}
define service{
use generic-service
host_name Test-Switch01
service_description CPU Usage
check_command check_cisco_switch!T@s9aMon!cpu!60!70
servicegroups cpu-usage
}
define service{
use generic-service
host_name Test-Switch01
service_description Device Fan
check_command check_cisco_switch!T@s9aMon!fan
servicegroups device-fan
}
define service{
use generic-service
host_name Test-Switch01
service_description Device Power Suply
check_command check_cisco_switch!T@s9aMon!ps
servicegroups device-powersupply
}
define service{
use generic-service
host_name Test-Switch01
service_description Port Fa0/1
check_command check_cisco_int!T@s9aMon!Fa0/1
servicegroups cisco-interfacestatus
}
define service{
use generic-service
host_name Test-Switch01
service_description Port Fa0/2
check_command check_cisco_int!T@s9aMon!Fa0/2
servicegroups cisco-interfacestatus
}
Şimdi Nagios servisini yeniden başlatalım.
# systemctl restart nagios
Nagios Core’un web arayüzüne gittiğimizde “Test-Switch01” ve altındaki servisleri aşağıdaki gibi göreceğiz.
Host’ları görmek için, All Host Groups’a tıklayın
Servis gruplarını görüntüleyin.
8. Sonuç
Tebrikler, performans izleme, ağ izleme ve sunucu izleme araçlarından biri olan Nagios’un kurulumunu ve yapılandırmasını başarı ile tamamladınız. Umarım rehberimiz yardımcı olur. Soru ve önerileriniz olursa iletebilirsiniz.








