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.