Ana Sayfa » *nix » Nagios Kurulumu ve Yapılandırması

Nagios Kurulumu ve Yapılandırması


BerbatKötüİdare EderGüzelHarika (Toplam 17 oy. 5 puan üzerinden ortalama 4,76 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...
nagios_logo Uzun zamandır, işleri için kullanıyorum. , oldukça kullanışlı ve bir yazılımından beklenen özellikleri tamamıyla sağlayan oldukça gelişmiş ve esnek bir yazılım. İşte bu makalede de, ’un kurulumu ve yapılandırmasına ait notlar paylaşılmaktadır

’u şu sıralar sık sık kullandığım CentOS 5.2 üzerine kurdum. Dolayısı ile döküman buna göre hazırlanmıştır. Ancak, kurulum kaynak koddan derlenerek yapılacağından aynı referansları izleyerek farklı platformlar için de kurulum yapabilirsiniz.



İndex


Giriş


Yazının başında da belirttiğim gibi bu yazıda CentOS 5.2 üzerine yapılan bir Nagios kurulumu ve yapılandırmasına ait notları bulabilirsiniz. Örnek olması açısından içerisinde bir Windows 2003, bir CentOS 5.2 ve bir FreeBSD 7.0 bulunan küçük bir networkün Nagios ile nasıl monitörleneceği anlatılacak. Bu sunucuların disk, memory ve işlemci gibi lokal kaynaklarının yanı sıra üzerilerinde çalışan http, smtp, ftp, mysql gibi servisleri de monitörlenecek.

 

Öncelikle, Nagios Nedir’den başlayacak ve adım adım kurulum ve yapılandırma ile ilgili bölümlere geçeceğim.

Yukarı Git

Nagios Nedir ?


Nagios, Linux (ve Unix tüveri) platformlar üzerinde çalışabilen ve bir endüstri standardı halini almış olan GPL lisanslı ücretsiz bir sistem ve yazılımıdır. Bir çok özelliği içerisinde barındıran Nagios’un temel özellikleri aşağıdaki gibidir.

  • Host bazında kaynak monitörleme (Disk, İşlemci, Memory)
  • Servis bazında network monitörleme (SMTP, POP3, HTTP, NNTP, FTP, PING vs.)
  • Plugin desteği sayesinde kendi pluginlerinizi yazabilem esnekliği.
  • “Parent” hosts özelliği ile network hiyerarşisi tanımlayabilme.
  • Belirli durum ve makineler için belirli kişilere uyarı mesajları gönderebilme. (E-mail, Pager, SMS vs.)
  • Web Arayüzü’nden anlık durum görüntülemesi ve gelişmiş raporlar

Bu özelliklerin yanı sıra, yazıda detaylı olarak değinmeyeceğim için bahsetmediğim bir kaç önemli özellik daha bulunuyor. Özelliklerin tam listesi için www.nagios.org adresinden yararlanabilirsiniz.

Yukarı Git

Çalışma Prensibi


Nagios’un çalışma prensibini tam olarak anlayabilmek için aslında yazının tamamına gözatmak iyi olacaktır. Zira, çalışma prensibi içerisinde henüz değinmediğim pluginler ve nrpe gibi addonlar da bulunmaktadır. Ancak üzerinden kısaca gecmek istersek, değinilmesi gereken noktalar şu şekildedir:

Genel Prensip:

Nagios belirli periyodlarla, kaynak ya da servisleri monitor edilecek makine üzerinde bulunan pluginlerin çalıştırılmasını sağlıyor. Çalıştırılan bu pluginler de Nagios’a kontrol edilen kaynak/servis ile ilgili bir cevap dönüyorlar. Bu şekilde Nagios, ilgili kaynak/servis hakkında bilgi sahibi oluyor.

Nagios’un ilgili pluginleri hedef makinede çalıştırması için kullanılabilecek bir kaç yöntem var. Mesela eğer bir Linux/Unix makineyi monitor edecekseniz, Nagios’un pluginleri ssh üzerinden çalıştırmasını sağlayabiliyorsunuz. Ya da client makineye NRPE isimli addonu yükleyerek Nagios’tan aldığı direktiflerle pluginleri çalıştırmasını sağlayabiliyorsunuz.

Ayrıca, Windows bilgisayarları monitör etmek için aynı işi yapan NSClient + + isimli bir Windows Agent’i de mevcut. Ben monitoring işleri için NRPE ve NSClient ++ kullanıyorum. Yazının ilerleyen bölümlerde hem pluginler hem NRPE ve hem de NSClient ++ ile ilgili bilgileri bulabilirsiniz.

Sonuç olarak Nagios hedef makinedeki pluginlerden gerekli bilgi cevaplarını alıyor ve duruma göre bir aksiyon alıyor. Bir örnek vermek gerekirse, mesela üzerinde herhangi bir Linux dağıtımı koşan makineniz var ve bu makinenin işlemci kullanımını sürekli kontrol etmek ve işlemci kullanımı %80 oranına ulaştığı zaman uyarı mesajı almak istiyorsunuz. Nagios üzerinde bu kontrol işlemi için bir konfigurasyon yapıyorsunuz ve örneğin her 5 dakikada bir NRPE ile iletişime geçilerek cpu kontrolü yapan plugin’i çalıştırmasını söylüyorsunuz. Bundan sonra Nagios her 5 dakikada bir hedef makinedeki NRPE ile konuşup cpu kontrolü yapmasını söylüyor. NRPE de, cpu kontrol plugin’ini çalıştırarak aldığı bilgiyi Nagios’a iletiyor. Eğer dönen cevapta kullanım oranı %80 olarak belirtiliyorsa, yapılandırmaya göre mesela bir bilgi mesajı gönderilmesi sağlanıyor.

Bilgilendirme Şekilleri:

Bunun dışında, Nagios’un hostlar için Down ve Unreachable ve servisler için Warning ve Critical olmak üzere farklı uyarı çeşitleri bulunuyor. Tüm bu durumlar için ayrı eşik değerleri belirleyebiliyorsunuz. Örneğin “gelen cevapta işlemci kullanımı %80’se Warning; %90 ise Critical ver.” diyebiliyorsunuz. Ayrıca, “sadece Critical durumlar için mesaj gönder” şeklinde bir tanımlama da yapabiliyorsunuz. Bu şekilde Warning durumları sadece Nagios’un web arayüzünden izlenebilirken, Critical durumlar hem web arayüzünden izlenebiliyor hem de e-posta ya da sms gibi yöntemlerle sistem yöneticisine bildiriliyor.

Durum Tipi:

Çalışma prensibi konusundaki bir diğer önemli nokta ise, genel olarak monitoring yazılımlarının ortak problemi olan “mesaj bombardımanının” önüne geçilmesi için geliştirilmiş “State Type” denilen konu ile ilgili. Mesela, hemen yukarıdaki örnekten devam edersek, ilgili makinede anlık olarak kontrolünüz dahilinde bir işlem yapıyor olabilirsiniz ve bu işlem sonucu işlemci kullanımı %90 sınırını geçebilir. Bu durumda Nagios tarafından her 5 dakikada bir yapılan kontrollerden birinde NRPE’den dönen sonuç da işlemci kullanımının %90’i aştığı yönünde olabilir. Aynı zamanda networksel sorunlardan dolayı Nagios geçici olarak NRPE ile konuşamayabilir ve sağlıklı cevaplar alamayabilir ve ya belirli periyodlarla bir router’ı pingleyip hat ile ilgili kontrol de yapıyor olabilirsiniz ancak bu sorun çok kısa süreli geçici bir problem de olabilir ya da monitor edilen makinelerden birini restart etmiş olabilirsiniz. Bu durumların hepsi için Nagios birer mesaj atacak olursa e-mail ya da cep telefonunuzun posta kutusu gereksiz bir sürü mesajla dolabilir. İşte Nagios’un State Type denilen özelliği bu durumun oluşmaması için güzel bir çözüm sunmaktadır.

Nagios’un bir kaynak ya da servisin durumu ile ilgili karara varması için gerekli iki öğe bulunuyor:

  • Kaynak ya da Servis’in durumu (OK, WARNING, CRITICAL, UP, DOWN vs.)
  • Kaynak ya da Servis durumunun tipi

Nagios, durumu UP ya da OK olmayan kaynak ya da servisler hakkında kesin durum kararı vermek için bahsedilen bu “durum tipi”ni de göze almaktadır. Durum tipleri de kendi aralarında SOFT error ve HARD error olmak üzere ikiye ayrılıyorlar.

SOFT Error:

Nagios’a, bir kaynak ya da servis için dönen cevap eşik değerinin üzerindeyse, durumdan kesin emin olunabilmesi için belirli periyodlarda ve adette yeniden kontrol (re-check) yapmasını söyleyebiliyoruz. Yukarıdaki örnek üzerinden devam edecek olursak, 15 dakikada bir işlemci kontrolü yapılan windows makinenin işlemci kullanımı %90 olduğu zaman Nagios’un bu durumu CRITICAL olarak değerlendirmesini söylüyoruz ancak aksiyon almak üzere kesin karar verebilmesi için örneğin 3 dakikalık periyodlarla 3 kez daha kontrol yapmasını belirtiyoruz.

Bir kaynak ya da servis için plugin’den dönen cevap OK ya da UP değil(se) ve tekrar kontrol işlemleri henüz tamamlan(mamış)sa bu durum SOFT error olarak değerlendiriliyor ve bu durum için herhangi bir uyarı mesajı gönderilmiyor.

İlgili kaynak ya da servis için yapılan 2. tekrar kontrol işleminde dönen cevap OK ya da UP ise buna SOFT recovery deniliyor.

HARD Error:

Bir kaynak ya da servis için plugin’den dönen cevap OK ya da UP değil(se) ve tekrar kontrol işlemleri tamamlan(mış)sa bu durum HARD error olarak değerlendiriliyor ve ilgiliye bir uyarı mesajı gönderiliyor. Yani yukarıdaki örneğe göre, 3 dakikada bir ve 3 kez yapılacak tekrar kontrol işlemi için geçen 9 dakikalık periyod sonucunda durum halen OK ya da UP olmamışsa kalıcı bir problem olduğuna karar veriliyor ve ilgiliye mesaj atmak gibi belirlenen aksiyonlar alınıyor.

Aslında bu konu için daha fazla detay vermek mümkün; ancak şimdilik bu kadar bilgi yeterli olacaktır. Daha derinlere inmek istiyorsanız http://nagios.sourceforge.net/docs/3_0/toc.html adresine bakmanızı öneririm.

Yukarı Git

Sistem Gereksinimleri


Nagios’u çalıştırabilmek için yüklü olması gereken yazılımlar aşağıdaki gibidir.

  • Web arayüzü için bir web server (Apache)
  • StatusMap ve Trends gibi raporlama araçları için GD Kütüphanesi

Kurulum adımında, işe ilk olarak bu yazılımları yükleyerek başlayacağız.

Şimdi Nagios çalışma prenbisi bölümünde sık sık değindiğimiz pluginler ve NRPE ile ilgili açıklamalara değinelim.

Önce Pluginler.

Yukarı Git

Nagios Pluginleri Nedir ?


Nagios network üzerinden servis ya da kaynak monitoring yapmak için herhangi dahili bir kontrol mekanizması kullanmak yerine pluginlerden yararlanıyor. Piyasadaki muadillerinden ayrıldığı en önemli nokta da burasıdır. Pluginler, komut satırında çalıştırılabilen küçük programcıklar ya da scriptlerdir (Perl, shell vs). Temel görevleri, çalıştırıldıklarında, kontrol edecekleri kaynak ya da servis ile ilgili bilgi alıp bir çıktı (stdout) ile durumu Nagios’a bildirmektir. Dolayısı ile herhangi bir kaynak/servisi kontrol etmek üzere komut satırından çalıştırabileceğiniz hemen her şey için bir plugin yazılabilmesi mümkündür. İşte Nagios’un esnekliği buradan kaynaklanmaktadır. Nagios pluginleri konu ile ilgilenen insanlarca yazılmaktadır ve internet üzerinde hemen her konu ile ilgili bir çok Nagios plugini bulunabilmektedir. Hatta küçük bir araştırma ile siz de kendi pluginlerinizi yazabilirsiniz.

Prensip konusunda değindiğimiz gibi, Nagios sadece bu pluginleri çalıştırmakta ve pluginlerden gelen cevaplara göre işlem yapmaktadır.

Nagios’un uzaktaki bir makinede bulunan bu pluginleri çalıştırabilmesi için kullanılabilecek yöntemlere yukarıda değinmiş ve şahsen NRPE isimli addon’u kullandığımdan bahsetmiştim. Şimdi bu konuda bazı açıklamalar yapmak yerinde olacaktır.

Yukarı Git

NRPE ve NSClient + + Nedir ?


NRPE, monitor edilecek makineye kurulan, Linux/Unix üzerinde çalışabilen güzel bir Nagios addon’udur. NRPE bir TCP portunu dinler. Nagios ilgili port üzerinden NRPE ile konuşur ve pluginleri çalıştırmasını söyler. NRPE de ilgili plugini çalıştırıp pluginden dönen cevabı Nagios’a iletir.

 Nagios sistemlere bir daemon (servis) olarak kurulur ve küçük bir yapılandırma dosyası bulunur. Yazının ilgili bölümünde değineceğim gibi NRPE’nin kurulumu oldukça kolaydır ve Nagios için güzel bir agenttir.

MS tarafında ise Windowslar için NRPE ile aynı işi yapan NSClient + + isimli agent bulunmaktadır. Mantık hemen hemen aynı olduğundan dolayı üzerinde çok durmayacağım.

Genel anlamda Nagios ile ilgili teorik bilgiler bu kadardı. Elimden geldiğince uzatmamaya gayret ettim ama işte konu konuyu açıyor ve olayı tam olarak kavrayabilmek için değinilmesi gereken noktalar bulunuyor.

Artık kuruluma geçebiliriz.

Yukarı Git

Kurulum


Nagios’un oldukça kolay bir kurulumu var. Bir kaç adım da kurulumu tamamlamak mümkün. Temel olarak hazırlık aşamasında önceden sistemde kurulu olması gereken paketleri yükleyeceğiz, daha nagios ve nagios-plugins’i kaynak koddan kuracağız, örnek yapılandırma dosyalarından yararlanarak temel ayarları yapacağız ve web arayüzüyle ilgili bir iki küçük ayar yapacağız.

Daha sonrasında ise, yukarıda bahsettiğim örnek network üzerinden tam yapılandırma işlemlerini gerçekleştireceğiz.

Kuruluma Hazırlık

Nagios, sistem durumunu online görüntülemek üzere bir web sunucusuna ve StatusMap, Trends gibi CGI tabanlı raporlama araçları için GD kütüphanesine ihtiyaç duruyor.

Önerildiği üzere ben web sunucusu olarak apache kullanıyorum. Yazıda da yum kullanarak apache ve gd kütüphanesini kuracağız. Ayrıca, kaynak koddan derleme işlemi yapacağımız için sistemde gcc’nin, ve C kütüphanesi glibc’nin yüklü olması gerekiyor. Bunları da aynı şekilde yum ile yükleyeceğiz.

Aşağıdaki adımları uygulayarak gerekli paketleri sisteme toptan yükleyelim ve apache’nin sistem açılışlarında başlatılması için startup’a ekleyelim.

# yum -y install wget httpd php gcc gd gd-devel glibc glibc-common openssl-devel make net-snmp
# chkconfig --level 2345 httpd on

Kurulumlar sorunsuz olarak bittiyse şimdi nagios için bir kullanıcı ve grup oluşturacağız; ve apache’yi bu gruna dahil edeceğiz.

Kullanıcıyı açıp bir şifre verin.

# /usr/sbin/useradd -m nagios
#passwd nagios

Şimdi nagcmd isimli bir grup oluşturun ve nagios ile apache kullanıcılarını dahil edin.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache

Artık download edip compile ederek sisteme yükleyebiliriz.

Kaynak Koddan Kurulum

Ben kaynak kodları tutmak için /usr/src isimli dizini kullanıyorum. Burada nagios isimli bir dizin daha oluşturun ve oluşturulan dizine geçin.

# mkdir /usr/src/nagios
# cd /usr/src/nagios

Şimdi hem nagios kaynak kodlarını hem de plugin paketini download edeceğiz. Şu anki son sürüm Nagios 3.06 ve 1.4.13. http://www.nagios.org/download/download.php adresinden bu paketleri sisteme download edebilirsiniz. Aşağıdaki örnek wget satırları ile ilgili mirrordan direk de download edebilirsiniz.

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz
wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11
.tar.gz

Şimdi aşağıdaki gibi sıkıştırılmış nagios paketini açın ve ilgili dizine geçin.

(şu an /usr/src/nagios dizininde olduğunuzu varsayıyorum.)

# tar xzf nagios-3.0.6.tar.gz
# cd nagios-3.0.6

Configure scriptini çalıştırın.

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

Derleme işlemi sorunsuz bittiyse, derleme işlemine geçebilirsiniz.

# make all

Daha sonra aşağıdaki komutlarla oluşturulan binary dosyalarını, scriptleri ve örnek yapılandırma dosyalarını sisteme yüklüyoruz.

# make install
# make install-init
# make install-config
# make install-commandmode
# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Nagios, artık sisteme kuruldu ancak yapılacak bir iki işlem daha olduğundan dolayı şimdilik start etmiyoruz.

Şimdi kurulum ile birlikte gelen örnek conf dosyalarını kullanacağız ve küçük bir değişiklik yapacağız. Bu dosyalar, /usr/local/nagios/etc dizini altında bulunuyor ve Nagios bu dosyalar ile sorunsuz olarak çalışabilecek durumda geliyor. Bu nedenle sadece contact dosyasında bulunan e-mail adresini değiştirmek şimdilik yeterli olacaktır.

contacts.cfg dosyasını aşağıdaki gibi editleyerek içerisinde kırmızı ile belirtilmiş bölüme kendi e-mail adresinizi yazın.

# vi /usr/local/nagios/etc/objects/contacts.cfg

#######################################################################
define contact{
        contact_name                    nagiosadmin
        use                             generic-contact
        alias                           Nagios Admin
        email                           e-mail@adresiniz.com
        }

Aslında bu kısımda kendi custom contact tanımlamalarınızı yapabilirsiniz; ancak şimdilik Nagios’un orjinal dökümanına sadık kalsak iyi olur.

Neyse minimum yapılandırma ile çalışabilecek konumda olan Nagios’u start etmeden önce aşağıdaki komut ile web arayüzü için config dosyasını yüklüyoruz.

(halen /usr/src/nagios dizininde olduğunuzu varsayıyorum.)

# make install-webconf

Ben nagios üzerindeki apache’yi sadece nagios’un web arayüzü için kullandığımdan, httpd.conf vs. ile ilgili olarak ekstra bir tanımlama yapmıyorum. Sadece arayüze erişim için bir şifre tanımlaması yapmak yeterli olacak.

Şimdi bu işi yapın. Kırmızı ile belirtilmiş kısım kullanıcı adı olarak belirlenecektir; isteğinize göre değiştirebilirsiniz.

Önemli Not: Eğer kullanıcı adında değişiklik yaparsanız, /usr/local/nagios/etc altındaki cgi.cfg dosyası içerisinde nagiosadmin olarak geçen tüm ibareleri belirlediğiniz kullanıcı adı ile değiştirmeniz gerekir. Aksi taktirde web arayüzünde aşağıdaki gibi bir hata alırsınız:

“It appears as though you do not have permission to view information for any of the services you requested…”

Neyse, password tanımlamasını yapalım.

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

Son olarak değişikliklerin geçerli olması için apacheyi restart edin.

# service httpd restart

Son Nagios Pluginlerini sisteme kuracağız.

Paketleri indirdiğimiz dizine geçelim ve nagios-plugins-1.4.11.tar.gz isimli sıkıştırılmış dosyayı açalım.

# cd /usr/src/nagios
# tar xvfz nagios-plugins-1.4.11.tar.gz
# cd nagios-plugins-1.4.11

Derleyip yüklüyoruz.

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

Herşey yolunda gittiyse nagios’u start edebilir ve yapılandırma bölümüne geçebiliriz.

Nagios’u sistem servisi olarak ekleyelim ve açılışlarda çalışacak şekilde ayarlayalım.

# chkconfig --add nagios
# chkconfig nagios on

Şimdi de start edelim; önce yapılandırmanın düzgün olup olmadığını kontrol ediyoruz.

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

Şimdi de start ediyoruz.

# service nagios start

Artık nagios sistemde çalışıyor; ancak web arayüzüne bağlanıp durumu kontrol etmeden önce SeLinux’u devre dışı bırakalım. Zira öntanımlı olarak Enforcing modunda gelen SeLinux Nagios’un CGI dosyalarına erişimi engelleyeceği için web arayüzüne bağlanmak istediğinizde “Internal Server Error” hatası ile karşılaşabilirsiniz.

# setenforce 0

Eğer, SeLinux’u disable etmek istemiyorsanız aşağıdaki komutlarla da Nagios CGI dosyalarına erişim izni verebilirsiniz.

# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

Kurulum adımları bu kadardı. Artık, temel yapılandırma ile çalışan bir Nagios sunucumuz var.

Web arayüzüne http://nagios-ip-adresi/nagios/ adresinden bağlanabilirsiniz.

Not: İlk kurulum sonrasi Nagios arayüzünde localhost HTTP warning veriyor olabilir. Bunun nedeni httpd.conf ‘da /var/www/html dizini için Indexes opsiyonu eklenmediğindendir. Bu durumda dosya içerisinde <Directory “/var/www/html”> kısmındaki Options bölümüne Indexes ibaresini ekleyin ve apacheyi restart edin. Halen aynı hatayı alıyorsanız /etc/httpd/conf.d/welcome.conf dosyası içerisindeki -Indexes ibaresinindeki – işaretini kaldırmanız gerekir.

Şimdi Yapılandırma bölümüne geçelim.

Yapılandırma


Yazının başından beri bahsettiğim üzere Nagios oldukça esnek bir yazılım ve bu nedenle de yapılandırma konusu epey kapsamlı. Hemen hemen yapamayacağımız şey yok. Bu nedenle konuyu daha iyi kavrayabilmek için örnekleri bir senaryo üzerinden gitmeyi uygun buluyorum.

 

Fakat örnek senaryo üzerinden uygulamaya geçmeden önce haşır neşir olunacak Nagios dizin ve dosyalarının neler olduğuna bakmak ve açıklamalarını vermek sanıyorum yerinde olacaktır.

İşe buradan başlayalım:

Nagios Dizin ve Dosyaları

Dizinler

/usr/local/nagios: Nagios ana dizini.

/usr/local/nagios/bin: Binary dosyaları.

/usr/local/nagios/etc: Yapılandırma dosyaları.

/usr/local/nagios/etc/objects: Nesne tanımlama dosyaları.

/usr/local/nagios/libexec: Plugin dosyaları.

/usr/local/nagios/sbin: CGI dosyaları.

/usr/local/nagios/share: Web Interface HTML dosyaları.

/usr/local/nagios/var: Cache, lock ve log dosyaları.

Dosyalar

/usr/local/nagios/etc/nagios.cfg: Ana nagios yapılandırma dosyası.

/usr/local/nagios/etc/cgi.cfg: CGI yapılandırması.

/usr/local/nagios/etc/resource.cfg: Kaynak yapılandırma dosyası.

/usr/local/nagios/etc/objects/commands.cfg: Komutların tanımlandığı dosya.

/usr/local/nagios/etc/objects/contacts.cfg: Kontakt ve kontakt gruplarının tanımlandığı dosya.

/usr/local/nagios/etc/objects/templates.cfg: Host ve servis tanımları için şablon dosyası.

Bu dosyaların detayları şöyle:

nagios.cfg

Ana yapılandırma dosyası budur. Genel ayarlar ve hostlar için tanımlamaların yapıldığı bu dosya ile sık sık haşır neşir olacağız.

cgi.cfg

Bu dosya da ise CGI ile ilgili tanımlamalar bulunmaktadır. Normal olarak pek fazla editlenmesi gereken bir dosya değildir. Web arayüzü için güvenlik işlemleri buradan yapılır.

resource.cfg

Kullanıcılar tarafından oluşturulan macroların (pluginlerin) tutulduğu yerlerin tanımlandığı dosyadır. Nagios bir plugin çalıştırmak istediği zaman, bu dosya içinde tanımlanmış olan path’i baz alır.

commands.cfg

Nagios’un check işlemi, mesaj gönderme vs gibi şeyleri yapabilmesi için çalıştırılacak komutlar bu dosya içerisinde belirlenir. Yani nagios’a bir servisi kontrol etmesi için tanımlama yaptığınız zaman o kontrol için çalıştırılacak komutu bu dosya içerisinden öğrenir. Kurulum sırasında yapılan temel konfigurasyonda bu dosya oluşturulmuş ve hemen hemen gerekli olan tüm komutlar işlenmiştir. Ancak siz Nagios’un esnekliğinden yararlanıp özelleştirme yapmak istediğiniz zaman bu dosyaya ekleme yapmak durumunda kalabilirsiniz. Örneğin uyarıları SMS yolu ile de alabilmek isterseniz, ilgili plugini yükledikten sonra Nagios’un sms gönderebilmek için kullanması gereken komutu bu dosyada belirtmeniz gerekir.

contacts.cfg

Burada uyarı mesajlarını alacak kişiler için birer contact oluşturuyorsunuz ve grup tanımlamaları yapıyorsunuz. Örneğin SMS ya da e-mail için ayrı iki contact grubu oluşturup kimi durumlarda sms kimi durumlarda sadece e-mail gönderilmesini sağlayabilirsiniz.

tepmplates.cfg

Bu dosyada da host ve servisler için önceden bir şablon oluşturabiliyorsunuz. (Default olarak oluşturulanlar da bulunmaktadır.) Örneğin 20 tane *nix 20 yane MS tabanlı sunucunuz varsa *nix’ler ve Windowslar için ayrı iki şablon oluşturup, her host ya da servis tanımlaması yaparken önceden oluşturduğunuz bu şablonları kullanabiliyorsunuz.

Konfigurasyon ile ilgili dosya ve dizinlere ait kısa açıklamalar bundan ibaretti. Sık sık işimizin düşeceği dosyalar ile ilgili detaylı açıklamalar yapılandırma sırasında verilecek.

Yukarı Git

Örnek Senaryo

Bu bölümde, yazının başında da bahsettiğim gibi bir adet CentOS 5.2, bir adet FreeBSD 7.0 ve bir Windows Server 2003 üzerinde tanımlama işlemleri yapacağız.Örnek senaryoda hangi makineler için hangi kaynak ve servislerin monitörleneceği aşağıdaki gibi olacak.

Lokal Kaynaklar:

CPU Load (CentOS, FreeBSD)

Bağlı Kullanıcıların Sayısı (CentOS, FreeBSD)

Disk Partisyonlarının Kullanım Durumu (CentOS, FreeBSD, windows)

Toplam Process Adedi (CentOS, FreeBSD)

Zombie Process Adedi (CentOS, FreeBSD)

Swap Kullanımı (CentOS, FreeBSD)

Memory Kullanımı (Windows)

Uptime (Windows)

Servisler:

httpd (CentOS)

smtp (FreeBSD)

pop3 (FreeBSD)

ftp (FreeBSD)

W3SVC (Windows IIS Servisi)

Bu senaryo üzerinde yapılandırma gerçekleştirirken, önce Nagios Server tarafında NRPE ile ilgili işlemler yapılacak sonrasında da monitor edilecek bilgisayarlar üzerine NRPE addon’u kurulacak. NRPE kurulumundan sonra nagios’da monitor edilecek bilgisayarlar için host/servis tanımlaması yapılacak.

Nagios server tarafındaki yapılandırma işlemleri ile ilgili izlenebilecek iki yol var. Birincisi minimal configuration denilen, monitör edilecek hostlar ve servisler için girilmesi gereken satırların tek bir dosyada tutulması, ikincisi ise her bir host için ayrı bir .cfg dosyası tanımlanması. Ben genel olarak daha derli toplu olması açısında ikinci adımı izliyorum. Dolayısı ile bu dökümanda da aynı yol izlenecek.

Daha önceden de bahsettiğim gibi Nagios kurulumu sırasında tüm temel konfigurasyon dosyaları oluşturuluyor. Bu dosyaları kullanabileceğimiz gibi kendi dosyalarımızı kendimiz de oluşturabiliriz. Ben temel yapılandırmalar için orjinal conf dosyalarını kullanacağım.

Ön bilgilerden sonra yapılandırma işlemlerine başlayabiliriz.

Nagios Sunucusu Tarafında NRPE Yapılandırması

Örnek senaryoda bahsettiğimiz monitor edilecek bilgisayarlar (host) NRPE addon’u ile check edileceği için ilk olarak Nagios’a check_nrpe isimli plugini kurmamız gerekiyor. Bu şekilde, Nagios check_nrpe pluginini kullanarak üzerinde NRPE agent kurulu bilgisayarlarımıza pluginlerin çalıştırılmasını söyleyebilecek.

Not: Burada dikkat edilmesi gereken, Nagios’un üzerine nrpe plugin‘ini kuruyoruz. Ancak monitor edilecek makinelere sistemde bir daemon olarak çalışacak ve Nagios sunucusu ile iletişime geçilecek bir portu dinleyecek olan nrpe addon‘unu kuracağız. İkisini birbirine karıştırmamakta fayda var.

Bu plugin’i de kaynak koddan kuracağız. Ama öncesinde gerekli olan openssl-devel paketini sisteme aşağıdaki gibi yükleyin. Aksi halde nrpe kurulumunda “checking for SSL headers… configure: error: Cannot find ssl headers” şeklinde bir hata alabilirsiniz.

# yum install openssl-devel

Şimdi nrpe pluginini download edip sisteme kuracağız.Paketi http://www.nagios.org/download/addons/ adresinden indirebilirsiniz. Bu dökümanı yazarken ki son sürüm NRPE 2.12’ydi ve paketi aşağıdaki download linkinden indirdim. (Ancak siz son sürümü nagios.org download sayfalarından indirin.)

# cd /usr/src/nagios/
# wget http://puzzle.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
# tar xzf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure
# make all
# make install-plugin

NRPE pluginini, diğer pluginlerin de durduğu /usr/local/nagios/libexec/ yüklendi. Şimdiki adım Nagios’a check_nrpe pluginini nasıl çalıştıracağını öğreteceğimiz commands.cfg isimli dosyada yapılacak tanımlamalarda.

/usr/local/nagios/etc/objects/commands.cfg dosyasını editleyin ve en altına aşağıdaki satırları ekleyin.

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

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

Böylece, Nagios’a nrpe için komutu öğretmiş oluyoruz.

NRPE plugini ile ilgili olarak -nagios sunucusu üzerinde- yapılması gerekenler bu kadardı. Şimdi monitor edilecek hostlar üzerinde NRPE addon’unun kurulum ve yapılandırmasına geçelim. Hostlardaki NRPE’ler hazır olduktan sonra Nagios’un monitor işlemlerine başlayabilmesi için yapılması gereken tanımlama işlemlerine geçeceğiz.

NRPE ile Linux ve Unix Türevi Makinelerin Monitörlenmesi

Bu bölümde, sırası ile bir CentOS 5.3, bir FreeBSD 7.0 ve bir Windows Server 2003 üzerine NRPE addonu yüklenecek ve konfigürasyonları yapılacak. Bu şekilde ilgili hostlar -NRPE kurulumu ile birlikte gelen- nagios pluginlerini çalıştırmak üzere Nagios servardan komut alabilir duruma gelecekler.

CentOS 5.2 Üzerine NRPE kurulumu

CentOS’a NRPE kurmanın en güzel yolu yum paket yöneticisini kullanmaktır. Ancak default CentOS 5 depolarında nagios-nrpe paketi bulunmadığından dolayı rpmforge’un reposunu yum database’ine ekleyeceğiz. Bu işlem için aşağıdaki adımları izleyin.

Not:

1 – Bu yazıyı hazırlarken, rpmforge’un CentOS için olan repo rpm versiyonu 0.3.6-1 idi. Aşağıdaki wget satırı ile download etmeden önce yeni bir versiyonun çıkıp çıkmadığını http://dag.wieers.com/rpm/packages/rpmforge-release/ adresinden kontrol edip son sürümü download edin.

2 – Wget satırındaki link tek bir satırdan ibarettir.

# 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

Bu işlemlerden sonra nagios-nrpe isimli paketi kuruyoruz ve sistem açılışlarında başlatılması için startup’a ekliyoruz.

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

Herhangi bir sorunla karşılaşmadıysanız şimdiki adım NRPE ile ilgili yapılandırmalarda.

NRPE’nin default conf dosyası /etc/nagios/ altındaki nrpe.cfg isimli dosyadır. Çok fazla bir değişiklik yapmamıza gerek yok. Sadece Nagios’un nrpe daemon’ına bağlanabilmesi için “allowed_host” bölümünde nagios server’ın da IP adresini belirtmek gerekiyor.

Bunun için /etc/nagios/nrpe.cfg editleyin ve allowed_hosts satırını bularak aynen aşağıda olduğu gibi Nagios sunucunuzun ip adresini girin.

allowed_hosts=127.0.0.1,Nagios_Serverın_IP'si

Bunın dışında dosyada Nagios’tan gelen plugin çalıştırma istekleri sırasında kullanılacak komutlar tanımlanmış durumdadır. Aşağıda bu bölümün bir çıktısını görebilirsiniz:

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

Dikkat ettiğiniz gibi bu komutlar ilgili pluginleri çalıştırıyorlar ve warning ya da critical durumlar için eşik değerleri burada belirleniyor. En üstteki satırı ele alırsak, Nagios’a user sayısı 5 olduğunda warning, 10 olursa critical değeri döndürmesi belirtiliyor. Siz bu eşik değerlerini isteğinize göre düzenleyebilirsiniz. Ayrıca, birden fazla diskiniz ya da disk bölümünüz varsa, check_disk komutuna benzer ama farklı bir isme sahip satırlar girebilirsiniz.

Bunun dışında, değiştirmeyeceğimiz için değinmeyeceğim bazı temel satırlar da mevcut bunları da dosya içerisinde yapılmış açıklamalardan yola çıkarak değiştirebilirsiniz.

Şimdi NRPE servisini çalıştıralım.

# service nrpe start

NRPE daemon’u TCP 5666 portunu dinlemektedir. NRPE’nin düzgün çalışıp çalışmadığına netstat ile bakabilirsiniz. Komut ve çıktısı aşağıdaki gibidir.

# netstat -an |grep 5666
tcp       0     0 0.0.0.0:5666          0.0.0.0:*         LISTEN

Ayrıca, Nagios sunucusunda check_nrpe pluginini manuel olacak çalıştırarak durumu kontrol edebilirsiniz. Komut ve çıktısı:

# /usr/local/nagios/libexec/check_nrpe -H Host_IP'si
NRPE v2.5.1

Benzer çıktıları aldıysanız NRPE düzgün çalışıyor demektir.

FreeBSD 7.0 Üzerine NRPE kurulumu

NRPE addon’u FreeBSD’ye port edilmiş durumdadır, bu nedenle direk olarak aşağıdaki şekilde portstan kurulum yapabilirsiniz.

Not: Sisteminizde ports collection yüklü değil ya da update edilmemiş durumdaysa önce bu işlemleri yapmanız gerekmekte. Şu sayfadan yararlanarak ports’u kurabilir ya da update edebilirsiniz: http://www.syslogs.org/2008/06/using-portsnap/

Aşağıdaki adımları uygulayarak kurulumu yapın.

# cd /usr/ports/net-mgmt/nrpe2
# make install clean

Not: make install clean dediğiniz zaman gelen ekranda SSL supportu da seçin. Nagios sunucusu üzerindeki check_nrpe plugin önm tanımlı olarak SSL üzerinden bağlantı kuracağı için, SSL desteği vermemeniz soruna neden olur.

NRPE örnek konfig dosyası, /usr/local/etc altında nrpe.cfg-sample ismi ile bulunmaktadır. Bu dosyası aşağıdaki gibi copyalayarak nrpe.cfg olarak set edin.

# cp nrpe.cfg-sample nrpe.cfg

Conf dosyasının içeriği CentOS için verilen örnekte anlatılanlarla hemen hemen aynı, sadece küçük iki değişiklik var. Öncelikle nrpe.cfg dosyasının allowed_hosts kısımına kendi nagios sunucumuzun ip’sini eklememiz gerekiyor.

/usr/local/etc/nrpe.cfg dosyasını editleyin ve allowed_hosts satırını bularak aynen aşağıda olduğu gibi Nagios sunucunuzun ip adresini girin.

allowed_hosts=127.0.0.1,Nagios_Serverın_IP'si

Bir diğer fark ise, komutların ve eşik değerlerinin belirtildiği satırlardaki check_disk bölümleridir. Zira FreeBSD’nin disk partitioning yapısı her sistem dizinini bir partisyon olarak set etmek üzere kurulduğundan dolayı FreeBSD’lerdeki bu conf tanımları aşağıdaki gibi görünmektedir.

command[check_users]=/usr/local/libexec/nagios/check_users -w 5 -c 10
command[check_load]=/usr/local/libexec/nagios/check_load -w 15,10,5 -c 30,25,20
command[check_root]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /
command[check_var]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /var
command[check_tmp]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /tmp
command[check_usr]=/usr/local/libexec/nagios/check_disk -w 20% -c 10% -p /usr
command[check_zombie_procs]=/usr/local/libexec/nagios/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/libexec/nagios/check_procs -w 150 -c 200

Gördüğünüz gibi disklerle ilgili bölümlerde her partisyon için bir check_disk satırı bulunuyor.

Eşik değerlerini ve geri kalan tüm ayarları açıklamalardan hareketle keyfinize göre değiştirebilirsiniz. Ancak nrpe bu hazır ayarlar ve allowed_hosts satırında yaptığımız ekleme ile sorunsuz olarak çalışacaktır.

Son olarak sistem açılışlarında otomatik başlatılması için aşağıdaki komut ile rc.conf dosyasına gerekli satırı girin ve NRPE’yi çalıştırın.

# echo nrpe2_enable='"YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/nrpe2 start

NRPE sorunsuz olarak çalışıyorsa, netstat ile dinlediği portu görebilirsiniz.

# netstat -an |grep 5666
tcp4    0    0  *.5666           *.*        LISTEN

Ayrıca, gene Nagios Server üzerinden check_nrpe komutunu çalıştırıp duruma bakabilirsiniz.

Örnek çıktı aşağıdaki gibi olmalıdır:

# /usr/local/nagios/libexec/check_nrpe -H Host_IP'si
NRPE v2.5.1

FreeBSD ile ilgili NRPE konusu bu kadar. Şimdi diğer aşamalara geçebiliriz.

Windows Server 2003 üzerine NSClient++ kurulumu

Yazının başında teorik olarak NSClient + +’dan bahsetmiştim, şimdi konuyu biraz daha açmak icap ediyor. Bir windows üzerine NSClient + + agenti aynı NRPE’de olduğu gibi 5666. porta yerleşiyor ve nagios, bu host ile irtibata geçerek, pluginleri içerisinde bulunan check_nt ile Windows makinelere kontrol pluginlerinin çalışmasını söylüyor.

Kurulumu da çok basit.

http://sourceforge.net/project/showfiles.php?group_id=131326&package_id=144099 adresinden NSClinet ++’yı download edip ve next next next şeklinde kuruyorsunuz. Bu şekilde agent, nagios pluginleri ile birlikte bir sistem servisi olarak kuruluyor.

Yapılandırma dosyası C:\Program Files\NSClient++ altında bulunan NSC.INI isimli dosya. Burada bir iki küçük değişiklik yapmak icap ediyor.

NSC.INI dosyasını açın ve dosyanın üstlerinde yer alan ve aşağıda görmüş olduğunuz satırları bularak başlarındaki (;) noktali virgül işaretlerini kaldırarak uncomment edin.

FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll

Daha sonra FreeBSD için yapmış olduğumuz gibi INI dosyası içerisindeki allowed_hosts satırını bulun ve başındaki (;) işaretini kaldırın. Ayrıca aşağıda görmüş olduğunuz gibi 127.0.0.1 ibaresini silip yerine Nagios Sunucunuzun ip adresini yazın.

allowed_hosts=Nagios_Sunucusu

Not: Dosya içerisinde bu satırdan iki tane var. Siz yukarıda kalan Settings başlıklı bölümdekini değiştireceksiniz.

Şimdi NSClient hazır, command prompt’ta aşağıdaki komutu girerek servisi çalıştırın:

C:\>net start NSClientpp

netstat ile portun dinlenip dinlenmediğine bakın. Komut ve çıktısı aşağıdaki gibi olmalıdır.

C:\>netstat -an |find /i ":5666"
  TCP    0.0.0.0:5666     0.0.0.0:0       LISTENING

Görüldüğü gibi port dinleniyor. Şimdi nagios sunucusundan test edelim.

Komut ve çıktı aşağıdaki gibi olmalıdır.

# /usr/local/nagios/libexec/check_nrpe -H 192.168.12.12
I (0.3.5.1 2008-09-24) seem to be doing fine...

(Evet NRPE ile check ettik.)

Artık windows makine de monitor edilmeye hazır.

Şimdi son aşamaya geçelim.

Nagios’un Yapılandırılması

Elimizde monitor edilmeye hazır üç adet makine olduğuna göre yapmamız gereken tek şey Nagios’u bu makineleri monitor edebilmesi için yapılandırmaktan ibaret. Ancak ben yapılandırma ile ilgili konularda, oluşturulması gereken dosyaları ya da eklenmesi gereken satırları vermekle birlikte üzerinde çalışacağımız dosyalar hakkında -yeri geldikçe- detay vermeyi de sürdüreceğim. Bu şekilde konunun daha iyi kavranabileceğini düşünüyorum.

Not: Yapılandırma sırasında, monitor edilecek bilgisayarların isimleri FREEBSD, CENTOS ve WIN2003 olarak verilecektir.

İşe, öncelikle host ve servisler için kullanılacak şablonların oluşturulduğu templates.cfg dosyasından başlamak yerinde olur. Bu dosyaya çok küçük bir iki şey ekleyeceğiz. Şablonlar /usr/local/nagios/etc/objects/templates.cfg isimli dosya da tanımlanmaktadır. Dosya’yı editlediğinizde aşağıdaki gibi ana başlıklara bölünmüş tanımlamalar göreceksiniz. İlk olarak bunlara değinelim sonrasında eklemeleri yapalım.

Contact Şablonu

###############################################################################
###############################################################################
#
# CONTACT TEMPLATES
#
###############################################################################
###############################################################################

# Generic contact definition template - This is NOT a real contact, just a template!

define contact{
        name                            generic-contact
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r,f,s
        host_notification_options       d,u,r,f,s
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        register                        0
        }

Bu satırlar aslında conf dosyasının içinde satır yanlarında yazıyor. (Ben kalabalık yapmamak için buraya aktarmadım ama kısaca değinmek istiyorum.)

service_notification_period : Servisler için uyarı mesajları hangi periyodda gönderilecek. (Herzaman – 24×7)

service_notification_period: Hostlar için uyarı mesajları hangi periyodda gönderilecek. (Herzaman – 24×7)

service_notification_options: Servisler için hangi durumlarda mesaj gönderilecek. (Hepsi – warning, critical vs.)

host_notification_options: Hostlar için hangi durumlarda mesaj gönderilecek. (Hepsi – Up, Down, Unreachable.)

service_notification_commands: Servisler için hangi yolla mesaj göndelecek. (commands.cfg dosyasında belirtilmiş olan komutun adı.)

host_notification_commands: Hostlar için hangi yolla mesaj göndelecek. (commands.cfg dosyasında belirtilmiş olan komutun adı.)

Host Şablonları

Aynı dosya içerisindeki bir diğer bölüm ise içeriğini aşağıda önemli ilk üç şablonu görebileceğiniz host şablonları.

#########################################################
#
# HOST TEMPLATES
#

########################################################

define host{
        name                            generic-host
        notifications_enabled           1
        event_handler_enabled           1
        flap_detection_enabled          1
        failure_prediction_enabled      1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        notification_period             24x7
        register                        0
        }

Bu kısımda, her türlü özelliğin aktif olduğunu görebilirsiniz. Yeni isimlerle kendi host şablonlarınızı oluşturup bu şablonları kullanacağınız makineler için bazı özellikleri devre dışı bırakabilirsiniz.

Ayrıca, Nagios kurulum sırasında Linux ve Windows makineler için de aşağıdaki gibi şablonlar oluşturuyor.

# Linux host definition template - This is NOT a real host, just a template!

define host{
        name                            linux-server
        use                             generic-host
        check_period                    24x7
        check_interval                  5
        retry_interval                  1
        max_check_attempts              10
        check_command                   check-host-alive
        notification_period             workhours
        notification_interval           120
        notification_options            d,u,r
        contact_groups                  admins
        register                        0
        }

# Windows host definition template - This is NOT a real host, just a template!

define host{
        name                    windows-server
        use                     generic-host
        check_period            24x7
        check_interval          5
        retry_interval          1
        max_check_attempts      10
        check_command           check-host-alive
        notification_period     24x7
        notification_interval   30
        notification_options    d,r
        contact_groups          admins
        hostgroups              windows-servers
        register                0

        }

Gördüğünüz gibi linux-server ve windows-server isimli iki adet host şablonu tanımlı ve nasıl bir politika izleneceği belirlenmiş durumda.

Ayrıca, use kısmında generic-host isimli, bir önceki adımda bahsettiğimiz tüm özelliklerin aktif olduğu genel şablon kullanılıyor. Bu şekilde, her özel host şablonu tanımladığınızda aynı satırları tekrar tekrar yazmak zorunda kalmıyorsunuz. Use komutu ile sık sık karşılaşacağız.

Açıklamalar şu şekilde:

use: Hangi genel host şablonu kullanılacak (tüm özelliklerin aktif edildiği generic-host)

check_period: Hangi zaman dilimlerinde kontrol işlemi yapılacak. (Herzaman)

check_interval: Kaç dakikada bir kontrol işlemi yapılacak. (5)

retry_interval: Durumu UP olmayan hostlar için yeniden check işlemi kaç dakikada bir yapılacak. (1)

max_check_attempts: Durumu UP olmayan hostlar için yeniden check işlemi kaç kez tekrarlanacak. (10)

check_command: Hostun UP olup olmadığına hangi komut ile bakılacak. (commands.cfg – check-host-alive komutu)

notification_period: Uyarı mesajları hangi zaman dilimlerinde kontrol işlemi yapılacak. (Herzaman)

notification_interval: Uyarı mesajları kaç dakikada bir tekrar gönderilecek. (120)

notification_option: Hangi durumlar için uyarı mesajı gönderilecek. (Down, Unreachable, Recovery)

contact_groups: Uyarılar hangi contact grubuna gönderilecek. (contacts.cfg dosyasında tanımlanan admins grubuna)

Bu host şablonları dışında aynı dosya içerisinde printer ve swicthler için de generic-host şablonunu kullanan birer host şablonu bulunmakta.

Servis Şablonları

templates.cfg dosyası içerisindeki bir diğer bölüm ise servislerle ilgili şablonların oluşturduğu kısımdır.

############################################################
#
# SERVICE TEMPLATES
#
############################################################

define service{
        name                            generic-service
        active_checks_enabled           1
        passive_checks_enabled          1
        parallelize_check               1
        obsess_over_service             1
        check_freshness                 0
        notifications_enabled           1
        event_handler_enabled           1
        flap_detection_enabled          1
        failure_prediction_enabled      1
        process_perf_data               1
        retain_status_information       1
        retain_nonstatus_information    1
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           10
        retry_check_interval            2
        contact_groups                  admins
        notification_options            w,u,c,r
        notification_interval           60
        notification_period             24x7
         register                        0
        }

Burada da aynen generic-host isimli şablonda olduğu gibi servis kontrollerinde izlenecek politikalar ve hangi özelliklerin aktif olacağı ile ilgili tanımlamalar yapılmış vaziyette. Önemli satırlara, yazının genelinde ve son olarak generic-host bölümünde de değindiğim için bu kısımda ayrıca detay vermeyeceğim.

Bu default servis tanımının yanı sıra lokal servisler için kullanılmak üzere bir adet daha şablon bulunmakta:

define service{
        name                            local-service
        use                             generic-service
        max_check_attempts              4
        normal_check_interval           5
        retry_check_interval            1
        register                        0
        }

Buraya kadar olan kısım, Nagios tarafından öntanımlı oluşturulmuş alanlardı. Bu şablonları isteğinize göre değiştirebilir ya da yenilerini ekleyebilirsiniz. Ancak hazır durumdakiler genel olarak gayet yeterlidir.

Host ve Servis Grup Tanımlamaları

Yazının başlarında, host ve servisler için grup tanımlamaları yaptığımı ve bu şekilde web arayüzünden gelişmiş raporlar çekebildiğimi söylemiştim. Şimdi genel geçer host ve servis tanımlarını templates.cfg dosyası içerisinde belirtelim.

Dosyayı editleyin ve en alta aşağıdaki satırları ekleyin.

###############################################################################
###############################################################################
#
# HOST/SERVICE GROUP DEFINITIONS
#
###############################################################################
###############################################################################

define hostgroup{
        hostgroup_name  windows-servers ; Host Grubunun Adi
        alias           Windows Servers ; Aciklama
        members         WIN2003  ; Gruba uye makineler.
        }

define hostgroup{
        hostgroup_name  linux-servers ; Host Grubunun Adi
        alias           *Nix Servers ; Aciklama
        members         localhost,FREEBSD,CENTOS ; Gruba uye makineler
        }

define servicegroup{
        servicegroup_name       CPU
        alias                   Islemci Durumu
        }

define servicegroup{
        servicegroup_name       Memory
        alias                   Ram Durumu
        }

define servicegroup{
        servicegroup_name       DISK
        alias                   DISK Durumu
        }

define servicegroup{
        servicegroup_name       HTTP
        alias                   Web Server Durumu
        }

define servicegroup{
        servicegroup_name       SMTP
        alias                   Mail Server Durumu
        }

define servicegroup{
        servicegroup_name       FTP
        alias                   FTP Server Durumu
        }

Bu şekilde host ve servis gruplarını tanımladık. Ancak henüz iş bitmedi, Linux ve Windows makineler için kullanılmak üzere birer grup tanımlaması, kurulum sırasında Nagios tarafından yapılıyor. Windows grubu için tanımlama objects/ dizininin altındaki windows.cfg dosyası içerisinde bulunuyor. Linux içinse localhost.cfg dosyasında bulunuyor. Ancak ben derli toplu olması için bu tip tanımlamaların hepsini templates.cfg dosyasında yapıyorum. Dolayısı ile localhost.cfg ve windows.cfg dosyalarından # HOST GROUP DEFINITIONS

bölümlerini silmeniz gerekiyor. (dosyalar /usr/local/nagios/etc/objects dizini altında duruyor.).

Yukarıda bahsettiğim host grup olayı tamamen keyfi uygulamamdır. Dolayısı ile siz istemezseniz bu host (servis değil) grupları templates.cfg dosyasından çıkarabilirsiniz. Ancak bu durumda orjinal yerlerinden silmemelisiniz.

Son olarak servis gruplarına göz atarsanız ilk etapta lazım olacak hemen her türlü kategori için bir grup oluşturulduğunu görebilirsiniz. Siz ihtiyaca göre daha fazla grup ekleyebilirsiniz.

Artık ikinci aşamaya geçebiliriz.

Hostlar İçin CFG Dosyaları

Şimdi, her bir bilgisayar için birer cfg dosyası tanımlayacağız ve dosyaların path’lerini ana conf dosyası olan nagios.cfg dosyasında bildireceğiz. Ancak bu bölümün sonuna kadar nagios servisini restart etmeyeceğiz. Çünkü dosyalardaki tüm ifadeler birbirleri ile bağımlı çalıştığından dolayı tüm conf bitmeden restart ederseniz hata alırsınız.

Önce dosyaları oluşturalım.

(Dosya isimleri olarak ilgili OS adları kullanılacak.)

# touch /usr/local/nagios/etc/objects/freebsd.cfg
# touch /usr/local/nagios/etc/objects/centos.cfg
# touch /usr/local/nagios/etc/objects/win2003.cfg

Not: İlgili dizinde öntanımlı bir windows.cfg dosyası bulunduğu için biz win2003.cfg ismini kullanıyoruz.

Dosyalara yazılması gerekenler şu şekilde:

Kırmızı ile işaretlenmiş bölümleri düzeltmeyi unutmayın.)

