Nagios - Hızlı Kılavuz
DevOps yaşam döngüsü, birkaç aşamadan oluşan sürekli bir döngüdür, sürekli izleme bu döngünün son aşamasıdır. Sürekli izleme, bu yaşam döngüsündeki aşamalardan biridir. Bu bölümde, sürekli izlemenin ne olduğunu ve Nagios'un bu amaç için nasıl yardımcı olduğunu ayrıntılı olarak öğrenelim.
Sürekli İzleme nedir
Üretim sunucularında dağıtım yapıldığında sürekli izleme başlar. O andan itibaren, bu aşama olan her şeyi izlemekten sorumludur. Bu aşama, iş üretkenliği için çok önemlidir.
Sürekli izleme kullanmanın çeşitli faydaları vardır -
- Tüm sunucu ve ağ sorunlarını algılar.
- Başarısızlığın temel nedenini bulur.
- Bakım maliyetinin düşürülmesine yardımcı olur.
- Performans sorunlarını gidermeye yardımcı olur.
- Modası geçmeden altyapının güncellenmesine yardımcı olur.
- Algılandığında sorunları otomatik olarak çözebilir.
- Sunucuların, hizmetlerin, uygulamaların, ağın her zaman çalışır durumda olmasını sağlar.
- Her saniye eksiksiz altyapıyı izler.
Nagios nedir
Nagios, ağı, uygulamaları ve sunucuları izleyen açık kaynaklı bir sürekli izleme aracıdır. Altyapıda tespit edilen sorunları bulup onarabilir ve gelecekteki sorunları son kullanıcıları etkilemeden önce durdurabilir. BT altyapınızın tam durumunu ve performansını verir.
Neden Nagios
Nagios, geniş bir kullanıcı topluluğu grubu tarafından kullanılabilmesini sağlayan aşağıdaki özellikleri sunar -
- SQL Server, Oracle, Mysql, Postgres gibi Veritabanı sunucularını izleyebilir.
- Uygulama düzeyinde bilgi verir (Apache, Postfix, LDAP, Citrix vb.).
- Aktif gelişim sağlar.
- Devasa aktif topluluktan mükemmel bir desteğe sahiptir.
- Nagios herhangi bir işletim sisteminde çalışır.
- Ana bilgisayarın erişilebilir olup olmadığını görmek için ping atabilir.
Nagios'un Faydaları
Nagios, kullanıcılar için aşağıdaki avantajları sunar -
- Periyodik testlerden kurtulmaya yardımcı olur.
- Bilek kayışı hala "aralıklı" aşamadayken anlık arızaları algılar.
- Performanstan ödün vermeden bakım maliyetini düşürür.
- Kontrol ve arıza yönetimine zamanında bildirim sağlar.
Bu bölümde Nagios mimarisi hakkında ayrıntılı bilgi verilmektedir.
Nagios Mimarisi
Nagios mimarisi hakkında aşağıdaki noktalar dikkate değerdir -
Nagios, sunucu-aracı mimarisine sahiptir.
Nagios sunucusu ana bilgisayara kurulur ve eklentiler izlenecek uzak ana bilgisayarlara / sunuculara kurulur.
Nagios, eklentileri yerel / uzak ana bilgisayarlarda / sunucularda çalıştırmak için bir işlem planlayıcı aracılığıyla bir sinyal gönderir.
Eklentiler, verileri (CPU kullanımı, bellek kullanımı vb.) Toplar ve planlayıcıya geri gönderir.
Ardından işlem programları, bildirimleri yöneticilere gönderir ve Nagios GUI'yi günceller.
Aşağıdaki şekil Nagios Sunucu Aracı Mimarisini ayrıntılı olarak göstermektedir -
Nagios, aşağıda ayrıntılı olarak tartışıldığı gibi çeşitli ürünler içerir -
Nagios XI
Uygulamalar, hizmetler, ağ, işletim sistemleri vb. Gibi eksiksiz BT altyapı bileşenlerinin izlenmesini sağlar. Altyapınıza ve iş süreçlerinize tam bir görünüm verir. GUI, kullanılan esnekliği sağlayarak kolayca özelleştirilebilir. Bu aracın standart sürümü 1995 dolar ve kurumsal sürüm 3495 dolardır.
Nagios Çekirdeği
BT altyapısının izlenmesinin temelidir. Nagios XI ürünü de temelde Nagios çekirdeğine dayanmaktadır. Altyapıda herhangi bir arıza sorunu olduğunda, sorunu çözmek için hızlı bir şekilde işlem yapabilen yöneticiye bir uyarı / bildirim gönderir. Bu araç tamamen ücretsizdir.
Nagios Günlük Sunucusu
Günlük verilerinin aranmasını çok basit ve kolay hale getirir. Tüm günlük verilerini yüksek kullanılabilirlik kurulumuyla tek bir yerde tutar. Günlük verilerinde herhangi bir sorun bulunursa kolayca uyarı gönderebilir. Günlük analiz platformunuza daha fazla güç, hız, depolama ve güvenilirlik kazandıran 1000 sunucuya kadar ölçeklenebilir. Bu aracın fiyatı bulut sunucusu sayısına bağlıdır - 1 Bulut Sunucusu 3995 ABD doları, 2 Bulut Sunucusu 4995 ABD doları, 3 Bulut sunucusu 5995 ABD doları, 4 Bulut sunucusu 6995 ABD doları, 10 Bulut sunucusu 14995 ABD dolarıdır.
Nagios Füzyon
Bu ürün, tam izleme sisteminin merkezi bir görünümünü sağlar. Nagios Fusion ile, farklı coğrafyalar için ayrı izleme sunucularını tarayabilirsiniz. Altyapının tam görünürlüğünü sağlamak için Nagios XI ve Nagios çekirdeği ile kolayca entegre edilebilir. Bu araçların maliyeti 2495 dolardır.
Nagios Ağ Analizcisi
Yöneticinin hızlı aksiyon alabilmesi için ağ üzerindeki olası tehditler ile birlikte ağ altyapısının eksiksiz bilgisini yöneticiye verir. Derinlemesine ağ analizinden sonra ağ hakkında çok ayrıntılı verileri paylaşır. Bu araçların maliyeti 1995 dolardır.
Bu bölümde, Ubuntu'da Nagios'u kurma adımları ayrıntılı olarak tartışılmaktadır.
Nagios'u kurmadan önce, Ubuntu sisteminizde Apache, PHP, yapı paketleri vb. Gibi bazı paketlerin bulunması gerekir. Bu yüzden önce onları kuralım.
Step 1 - Önceden gerekli paketleri yüklemek için aşağıdaki komutu çalıştırın -
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip
Step 2 - Sonra, Nagios için kullanıcı ve grup oluşturun ve bunları Apache www-data kullanıcısına ekleyin.
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data
Step 3 - En son Nagios paketini indirin.
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz
Step 4 - Tarball dosyasını çıkarın.
tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/
Step 5 - Nagios'u kaynaktan derlemek için aşağıdaki komutu çalıştırın.
./configure --with-nagios-group=nagios --with-command-group=nagcmd
Step 6 - Nagios dosyalarını oluşturmak için aşağıdaki komutu çalıştırın.
make all
Step 7 - Tüm Nagios dosyalarını yüklemek için aşağıda gösterilen komutu çalıştırın.
sudo make install
Step 8 - init ve harici komut yapılandırma dosyalarını yüklemek için aşağıdaki komutları çalıştırın.
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf
Step 9 - Şimdi olay işleyici dizinini Nagios dizinine kopyalayın.
sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
Step 10 - Nagios eklentilerini indirin ve çıkarın.
cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/
Step 11 - Aşağıdaki komutu kullanarak Nagios eklentilerini kurun.
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install
Step 12 - Şimdi Nagios yapılandırma dosyasını ve 51 numaralı açıklamayı kaldır satırını düzenleyin → cfg_dir = / usr / local / nagios / etc / servers
sudo gedit /usr/local/nagios/etc/nagios.cfg
Step 13 - Şimdi bir sunucu dizini oluşturun.
sudo mkdir -p /usr/local/nagios/etc/servers
Step 14 - Kişiler yapılandırma dosyasını düzenleyin.
sudo gedit /usr/local/nagios/etc/objects/contacts.cfg
Step 15 - Şimdi Apache modüllerini etkinleştirin ve bir kullanıcı nagiosadmin'i yapılandırın.
sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/
Step 16 - Şimdi Apache ve Nagios'u yeniden başlatın.
service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios
Step 17 - Nagios dosyasını düzenleyin.
sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock
Step 18 - Nagios dosyasını çalıştırılabilir yapın ve Nagios'u başlatın.
sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start
Step 19 - Şimdi tarayıcınıza gidin ve url'yi açın → http://localhost/nagios. Şimdi nagiosadmin kullanıcı adıyla Nagios'a giriş yapın ve daha önce belirlediğiniz şifreyi kullanın. Nagios'un giriş ekranı, aşağıda verilen ekran görüntüsünde gösterildiği gibidir -
Tüm adımları doğru bir şekilde takip ettiyseniz, Nagios web arayüzünüz görünecektir. Nagios kontrol panelini aşağıda gösterildiği gibi bulabilirsiniz -
Önceki bölümde Nagios'un yerleştirmesini gördük. Bu bölümde, yapılandırmasını ayrıntılı olarak anlayalım.
Nagios'un yapılandırma dosyaları / usr / local / nagios / etc içinde bulunur. Bu dosyalar aşağıda verilen ekran görüntüsünde gösterilmektedir -
Şimdi her dosyanın önemini anlayalım -
nagios.cfg
Bu, Nagios çekirdeğinin ana yapılandırma dosyasıdır. Bu dosya, Nagios'un günlük dosyasının konumunu, ana bilgisayarların ve hizmetlerin durumu güncelleme aralığını, kilit dosyasını ve status.dat dosyasını içerir. Nagios kullanıcıları ve örneklerin çalıştığı gruplar bu dosyada tanımlanır. Komutlar, kişiler, şablonlar vb. Gibi tüm bireysel nesne yapılandırma dosyalarının yoluna sahiptir.
cgi.cfg
Varsayılan olarak, Nagios'un CGI yapılandırma dosyası cgi.cfg olarak adlandırılır. CGI'lara ana konfigürasyon dosyasını nerede bulacağını söyler. CGI'lar, ihtiyaç duyabilecekleri diğer veriler için ana ve ana bilgisayar yapılandırma dosyalarını okuyacaktır. Tüm kullanıcı ve grup bilgilerini ve bunların haklarını ve izinlerini içerir. Ayrıca, Nagios'un tüm ön uç dosyalarının yolunu da içerir.
resource.cfg
Bu dosyada $ USERx $ makroları tanımlayabilirsiniz, bu makrolar daha sonra ana bilgisayar yapılandırma dosyalarınızdaki komut tanımlarında kullanılabilir. $ USERx $ makroları, kullanıcı adları, parolalar vb. Gibi hassas bilgileri depolamak için kullanışlıdır.
Eklentilere ve olay işleyicilere giden yolu belirlemek için de kullanışlıdırlar - eklentileri veya olay işleyicilerini gelecekte farklı bir dizine taşımaya karar verirseniz, çok fazla değişiklik yapmak yerine yalnızca bir veya iki $ USERx $ makrosunu güncelleyebilirsiniz. komut tanımları. Kaynak dosyaları, MySQL gibi harici veri kaynakları için yapılandırma yönergelerini depolamak için de kullanılabilir.
Nesneler dizini içindeki yapılandırma dosyaları komutları, kişileri, ana bilgisayarları, hizmetleri vb. Tanımlamak için kullanılır.
commands.cfg
Bu yapılandırma dosyası size ana bilgisayar, hizmet ve iletişim tanımlarında başvurabileceğiniz bazı örnek komut tanımları sağlar. Bu komutlar, ana bilgisayarları ve hizmetleri kontrol etmek ve izlemek için kullanılır. Bu komutları, çalıştırdığınız komutun çıktısını da alacağınız bir Linux konsolunda yerel olarak çalıştırabilirsiniz.
Misal
define command {
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
define command {
command_name check_local_load
command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}
define command {
command_name check_local_procs
command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}
contact.cfg
Bu dosya, Nagios'un kişi ve grup bilgilerini içerir. Varsayılan olarak, bir kişi zaten Nagios yöneticisidir.
Misal
define contact {
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
email [email protected]
}
define contactgroup {
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
templates.cfg
Bu yapılandırma dosyası, size diğer yapılandırma dosyalarındaki diğer ana bilgisayar, hizmet, iletişim vb. Tanımları tarafından başvurulan bazı örnek nesne tanımlama şablonları sağlar.
timeperiods.cfg
Bu yapılandırma dosyası, ana bilgisayar, hizmet, iletişim ve bağımlılık tanımlarında başvurabileceğiniz bazı örnek zaman dönemi tanımları sağlar.
Nagios, aşağıda verildiği gibi çok sayıda özelliğe sahip izleme aracıdır -
Nagios Core açık kaynaktır, dolayısıyla kullanımı ücretsizdir.
Binlerce ana bilgisayarı ve sunucuyu ölçeklendirebilen ve yönetebilen güçlü izleme motoru.
Tüm ağ bileşenlerinin ve izleme verilerinin görünürlüğünü sağlayan kapsamlı web panosu.
Birden çok kullanıcının Nagios kontrol paneline erişebildiği çok kiracılı yeteneklere sahiptir.
Birden fazla API'ye sahip üçüncü taraf uygulamalarıyla kolayca entegre olabilen genişletilebilir mimariye sahiptir.
Nagios, dünya çapında 1 milyondan fazla kullanıcısı olan çok aktif ve büyük bir topluluğa sahiptir.
Hızlı uyarı sistemi, herhangi bir sorun belirlendikten hemen sonra yöneticilere uyarılar gönderir.
Nagios'u desteklemek için birden fazla eklenti mevcut, özel kodlanmış eklentiler Nagios ile de kullanılabilir.
Ağda olup biten her şeyi kolaylıkla depolayan iyi bir günlük ve veritabanı sistemine sahiptir.
Proaktif Planlama özelliği, altyapıyı yükseltme zamanının geldiğini bilmenize yardımcı olur.
Nagios, çok çeşitli uygulamalara uygulanabilir. Burada verilmiştir -
Disk alanı, sistem günlükleri vb. Ana bilgisayar kaynaklarını izleyin.
Ağ kaynaklarını izleyin - http, ftp, smtp, ssh vb.
Alt sorunu belirlemek için günlük dosyalarını sürekli olarak izleyin.
Windows / linux / unix / web uygulamalarını ve durumunu izleyin.
Nagios Remote Plugin Executer (NRPE), hizmetleri uzaktan izleyebilir.
Servis kontrollerini paralel olarak çalıştırın.
Uzaktan izleme için SSH veya SSL tünelleri de kullanılabilir.
Uyarılar / bildirimler gönder
e-posta, sms, altyapı ile ilgili herhangi bir sorunun çağrı cihazı yoluyla
BT altyapısının ne zaman yükseltileceğini önerme.
Nagios, BT altyapınızda çalışan ana bilgisayarları ve hizmetleri izlemek için kullanılan en popüler araçtır. Ana bilgisayarlar ve hizmet yapılandırmaları, Nagios Core'un yapı taşlarıdır.
Ana bilgisayar tıpkı bir bilgisayar gibidir; fiziksel bir cihaz veya sanal olabilir.
Hizmetler, Nagios tarafından bir ev sahibi hakkında bir şeyi kontrol etmek için kullanılan hizmetlerdir.
Nagios'un sunucu dizini içinde bir ana bilgisayar dosyası oluşturabilir ve ana bilgisayar ve hizmet tanımlarından bahsedebilirsiniz. Örneğin -
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Ana bilgisayar yapılandırma dosyası
define host {
use linux-server
host_name ubuntu_host
alias Ubuntu Host
address 192.168.1.10
register 1
}
define service {
host_name ubuntu_host
service_description PING
check_command check_ping!100.0,20%!500.0,60%
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Yukarıdaki tanımlar ubuntu_host adında bir ana bilgisayar ekler ve bu ana bilgisayarda çalışacak hizmetleri tanımlar. Nagios'u yeniden başlattığınızda, bu ana bilgisayar Nagios tarafından izlenmeye başlayacak ve belirtilen hizmetler çalışacaktır.
Nagios'ta çalışan ana bilgisayarda hemen hemen her şeyi izlemek için kullanılabilecek daha birçok hizmet var.
Bir komut tanımı bir komutu tanımlar. Komutlar arasında hizmet kontrolleri, hizmet bildirimleri, hizmet olay işleyicileri, ana bilgisayar kontrolleri, ana bilgisayar bildirimleri ve ana bilgisayar olay işleyicileri bulunur. Nagios için komut tanımları, commands.cfg dosyasında tanımlanır.
Aşağıdaki bir Komutun tanımlanması için formattır -
define command {
command_name command_name
command_line command_line
}
Command name- Bu yönerge, komutu tanımlamak için kullanılır. İletişim, ev sahibi ve hizmet tanımlarına komut adı ile başvurulur.
Command line - Bu yönerge, komut hizmet veya ana bilgisayar kontrolleri, bildirimler veya olay işleyicileri için kullanıldığında Nagios tarafından neyin yürütüldüğünü tanımlamak için kullanılır.
Misal
define command{
command_name check_ssh
command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}
Bu komut, - / usr / libl / nagios / plugins / check_ssh eklentisini 1 parametre ile çalıştıracaktır: '$ HOSTADDRESS $'
Bu kontrol komutunu kullanacak çok kısa bir ana bilgisayar tanımı, burada gösterilene benzer olabilir -
define host{
host_name host_tutorial
address 10.0.0.1
check_command check_ssh
}
Komut tanımları, ana bilgisayar / hizmet kontrollerinin nasıl gerçekleştirileceğini anlatır. Ayrıca, herhangi bir sorun tespit edildiğinde bildirimlerin nasıl oluşturulacağını ve herhangi bir olayın nasıl ele alınacağını da tanımlar. Kontrolleri gerçekleştirmek için SSH'nin düzgün çalışıp çalışmadığını kontrol etme komutları, veritabanının çalışıp çalışmadığını kontrol etme komutu, bir ana bilgisayarın canlı olup olmadığını kontrol etme komutu ve daha fazlası gibi çeşitli komutlar vardır.
Kullanıcılara altyapıda hangi sorunların mevcut olduğunu söyleyen komutlar vardır. Nagios'ta kendi özel komutlarınızı oluşturabilir veya herhangi bir üçüncü taraf komutunu kullanabilirsiniz ve bunlar Nagios eklentileri projesine benzer şekilde ele alınır, aralarında bir ayrım yoktur.
Komutta argümanlar da iletebilirsiniz, bu, kontrollerin gerçekleştirilmesinde daha fazla esneklik sağlar. Parametre ile bir komutu nasıl tanımlamanız gerekir -
define command {
command_name check-host-alive-limits
command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}
Yukarıdaki komut için ana bilgisayar tanımı -
define host {
host_name system2
address 10.0.15.1
check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}
Nagios'ta düzenli olarak Nagios daemon tarafından işlenen komut dosyasına ekleyerek harici komutları çalıştırabilirsiniz.
Harici komutlarla Nagios çalışırken çok sayıda denetim gerçekleştirebilirsiniz. Birkaç kontrolü geçici olarak devre dışı bırakabilir veya bazı kontrolleri hemen çalışmaya zorlayabilir, bildirimleri geçici olarak devre dışı bırakabilirsiniz vb. Aşağıdakiler, komut dosyasında yazılması gereken Nagios'ta harici komutların sözdizimidir -
[time] command_id;command_arguments
Ayrıca Nagios'ta kullanılabilecek tüm harici komutların listesine buradan göz atabilirsiniz -https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/
Ana bilgisayar ve hizmetler Nagios üzerinde yapılandırıldıktan sonra, ana bilgisayarların ve hizmetlerin olması gerektiği gibi çalışıp çalışmadığını kontrol etmek için kullanılır. Ana bilgisayarda kontroller yapmak için bir örnek görelim -
Ana bilgisayar tanımlarınızı host1.cfg dosyasına / usr / local / nagios / etc / objects dizinine koyduğunuzu düşünün.
cd /usr/local/nagios/etc/objects
gedit host1.cfg
Ana bilgisayar tanımlarınız şu anda böyle görünüyor -
define host {
host_name host1
address 10.0.0.1
}
Şimdi check_interval yönergesini ekleyelim. Bu yönerge, belirlediğiniz numara için ana bilgisayarların zamanlanmış kontrollerini gerçekleştirmek için kullanılır; varsayılan olarak dakika cinsindendir. Aşağıdaki tanımı kullanarak, ana bilgisayarda kontroller her 3 dakikada bir gerçekleştirilecektir.
define host {
host_name host1
address 10.0.0.1
check_interval 3
}
Nagios'ta, ana bilgisayarlar ve hizmetler üzerinde 2 tür kontrol gerçekleştirilir -
- Aktif Kontroller
- Pasif Kontroller
Aktif Kontroller
Aktif kontroller, Nagios süreci tarafından başlatılır ve ardından düzenli bir programa göre çalıştırılır. Nagios sürecindeki kontrol mantığı, Aktif kontrolü başlatır. Nagios, uzak makinelerde çalışan ana bilgisayarları ve hizmetleri izlemek için eklentileri çalıştırır ve hangi bilgileri toplayacağını söyler. Eklenti daha sonra gerekli bilgileri topladığı ve daha sonra Nagios arka plan programına geri gönderdiği uzak makinede çalıştırılır. Ana bilgisayarlarda ve hizmetlerde alınan duruma bağlı olarak uygun işlem yapılır.
Aşağıda gösterilen şekil aktif bir kontrolü göstermektedir -
Bunlar, check_interval ve retry_interval ile tanımlanan düzenli aralıklarla yürütülür.
Pasif kontroller harici süreçler tarafından gerçekleştirilir ve sonuçlar işlenmek üzere Nagios'a geri verilir.
Pasif kontroller burada açıklandığı gibi çalışır -
Harici bir uygulama, ana bilgisayarlar / hizmetlerdeki durumu kontrol eder ve sonucu Harici Komut Dosyasına yazar. Nagios daemon harici komut dosyasını okuduğunda, daha sonra işlemek için kuyruktaki tüm pasif kontrolleri okur ve gönderir. Bu kontroller işlendiğinde periyodik olarak, kontrol sonucundaki bilgilere bağlı olarak bildirimler veya uyarılar gönderilir.
Aşağıda gösterilen şekil pasif bir kontrolü göstermektedir -
Bu nedenle, aktif ve pasif kontrol arasındaki fark, aktif kontrollerin Nagios tarafından çalıştırılması ve pasif kontrollerin harici uygulamalar tarafından çalıştırılmasıdır.
Bu kontroller, ana bilgisayarları / hizmetleri düzenli olarak izleyemediğinizde yararlıdır.
Nagios, düzgün çalışıp çalışmadıklarını belirlemek için izlediği ana bilgisayarların ve hizmetlerin durumunu depolar. Başarısızlıkların rastgele meydana geldiği ve geçici olduğu birçok durum olabilir; bu nedenle Nagios, bir ana bilgisayarın veya hizmetin mevcut durumunu kontrol etmek için durumları kullanır.
İki tür durum vardır -
- Yumuşak durum
- Zor durum
Yumuşak durum
Bir ana bilgisayar veya hizmet çok kısa bir süre kapalı kaldığında ve durumu bilinmediğinde veya öncekinden farklı olmadığında, yumuşak durumlar kullanılır. Ev sahibi veya hizmetler, durum kalıcı olana kadar tekrar tekrar test edilecektir.
Sert Devlet
Max_check_attempts yürütüldüğünde ve ana bilgisayarın veya hizmetin durumu hala TAMAM değilse, bu durumda donanım durumu kullanılır. Nagios, zor durumları işlemek için olay işleyicileri yürütür.
Aşağıdaki şekil yumuşak durumları ve sert durumları gösterir.
Bu bölüm, Nagios'un oluşturduğu bağlantı noktaları ve protokoller hakkında bir fikir verir.
Protokoller
Nagios tarafından kullanılan varsayılan protokoller aşağıdaki gibidir -
http (s), 80 ve 443 numaralı bağlantı noktaları - Ürün arayüzleri Nagios'ta web tabanlıdır. Nagios aracıları, verileri taşımak için http kullanabilir.
snmp, 161 ve 162 numaralı bağlantı noktaları - snmp, ağ izlemenin önemli bir parçasıdır. 161 numaralı bağlantı noktası, istekleri düğümlere göndermek için kullanılır ve 162 sonrası sonuçları almak için kullanılır.
ssh, bağlantı noktası 22 - Nagios, CentOS veya RHEL Linux üzerinde yerel olarak çalışacak şekilde tasarlanmıştır. Yönetici, SSH aracılığıyla Nagios'ta oturum açıp kontrolleri gerçekleştirebilir.
Portlar
Yaygın Nagios Eklentileri tarafından kullanılan Varsayılan bağlantı noktaları aşağıdaki gibidir -
- Butcheck_nt (nsclient ++) 12489
- NRPE 5666
- NSCA 5667
- NCPA 5693
- MSSQL 1433
- MySQL 3306
- PostgreSQL 5432
- MongoDB 27017, 27018
- OracleDB 1521
- E-posta (SMTP) 25, 465, 587
- WMI 135, 445 / ek olarak 1024-1034 aralığında dinamik olarak atanmış bağlantı noktaları
Eklentiler, Nagios ile veritabanlarını, işletim sistemlerini, uygulamaları, ağ ekipmanlarını, protokolleri izlemeye yardımcı olur. Eklentiler, Nagios işlevselliğini sunucuları ve ana bilgisayarları izlemek için genişleten derlenmiş yürütülebilir dosyalar veya komut dosyasıdır (Perl veya Perl olmayan). Nagios, bir hizmetin veya ana bilgisayarın durumunu kontrol etmek için bir Eklenti çalıştıracaktır. Nagios, Perl eklentilerini çalıştırmak için gömülü bir Perl yorumlayıcısı desteği ile derlenebilir. Bu olmadan, Nagios, eklentileri harici bir komut olarak çatallayarak ve çalıştırarak Perl ve Perl olmayan eklentileri çalıştırır.
Nagios Eklenti Türleri
Nagios, içinde aşağıdaki eklentilere sahiptir -
Official Nagios Plugins- 50 adet resmi Nagios Eklentisi vardır. Resmi Nagios eklentileri, resmi Nagios Eklentileri Ekibi tarafından geliştirilir ve sürdürülür.
Community Plugins - Yüzlerce Nagios topluluğu üyesi tarafından geliştirilmiş 3.000'den fazla üçüncü taraf Nagios eklentisi vardır.
Custom Plugins- Kendi Özel Eklentilerinizi de yazabilirsiniz. Özel Eklentiler yazmak için izlenmesi gereken belirli yönergeler vardır.
Özel Nagios Eklentileri Yazma Yönergeleri
Nagios'ta özel eklenti yazarken, aşağıda verilen yönergeleri izlemeniz gerekir -
- Eklentiler bir "-V" komut satırı seçeneği sağlamalıdır (yapılandırma değişikliklerini doğrulayın)
- Yalnızca bir satır metin yazdırın
- Teşhisi ve yardım mesajının sadece bir kısmını yazdırın
- Ağ eklentileri zaman aşımı için DEFAULT_SOCKET_TIMEOUT kullanır
- "-v" veya "--verbose" ayrıntı düzeyiyle ilgilidir
- "-t" veya "--timeout" (eklenti zaman aşımı);
- "-w" veya "--warning" (uyarı eşiği);
- "-c" veya "--kritik" (kritik eşik);
- "-H" veya "--hostname" (kontrol edilecek ana bilgisayarın adı)
Birden fazla Nagios eklentisi aynı anda çalışır ve kontroller gerçekleştirir, hepsinin birlikte sorunsuz çalışması için Nagios eklentisi bir durum kodunu takip eder. Aşağıda verilen tablo, çıkış kodu durumunu ve açıklamasını gösterir -
Çıkış Kodu | Durum | Açıklama |
---|---|---|
0 | tamam | İyi çalışıyor |
1 | UYARI | İyi çalışıyor, ancak ilgilenilmesi gerekiyor |
2 | KRİTİK | Doğru Çalışmıyor |
3 | BİLİNMEYEN | Eklenti, ana bilgisayarın / hizmetin durumunu belirleyemediğinde |
Nagios eklentileri, yapılandırmaları için seçenekleri kullanır. Aşağıdakiler Nagios eklentisi tarafından kabul edilen birkaç önemli parametredir -
Sr.No | Seçenek ve Açıklama |
---|---|
1 | -h, --help Bu yardım sağlar |
2 | -V, --version Bu, eklentinin tam sürümünü yazdırır |
3 | -v, --verbose Bu, eklentinin ne yaptığı hakkında daha ayrıntılı bilgi vermesini sağlar |
4 | -t, --timeout Bu, zaman aşımını sağlar (saniye cinsinden); bu sürenin sonunda eklenti KRİTİK durumu bildirecek |
5 | -w, --warning Bu, UYARI durumu için eklentiye özgü sınırları sağlar |
6 | -c, --critical Bu, KRİTİK durum için eklentiye özgü sınırları sağlar |
7 | -H, --hostname Bu, iletişim kurmak için ana bilgisayar adını, IP adresini veya Unix soketini sağlar. |
8 | -4, --use-ipv4 Bu, ağ bağlantısı için IPv4 kullanmanıza izin verir |
9 | -6, --use-ipv6 Bu, ağ bağlantısı için IPv6 kullanmanıza izin verir |
10 | -p, --port Bu, TCP veya UDP bağlantı noktasına bağlanmak için kullanılır |
11 | -s, -- send Bu, sunucuya gönderilecek dizeyi sağlar |
12 | -e, --expect Bu, sunucudan geri gönderilmesi gereken dizeyi sağlar |
13 | -q, --quit Bu, bağlantıyı kapatmak için sunucuya gönderilecek dizeyi sağlar |
Nagios eklenti paketinde, altyapıyı izlemek için ana bilgisayarlar ve hizmetler için çok sayıda denetim vardır. Birkaç kontrol yapmak için Nagios eklentilerini deneyelim.
SMTP, e-posta göndermek için kullanılan bir protokoldür. Nagios standart eklentileri, SMTP için kontroller yapmak için komutlara sahiptir. SMTP için komut tanımı -
define command {
command_name check_smtp
command_line $USER2$/check_smtp -H $HOSTADDRESS$
}
MySQL'i izlemek için Nagios eklentisini kullanalım. Nagios, MySQL'i izlemek için 2 eklenti sunar. İlk eklenti, mysql bağlantısının çalışıp çalışmadığını kontrol eder ve ikinci eklenti bir SQL sorgusu çalıştırmak için geçen süreyi hesaplamak için kullanılır.
Her ikisi için komut tanımları aşağıdaki gibidir -
define command {
command_name check_mysql
command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -S –w 10 –c 30
}
define command {
command_name check_mysql_query
command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
$ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}
Note - Her iki komutta da bağımsız değişken olarak kullanıcı adı, şifre ve veritabanı adı gereklidir.
Nagios, tüm bölümlere monte edilmiş disk alanını kontrol etmek için eklenti sunar. Komut tanımı aşağıdaki gibidir
define command {
command_name check_partition
command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}
Kontrollerin çoğu, standart Nagios eklentileri aracılığıyla yapılabilir. Ancak, onları izlemek için özel kontroller gerektiren uygulamalar var, bu durumda uygulama üzerinde daha karmaşık kontroller sağlayacak 3. parti Nagios eklentilerini kullanabilirsiniz. Nagios borsasından bir 3. taraf eklenti kullanırken veya eklentiyi başka bir web sitesinden indirirken güvenlik ve lisanslama sorunlarını bilmek önemlidir.
NRPE'de (Nagios Remote Plugin Executor) uzak makinelerde kontroller çalıştıran Nagios arka plan programı. Nagios eklentilerini diğer makinelerde uzaktan çalıştırmanıza izin verir. Disk kullanımı, CPU yükü vb. Gibi uzak makine ölçümlerini izleyebilirsiniz. Ayrıca, bazı Windows aracı eklentileri aracılığıyla uzak Windows makinelerinin ölçümlerini de kontrol edebilir.
İzlenmesi gereken istemci makineye NRPE'yi adım adım nasıl kurup yapılandıracağımızı görelim.
Step 1 - İzlenecek uzak linux makinesine NRPE'yi kurmak için aşağıdaki komutu çalıştırın.
sudo apt-get install nagios-nrpe-server nagios-plugins
Step 2 - Şimdi, sunucu dizininin içinde bir ana bilgisayar dosyası oluşturun ve ana bilgisayar için gerekli tüm tanımları girin.
sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file
define host {
use linux-server
host_name ubuntu_host
alias Ubuntu Host
address 192.168.1.10
register 1
}
define service {
host_name ubuntu_host
service_description PING
check_command check_ping!100.0,20%!500.0,60%
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Check Users
check_command check_local_users!20!50
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Local Disk
check_command check_local_disk!20%!10%!/
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Check SSH
check_command check_ssh
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
define service {
host_name ubuntu_host
service_description Total Process
check_command check_local_procs!250!400!RSZDT
max_check_attempts 2
check_interval 2
retry_interval 2
check_period 24x7
check_freshness 1
contact_groups admins
notification_interval 2
notification_period 24x7
notifications_enabled 1
register 1
}
Step 3 - Yapılandırma dosyasının doğrulanması için aşağıda gösterilen komutu çalıştırın.
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Step 4 - Hata yoksa NRPE, Apache ve Nagios'u yeniden başlatın.
service nagios-nrpe-server restart
service apache2 restart
service nagios restart
Step 5- Tarayıcınızı açın ve Nagios web arayüzüne gidin. İzlenmesi gereken ana bilgisayarın Nagios çekirdek hizmetine eklendiğini görebilirsiniz. Benzer şekilde, Nagios tarafından izlenecek daha fazla ana bilgisayar ekleyebilirsiniz.
V-Shell, PHP ile yazılmış Nagios Core için hafif bir web arayüzüdür. Kurulumu ve kullanımı kolaydır ve Nagios çıkışına bir alternatiftir. VShell'in ön yüzü AngularJs üzerindedir, bu nedenle tasarım duyarlı ve moderndir. Quicksearch işlevselliği ve CodeIgniter tarafından desteklenen RESTful API sağlar.
Nagios VShell, Nagios XI ve Nagios Core 3.x ile uyumludur. Sistemde php 5.3 veya üzeri, php-cli ve apache'nin kurulu olmasını gerektirir. Nagios VShell'in nasıl kurulacağını görelim.
Step 1 - tmp dizinine gidin ve vshell tar dosyasını indirin.
cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz
Step 2 - tar dosyasını çıkarın.
tar zxf vshell.tar.gz
Step 3- vshell dizinine gidin ve install.php dosyası için çalıştırılabilir izin verin. Son olarak, yükleme komut dosyasını çalıştırın.
cd vshell
chmod +x install.php
./install.php
Step 4 - Şimdi githttps://192.168.56.101/vshell tarayıcınızda nagiosadmin ile oturum açın ve Vshell'iniz görünecektir.
Bu bölümde, Nagios'u başarıyla uygulayan iki kuruluşun vaka çalışmalarına bakalım.
Nagios ile Bitnetix
Ağ oluşturma, veri merkezi, izleme ve IP üzerinden Ses ile ilgilenen bir BT danışmanlık organizasyonunda Bitnetix. Teklifleriyle küçük işletmelerin büyük görünmesini sağlarlar. Çözümleri, daha fazla katılımı artırarak ve memnuniyetlerini artırarak müşteri ilişkilerini daha iyi yönetmenize yardımcı olur. İletişim işinde olduklarını söylüyorlar, bu nedenle müşterilerine doğru zamanda doğru mesajı iletmek onlar için çok önemli.
Bitnetix, E-posta Pazarlama ile ilgilenen bir müşteriyle çalışıyordu. Dinamik olarak tahsis edilen ve müşterilere binlerce e-posta göndermekten sorumlu olan AWS sunucularını izliyorlardı. Daha önce Nagios çekirdeğini kullanıyorlardı ancak yeni Nagios XI'e geçmek ve sıfır kesinti süresiyle şefle entegre olmak istiyorlardı. Nagios çekirdeğindeki canlı durum yapılandırmasını Nagios XI'deki uygun kontrollere taşımada zorluklar vardı. Ancak Nagios ile, entegre şef ile Nagios XI yapılandırma dosyasını kurabildiler. Sıfır kesinti süresi ile tüm müşterileri Nagios çekirdeğinden Nagios XI'ye taşıyabildiler. Nagios XI, anlık bildirimler göndermek için PagerDuty ile de entegre edebildi.
Nagios ile EverWatch.gobal
EverWatch.global, kar amacı gütmeyen ve küçük / orta ölçekli kuruluşlara yardımcı olan bir BT yönetimi ve danışmanlık kuruluşudur. Merkezi New York, Rochester'dadır. Nagios ile yaptıkları çalışmalarla çok sayıda ödül kazandılar.
EverWatch.global, milyar dolarlık yıllık geliri olan bir e-ticaret perakende müşterisiyle çalışıyordu. Web sitesini her zaman çalışır durumda tutmak, alışveriş sepeti ve ödeme işlevini izlemek, iftira durumunda gerekli personele bildirim göndermekle sorumluydular. Buradaki zorluk, müşterilerinin sunucularının New York'taki genel merkezinden 500 mil uzakta olmasıydı. Aynı platformda üretimi, aşamalandırmayı, kalite güvencesini ve geliştirmeyi izlemek için, konfigürasyonların her iki alan için de benzersiz ve benzer olması gerekiyordu.
Nagios'un yardımıyla, ekipman ve Ağ Operasyon Merkezi için ssh güvenlik duvarı kuralları oluşturabildiler. Ayrıca iftira olayları için kontroller yapabildiler ve yanlış pozitifleri azalttılar. Nagios'ta olay işleyicileri yapılandırarak, bildirimlerin sayısı büyük ölçüde azaldı. Nagios, müşterilerinin web sitesinin çalışma süresini yıllık% 85'ten% 98'e çıkararak onlara yardımcı oldu, bu büyük bir başarıydı.
"Gerçek dolar bazında, şirket sonuç olarak yaklaşık 125.000.000 ABD doları ek satış elde etmeyi başardı." Eric Loyd, EverWatch Global CEO'su.