Nagios sunucusu en iyi uygulamaları?


10

Orta büyüklükte bir Nagios sunucusu çalıştırıyorum. Şu anda 180 hizmet ile yaklaşık 40 sunucuyu izliyor ve sadece gün geçtikçe büyüyor.

Çok ezoterik bir tarzda yapılandırılmış eski bir Nagios kurulumundan göç ettim, her şeyi sıfırdan yeniden yapılandırmaya zorladım.

Şimdi sunucu çalışıyor ve ihtiyaç duyduğumuz çoğu şey için çalışıyor, ben biraz daha ölçeklenebilir yapmak için arıyorum; şu anda her ana /etc/nagios/hosts/makinenin kendi dosyası vardır ve her ana makinenin tüm hizmetleri aynı dosyada bulunur. Bu kesinlikle uygun değil, ama hiçbiri tüm yapılandırmamı yüzlerce farklı dosyaya gizlemiyor.

Tüm tecrübeli Nagios orada yöneticileri için, hostgroups / servicegroups faydalanmak için en iyi yolu nedir: bu benim sorum Yani olmadan yapılandırmayı aşırı karmaşık hale?

Yanıtlar:


13

Ana bilgisayar grupları ve şablonlar.

Şablonlar, ana makineleriniz ve hizmetleriniz için "normal hizmet", "kritik hizmet", "düşük öncelikli ana bilgisayar" gibi sınıflar tanımlamanızı sağlar. Ayrıca, farklı sorumluluklara sahip birden fazla ekibiniz varsa sorumlulukları bölmenin yararlı bir yolu olarak hizmet ederler, böylece her biri uygun iletişim bilgilerini tanımlayan bir "linux host" şablonu ve "windows host" şablonuna sahip olabilirsiniz.

Tek bir kaynakta birden çok şablon kullanabilirsiniz, böylece uygun şekilde dikey şablonlar oluşturabilirsiniz. Örneğin,

host foo {
    use windows-host,normal-priority-host
    ...
}

Windows ekibinin iletişim bilgilerini (ve yükselmelerini) ve "normal" bir ana bilgisayarın yoklama oranlarını ve eşik değerlerini çeker.

Ana makine grupları, ana makinelerinizin bir alt kümesine ilişkin tüm denetimleri gruplandırmanıza olanak tanır. Yük, disk alanı, sshyetenek ve izlediğiniz her ana bilgisayarda olması gereken her şeyi kontrol eden "baseline-linux-hosts" gibi şeylere sahip olun. HTTP bağlantısı, HTTPS bağlantısı ve SSL sertifikası son kullanma tarihlerini kontrol eden "https sunucuları" gibi gruplar ekleyin; NFS ve SMB erişilebilirliğini ve belki daha agresif disk kontrollerini içeren "dosya sunucuları"; veya VM erişilebilirlik araçlarının düzgün çalışıp çalışmadığını kontrol eden "sanal makineler".

Her ana bilgisayarı ve ana makine grubunu kendi dosyasına koyun. Bu dosya önce anasistem ya da anasistem grubu tanımını, ardından da ona uygulanan hizmetlerin tanımlarını içermelidir.

Dosyanızda cfg_diryönerge kullanırsanız nagios.cfg, Nagios bu dizinde yinelemeli olarak arama yapar. Bunu kullanın. Ayarı cfg_dir=/etc/nagios/conf.diçin aşağıdakine benzer bir dizin ağacınız olabilir:

  • /etc/nagios/conf.d/
    • commands.d /
      • http.cfg
      • nrpe.cfg
      • smtp.cfg
      • ssh.cfg
    • hosts.d /
      • host1.cfg
      • host2.cfg
      • host3.cfg
    • hostgroups.d /
      • hostgroup1.cfg
      • hostgroup2.cfg

Her kaynak türü (komutlar, kişi grupları, kişiler, yürüyen merdivenler, ana bilgisayar grupları, ana bilgisayarlar, hizmet grupları, zaman sayaçları) için bunları kullanan ana bilgisayarlarla veya ana bilgisayar gruplarıyla gruplanan hizmetler dışında bir dizin oluşturma eğilimindeyim.

Kesin yapı, kuruluş gereksinimlerinize göre değişiklik gösterebilir. Geçmiş bir işte, hosts.dher farklı site için alt dizinler kullandım . Şu anki işimde, Nagios ana bilgisayar tanımlarının çoğu Kukla tarafından yönetiliyor, bu nedenle Kukla tarafından yönetilen ana bilgisayarlar için bir dizin ve elle yönetilen ana bilgisayarlar için ayrı bir dizin var.

Yukarıdakilerin ayrıca komutları genellikle protokole göre birden fazla dosyaya böldüğünü unutmayın. Böylece, nrpe.cfgdosya komutları olurdu check_nrpeve check_nrpe_1arg, süre http.cfgolabilir check_http, check_http_port, check_https, check_https_port, ve check_https_cert. 1

Genelde çok sayıda şablonum yok, bu yüzden genellikle sadece bir hosts.d/templates.cfgdosya ve services.d/templates.cfgdosyam var. Bunları daha yoğun kullanırsanız, bir templates.ddizinde uygun şekilde adlandırılmış dosyalara gidebilirler .

1 Ben de check_http_blindlytemelde bir komut var check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.; 403 yanıt kodu alsa bile Tamam değerini döndürür.


6