/usr/local/nagios/etc/objects/freebsd.cfg

#####################################################################
#
#FREEBSD HOST YAPILANDIRMA DOSYASI
#
#####################################################################
define host{
        use linux-server ; Inherit default values from a template
        host_name FREEBSD ; The name we're giving to this server
        alias  FREEBSD / FreeBSD 7.0 ; A longer name for the server
        address FreeBSD'nin_IP-Adresi ; IP address of the server
}

define service{
        use generic-service
        host_name FREEBSD
        service_description CPU Load
        servicegroups   CPU
        check_command check_nrpe!check_load
        }

define service{
        use generic-service
        host_name FREEBSD
        service_description Current Users
        check_command check_nrpe!check_users
        }

define service{
        use  generic-service
        host_name FREEBSD
        service_description / Free Space
        servicegroups   DISK
        check_command check_nrpe!check_root
        }

define service{
        use  generic-service
        host_name FREEBSD
        service_description /usr Free Space
        servicegroups   DISK
        check_command check_nrpe!check_usr
}

define service{
        use  generic-service
        host_name FREEBSD
        service_description /var Free Space
        servicegroups   DISK
        check_command check_nrpe!check_var
        }

define service{
        use generic-service
        host_name FREEBSD
        service_description Total Processes
        check_command check_nrpe!check_total_procs
        }

define service{
        use generic-service
        host_name FREEBSD
        service_description Zombie Processes
        check_command check_nrpe!check_zombie_procs
        }

Görüldüğü gibi lokal kaynakların hemen hepsi monitor edilecek. Dikkat ederseniz templates.cfg dosyasında oluşturulan şablonlar freebsd.cfg dosyası içerisinde use komutu ile kullanılıyor.

Şimdi de CentOS için oluşturduğumuz cfg dosyasında gerekli tanımlamaları yapalım.

/usr/local/nagios/etc/objects/centos.cfg

#####################################################################
#
#CENTOS HOST YAPILANDIRMA DOSYASI
#
#####################################################################
define host{
        use linux-server
        host_name CENTOS
        alias  CENTOS / CentOS 5.2 64bit
        address 192.168.0.221
}

define service{
        use generic-service
        host_name CENTOS
        service_description CPU Load
        servicegroups   CPU
        check_command check_nrpe!check_load
        }

define service{
        use generic-service
        host_name CENTOS
        service_description Current Users

        check_command check_nrpe!check_users
        }

define service{
        use  generic-service
        host_name CENTOS
        service_description / Free Space
        servicegroups   DISK
        check_command check_nrpe!check_disk
        }

define service{
        use generic-service
        host_name CENTOS
        service_description Total Processes
        check_command check_nrpe!check_total_procs
        }