Hizmet ve ana bilgisayar gruplarını ve şablonlamayı kapsamlı bir şekilde kullanın. Ana makine grupları oluşturun ve ana makine gruplarına hizmetler atayın. Web kullanıcı arayüzünde bağımlılıklar, yükselmeler ve mantıksal gruplama için hizmet gruplarını kullanın.

Her şey için gruplarınız varsa, yeni bir ana bilgisayar eklemek yalnızca 3 veya 4 satırdır: ad, adres, şablonlar ve (isteğe bağlı olarak) ana bilgisayar grupları. Her şey şablonlanabilir.

Kalıtımla ilgili dokümanları ve ayrıca zaman kazandıran püf noktaları sayfasını mutlaka okuyun . Birden fazla kalıtım zor olabilir, ancak doğru kullanıldığında büyük bir zaman tasarrufu sağlar.


Yapılandırma ile bir denge bulmak istiyorum; başka bir yönetici sunucuyu almak zorunda olduğunda çok fazla miras zor alabilirsiniz (ben bir stajyer ben bu yüzden daha uzun süre çalıştırmak olmaz).
Michael Pobega

1
Muhtemelen birden fazla mirastan uzak dur. Basit tutmak istiyorsanız sadece basamaklı şablonlar kullanın (ish).
Keith

1

Nagios sunucularımı (Icinga'ya geçmeden önce) bu şekilde yapılandırmak için kullanıldım ve en az 512Mb Bellek / 1 CPU sunucusuyla 500'den fazla hizmete ulaşana kadar performans eksikliği yok. hostgroups ve servicegroups tamamen ayrı ayrı ele alınabilir ve sunucu başına bir dosya (bu dosyada tanımlanan bu sunucu için hizmetler) ve daha sonra, hostgroup / servicegroups başına dosya üzerinde olmasını sağlar, çünkü bu yaklaşımı tavsiye ederim. Bu sadece daha anlaşılır / açıktır.

Ölçeklenebilirlik sorunlarıyla karşılaşırsanız, istemci tarafında kontroller yapan nagios-nrpe-server'a bir göz atmak isteyebilirsiniz ve tüm nagios sunucunuzun yaptığı sonuçlar sadece; Çekin kaynağını yedekleyen. (Nagios check_nrpe'yi başlatır, istemciden istenir, yerel olarak kontrol gerçekleştirir ve nagios'a yanıt verir). Tüm kontrollerin bu şekilde ele alınamayacağını unutmayın (örneğin SNMP).

Bitirmek için ve sorunuzla ilgili kapsam dışında görünse bile, daha yeni ölçeklenebilir olan Icinga'ya geçmenizi ve yeni özellik uygulamalarına ve kullanıcı desteğine gerçekten önem veren daha güçlü bir topluluk tarafından geçmenizi öneririm. Yapılandırma aynıdır (aynı yapılandırma dosyaları, aynı sözdizimi).


Ölçeklenebilir olarak, aslında ölçeklenebilirlik sorunlarını değil, yapılandırmayı kastediyorum; Bu eşiğe ulaşmaktan hiç endişe etmiyorum. Ana makine grupları / hizmet grupları hakkında tam olarak ne demek istiyorsun? Açıklamanı anlamıyorum.
Michael Pobega

1

Bu düzeni kullanıyorum:

  • ana bilgisayarlar,
  • , hostgroups
  • uzaktan hizmetler,
  • yerel hizmetler.

Her varlığın kendi dosyası vardır. Şablonlarla birlikte yapılandırmanızı her zaman daha temiz hale getirebilirsiniz. Örneğin, her ana bilgisayarda yük ortalaması, disk alanı, bellek olabilir. Bu nedenle, genel bir şablon oluşturmak ve kullanmak oldukça kolay ve kullanışlıdır.


1

Yapılandırmayı grup oluşturma ile karmaşık hale getiremezsiniz. Asciiphil'in dediği gibi, bir dosya yaparsınız veya varolan dosyalardan (hosts.cfg veya daha önce ne gibi) bazılarında aynı grupları tanımlayabilirsiniz ve bu dosyayı yaparsınız veya nagios'a bu dosyanın etkin olduğunu söylersiniz (bu zaten etkin değilse yeni alan oluşturursunuz) ve bu yeni oluşturulan dosyanın yolunu koyduğunuz nagios.cfg dosyasındadır. "Cfg_file = / usr / yerel / nagios / etc / nesne / NEW_FILE.cfg"

Diğeri ise sadece altyapınıza bağlı olarak gruplar yapmak. Örneğin ben linux ve windows server varsa ben linux ve diğeri windows için iki farklı grup yapacak. Hizmetlerle aynı. Monitörde izlerken nasıl yapılandırmak ve görmek istediğinize bağlı olarak, bunları grup olarak nasıl görmenizi istersiniz.

Ve dosya veya bölüm nasıl bir grup yapmak için basit.

    define hostgroup{
    hostgroup_name novell-servers
    alias Novell Servers
    members netware1,netware2,netware3,netware4
    }

Ana bilgisayar yapılandırmasında / veya şablon kullanıyorsanız veya zaten bir ana bilgisayar şablonu veya hizmeti tanımladıysanız ve kullanımı kullanıyorsanız, tüm ana bilgisayarlara / pencerelere veya linux ana bilgisayarlarına, oluşturduğunuz tanımlı bir ana bilgisayar grubunun üyesi olmasını otomatik olarak söyleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.