define service{
        use generic-service
        host_name CENTOS
        service_description Zombie Processes
        check_command check_nrpe!check_zombie_procs
        }

Benzer tanımlar burada da geçerli. Yine linux-server isimli şablonu ve ilgili servis gruplarını belirtiyoruz.

Bir tane de Win2003 Server için yapalım.

/usr/local/nagios/etc/objects/win2003.cfg

#####################################################################
#
#WINDOWS HOST YAPILANDIRMA DOSYASI
#####################################################################
define host{
        use             windows-server
        host_name       WIN2003
        alias           WIN2003 - Windows 2003
        address         Windows'un_IP_Adresi
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     Uptime
        check_command           check_nt!UPTIME
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     CPU Load
        servicegroups           CPU
        check_command           check_nt!CPULOAD!-l 5,80,90
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     Memory Usage
        servicegroups           Memory
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     C:\ Drive Space
        servicegroups           DISK
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     D:\ Drive Space
        servicegroups           DISK
        check_command           check_nt!USEDDISKSPACE!-l d -w 90 -c 95
        }

Burada check_nrpe yerine check_nt plugini kullanılıyor. Ve eşikler NRPE’nin aksine direk Nagios server üzerindeki bu dosya üzerinden belirleniyor.

Üç host için de conf dosyası oluşturulduğuna göre, son adıma geçebiliriz.

Nagios.cfg – Ana Yapılandırma Dosyası

Bu dosyada yapmamız gereken tek şey, üç host için oluşturduğumuz cfg dosyalarının pathlerini bildirerek monitoring işleminin başlamasını sağlamak.

/usr/local/nagios/etc/nagios.cfg dosyasını açın ve aşağıda görüldüğü şekliyle FreeBSD ve Centos için oluşturulan cfg dosyalarının yerini # Definitions for monitoring the local (Linux) host kısmının altında belirtin. Aynı şeyi bir de Win2003 için # Definitions for monitoring a Windows machine satırı altında yapın.

İlgili bölümler şu şekilde görünmelidir:

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/freebsd.cfg
cfg_file=/usr/local/nagios/etc/objects/centos.cfg

# Definitions for monitoring a Windows machine
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
cfg_file=/usr/local/nagios/etc/objects/win2003.cfg

Şu an temel kaynakları monitör etmek için gerekli olan tanımlamalar yapıldı.

Şimdi aşağıdaki komut ile konfigürasyonu kontrol edelim ve sorun olup olmadığına bakalım.

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

Çıktı aşağıdaki gibiyse conf doğrudur demektir. Bu durumda nagios servisini restart edip (service nagios restart), değişiklikleri aktif edebilirsiniz.

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Artık monitoring durumunu Nagios web arayüzünden görebiliyor olmalısınız. Görüntü şuna benzer olmalı:

nagios

Görüldüğü gibi Windows Server 2003’ün C diski warning eşiği olan %80 geçmiş durumda. Bu nedenle nagios contacts.cfg dosyasında tanımlanan admin e-mail adresine bir uyarı maili gönderecek.

Söz konusu mailin içeriği şu şekilde:

***** Nagios *****
Notification Type: PROBLEM
Service: C:\ Drive Space
Host: WIN2003 - Windows 2003
Address: Win2003'ün IP Adresi
State: WARNING
Date/Time: Thu Jan 15 22:44:18 EET 2009
Additional Info:
c:\ - total: 14.65 Gb - used: 12.32 Gb (84%) - free 2.33 Gb (16%)

Temel olarak konfigürasyon işlemleri bundan ibaret. Ancak örnek senaryoda http, smtp, pop3, ftp ve MS IIS gibi servislerin de monitör edileceğini söylemiştim. Şimdi bu monitoring şekilleri için tanımlamaları yapalım. Genel tanımlar oluşturulduğu için artık sadece hostlara ait cfg dosyalarına ekleme yapacağız.

HTTP Response Check

CentOS üzerinde httpd servisi çalışıyor demiştik. Şimdi httpd servisinin durumunu kontrol etmek için gerekli conf satırlarını girelim.

/usr/local/nagios/etc/centos.cfg dosyasını editleyin ve en altına şu satırları girin:

define service{
        use                     generic-service
        host_name               CENTOS
        service_description     HTTP Response Check
        servicegroups           HTTP
        check_command   check_http!-u /index.html  -t 5 -s "Hello World"
        }

Bu satırlar, Centos’un üzerinde çalışan web sitesinin gelip gelmediğini kontrol ediyor. İlgili web sitesinde “Hello World” ibaresi içeren bir index.html sayfası bulunuyor. Nagios periyodik olarak check_http pluginini çalıştıracak ve index.html’i çağırarak “Hello World” ibaresinin gelip gelmediğini kontrol edecek. Eğer gelmezse web sitesi çalışmıyor demektir. Bu durumda bir uyarı mesajı gönderecek.

Smtp Check

Şimdi de FreeBSD üzerinde çalışan SMTP servisini kontrol edelim.

/usr/local/nagios/etc/freebsd.cfg dosyasını editleyin ve en altına kendinize göre düzenleyerek şu satırları girin:

define service{
        use                     generic-service
        host_name               FREEBSD
        service_description     SMTP Response Check
        servicegroups           SMTP
        check_command   check_smtp!-t 5 -e "esmtp.localtest.com"
        }

Burada da, check_smtp plugini ile FreeBSD’nin smtp servis durumu kontrol ediliyor. FreeBSD’nin üzerindeki smtp servisi, bağlantıda bulunanlara “esmtp.localtest.com” şeklinde bir karşılama banneri döndürüyor. Nagios da periyodik olarak smtp servisine bağlanacak ve karşılama bannerinin 5 saniye içerisinde gelip gelmediğini kontrol edecek.

Pop3 Check

Gene FreeBSD’de çalışan pop3 servisini kontrol etmek için /usr/local/nagios/etc/freebsd.cfg dosyasını editleyin ve en altına kendinize göre düzenleyerek şu satırları girin:

define service{
        use                     generic-service
        host_name               FREEBSD
        service_description     POP3 Response Check
        servicegroups           SMTP
        check_command   check_pop!-t 5 -e "pop3.localtest.com"
        }

SMTP kontrolünün check_pop plugini ile yapılan Pop3 versiyonu. (Gördüğünüz gibi SMTP servis grubuna dahil edilmiş durumda, ancak siz POP3 icin templates.cfg dosyasında bir grup tanımlaması yaparak bu check işlemini o gruba dahil edebilirsiniz.)

FTP Check

FTP servisi de FreeBSD üzerinde çalışıyor varsayıyoruz; /usr/local/nagios/etc/freebsd.cfg dosyasını editleyin ve en altına kendinize göre düzenleyerek şu satırları girin:

define service{
        use                     generic-service
        host_name               FREEBSD
        service_description     FTP Response Check
        servicegroups           FTP
        check_command   check_ftp!-t 5 -e "ftp.localtest.com"
        }

Benzer şekilde FTP’den dönmesi gereken karşılama mesajı check_ftp plugini ile kontrol ediliyor.

Windows IIS Servisi Check

/usr/local/nagios/etc/win2003.cfg dosyasını editleyin ve en altına kendinize göre düzenleyerek şu satırları girin:

define service{
        use                     generic-service
        host_name               WIN2003
        service_description     W3SVC
        servicegroups           HTTP
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
        }

Bu da windows üzerindeki W3SVC servisini kontrol ediyor.

Zannedersem bu kadar örnek, diğer uygulma çeşitlerine referans olmak için yeterli olur. Nagios Plugin’lerini inceleyerek ve kaynak linklerine göz atarak çok daha fazla alanda check işlemi yapmanız mümkün.

Biraz uzun bir yazı oldu; ancak gördüğünüz gibi Nagios’un özellikle yapılandırma ile ilgili bölümleri biraz komplike. Elimden geldiğince yalın ve açık olarak anlatmaya çalıştım. Umarım işinize yarar. Dökümanda gözümden kaçan noktalar olmuş olabilir. Böyle bir şey farketmeniz durumunda bilgi verirseniz sevinirim.

Kaynaklar:

http://www.nagios.org

http://community.nagios.org/wiki/index.php/Main_Page

Kategoriler: *nix |

Bu yazılar da ilginizi çekebilir:


- Nagios – ICMP Erişimi Kapalı Hostlar için Check İşlemi
- Nagios – check_smtp ile Hotmail Ban Kontrolü
- Firefox add-on: Nagios Checker
- Monit ile Sistem Monitoring – Kurulum ve Yapılandırma
- MTR – My Traceroute

Yorumlar


  1. Salih BiLGiN | (Ocak 16th, 2009 4:20 pm)

    Hali hazırda kullanmaktayım. Kurmayı düşününlere tavsiye ederim. Açıklayıcı ve içi dolu bir makale olmuş. Ellerinize sağlık.

    [Cevapla]

  2. Mücahid YARDIM | (Mayıs 5th, 2009 3:49 pm)

    Mükemmel bir anlatim olmuş elinize emeğinize sağlık . Nagios aracını bizde kullanıyoruz , gerçekten başarılı bir çalışma olmuş . Çalışmalarınızın devamı ile …

    [Cevapla]

  3. Mücahid | (Eylül 28th, 2009 4:00 pm)

    CentOS 5.2 Üzerine NRPE kurulumu
    başlıklı bölümde en alt satırda bulunan aşağıdaki komutun çalışabilmesi için,

    # /usr/local/nagios/libexec/check_nrpe -H Host_IP’si
    NRPE v2.5.1

    CentOS 5.2 üzerinde “/usr/local/etc/nrpe.cfg” dosyasındaki “allowed_hosts=127.0.0.1” satırı “allowed_hosts=nagios_ip” olarak değiştirilmelidir.

    İyi çalışmalar.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Evet doğru. Gözümden kaçmış malesef. Bu bilgiyi de yazıya ekledim.
    Katkın için teşekkür ederim.

    [Cevapla]

  4. Tacim BULUT | (Aralık 15th, 2009 10:00 pm)

    Elineze sağlık çok güzel bir makale

    [Cevapla]

  5. Murat | (Aralık 29th, 2009 3:22 pm)

    Merhaba,
    Elinize sağlık, makaleyi çok güzel hazırlamışsınız. Teşekkürler.

    [Cevapla]

  6. Serdar | (Ocak 7th, 2010 5:03 pm)

    Bu Şekilde bir hata ile kaşılaşıyorum ne yapmam gerek

    It appears as though you do not have permission to view information for any of the services you requested…

    If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
    and check the authorization options in your CGI configuration file.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Yazının, kaynak koddan kurulum basliginda önemli not ibareli bolumunu okumaniz yeterli olur.

    [Cevapla]

  7. linux | (Ağustos 6th, 2010 8:09 pm)

    ço faydalı ve açıklayıcı bilgiler sunmuşsunuz. Anlatımlarınızı uygulayarak sistemi bugün kurmayı deniyeceğim. Bu güzel makaleyi hazırlayıp bizlerle paylaştığınız için teşekkür ederim.

    [Cevapla]

  8. Mehmet ELMAS | (Aralık 27th, 2010 1:44 pm)

    Nagios alanında en iyi yazılım bana göre, bir çok üniversite ve büyük yerlerde hayat kurtarıcı bir yazılım. Döküman için emeğinize sağlık

    [Cevapla]

  9. Özgür | (Eylül 7th, 2011 12:37 pm)

    Merhaba,

    Kurulumdan sonra “You don’t have permission to access /nagios/ on this server.” hatası almaktayım. Sorun neden olabilir acaba ?

    Teşekkürler

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Yazinin, kaynak koddan kurulum isimli basliginda yer olan Onemli not isimli bolume goz atmaniz yeterli olur sanirim.
    Bir kontrol edebilir misiniz ?

    [Cevapla]

  10. okan | (Ekim 12th, 2011 1:02 pm)

    Merhabalar.Ben Nagios monitoring sistemini kullanıyorum fakat herhangibir down veya critical durumunda mailime bilgilendirme düşsün istiyorum.Bunu nasıl yapabilirim.tşkler

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Bunun icin contact tanimlamasi yapmaniz gerekiyor.
    Yazinin ilgili bolumlerine ve ornek olarak verilen yapilandirma sekline bakarsaniz nasil yapilmasi gerektigini kolayca ogrenebilirsiniz.

    [Cevapla]

    okan tarafından yanıtlandı.

    Pardon yazıyı okudum ama aradığım cevap kısmını bulamadım.daha net olarak şunu sorayım. contact tanımlasımını Nagios webarayüzünden yapabilirmiyiz , yoksa serverden mi yapacağız bu tanımlamayı.yani server adminimi bunu yapması lazım ?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Evet dediginiz gibi server üzerinden yapilmasi gerekiyor. Ancak web arayüzü üzerinden yapilandirma icin de bazi araclar var; fakat ontanimli olarak gelmiyorlar. Oncesinde kurulmalari gerekiyor.

    Asagidaki adreste bir kacini gorebilirsiniz:
    http://exchange.nagios.org/directory/Addons/Configuration

    [Cevapla]

    Barış tarafından yanıtlandı.

    Mail gönderme olayını bende tam çözemedim. Kritik durumda yada tamamen dolu olan hard disk için bile mail gönderimi yaptıramıyorum?

    [Cevapla]

  11. Murat | (Aralık 29th, 2011 10:42 am)

    Merhaba,
    nagios a bağlanırken “You don’t have permission to access /nagios/ on this server.” hatası alıyorum. “htpasswd /usr/local/nagios/etc/htpasswd.users nagiosadmin” ile şifreyi değiştiriyorum ve sistem bana şifrenin değiştirildiğini söylüyor ama ben bağlanamıyorum. httpd ve nagios servislerini yeniden başlattım, yine olmadı.

    [Cevapla]

    Murat tarafından yanıtlandı.

    Merhaba sorun php nin kurulu olmamasından kaynaklanıyormuş,

    [Cevapla]

    Ahmet tarafından yanıtlandı.

    Teşekkürler Murat, bende aynı sorunu yaşamaıştım.

    [Cevapla]

  12. serkan | (Şubat 27th, 2012 1:47 am)

    teşekkürler makale için gerçekten değerli bir yazı olmuş sağolun ellerinize sağlık denicem en kısa sürede

    [Cevapla]

  13. goker | (Haziran 14th, 2012 3:21 pm)

    Hocam slm
    Kurulumu yaptım anlattığınız gibi win2003 ü görüyorum fakat cpu,memory vs. karşısında unknow yazıyor.Sorun ne olabilir.

    Teşekkürler.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Sorununuzun bir çok nedeni olabilir; tespit için log dosyalarını incelemenizi öneririm. Aksini belirtmediyseniz Nagios server check işlemleri ile ilgili log’lari var/log/messages dosyasina, Windows sistem ise öntanımlı C:\Program Files\NSClient++ dizininde nsclient.log isimli log dosyasina yazar.

    Bu dosyalari kontrol edip durumla ilgili bilgi edinebilirsiniz.

    [Cevapla]

    goker tarafından yanıtlandı.

    Loglara baktım password ile ilgili birşeyler var ama neyin passwordu olduğunu anlamadım…

    C:\ Drive Space is UNKNOWN **” nagios@localhost” resulted in a return code of 127. Make sure the script or binary you are trying to execute actually exists…
    Jun 14 16:07:34 linuxtest nagios: SERVICE ALERT: WIN2003;D:\ Drive Space;UNKNOWN;SOFT;2;NSClient – ERROR: Invalid password.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    NSClient’i kurarken bir sifre belirlemissiniz. (Ben yazida islemi sifresiz olacak sekilde anlatmistim.)

    İki seçeneceğiniz var:

    Bbirincisi Windows’dan NSClient’i kaldirip yeniden ve sifre belirtmeden kurmak.

    İkincisi nagios’un command.cfg dosyasindaki check_nt komutu’na parametre olarak NSClient’in sifresini girmek.

    Örnek:

    
    define command{
    
    	command_name	check_nt
    
    	command_line	$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s yourpassword -v $ARG1$ $ARG2$
    
    	}
    

    [Cevapla]

    goker tarafından yanıtlandı.

    Hocam çok teşekkür ederim.
    Sayenizde sıfır bilgiyle hallettik kurulumu :)

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Rica ederim.
    Kolay gelsin.

    [Cevapla]

  14. osman | (Haziran 29th, 2012 10:58 am)

    Merhaba

    Öncelikle makale için çok teşekkürler gerçekten çok başarılı olmuş.
    Benim bir sorum olucak switch router vb cihazları nasıl monite edebiliriz mesela cisco marka switch inde cpu ram bilgilerini monitor etme sansımız varmı.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Network cihazlarini snmp uzerinden nagios ile monitor edebilirsiniz. Nagios’un check_snmp isimli bir plugini mevcut. Asagidaki link yardimci olacaktir.

    http://nagios.sourceforge.net/docs/3_0/monitoring-routers.html

    [Cevapla]

  15. nazmiyigit | (Ağustos 2nd, 2012 12:29 am)

    Hocam Merhaba Esx makinasını bu yazılım ile dinleyebilirmiyiz

    Teşekkürler

    [Cevapla]

  16. nazmiyigit | (Ağustos 2nd, 2012 12:33 am)

    Hocam varmış Teşekkürler :)

    [Cevapla]

  17. Okan | (Temmuz 26th, 2013 1:56 pm)

    Hocam peki NagiosGrapher kurulumu için bu yapılandırmanın üstüne mi kurulum gerçekleştirmeliyiz yoksa sıfırdan bir kurulum mu söz konusu?

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    NagiosGrapher kullanmadım ama görebildiğim kadarı ile Nagios’un çalışması gerekiyor öncesinde.

    [Cevapla]

  18. Aydın | (Kasım 14th, 2013 10:06 am)

    Her zamanki gibi çok güzel ve detaylı bir makale olmuş. Eline koluna sağlık..

    [Cevapla]

  19. Samet YILMAZ | (Ocak 25th, 2014 2:48 am)

    Ellerinize sağlık.Son zamanlarda okuduğum en iyi makale diyebilirim.

    [Cevapla]

  20. Emrah | (Haziran 17th, 2014 10:41 am)

    Cok guzel ve detayli bir makale olmus. Paylasim icin tesekkurler. Emeginize saglik.

    [Cevapla]

  21. adem bekmez | (Mart 24th, 2015 3:54 pm)

    merhaba arkadaşlar çok güzel ve detaylı bilgi için teşekkürler

    bir sorum olacak c diski gibi diger disklerin bilgilerini nasıl görebilirim

    [Cevapla]

Trackbacks

Yorumda bulunun.