Icinga sürüm 2 ile uzak “https” nasıl izlenir?


9

VirtualBox içinde Ubuntu 14.04.3 üzerinde icinga 2.3.11 var. Burada " https://mail.google.com " gibi "https" bağlantı noktası 443'ü izlemeye çalışıyorum.Aşağıdaki snippet'im varsayılan host.conf dosyasından

object Host "mailserver-01" {
    import "generic-host"
    address = "74.125.136.17"    /* ip for mail.google.com */ 
    vars.os = "Linux"
    vars.http_vhosts["http"] = {
        http_uri = "/"
    }
    vars.http_ssl = "1"
    vars.http_warn_time = "5"
    vars.http_critical_time = "10"

    vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
    }
}

Varsayılan services.conf dosyasından snippet aşağıdadır

apply Service "httpS" {
    import "generic-service"
    check_command = "http"
    assign where host.name == "mailserver-01"
}

İcingaweb2 panosunda Tamam / yeşil gösterilse de, doğru şekilde olduğundan emin değilim

Yanıtlar:


10

Ana makineniz "http_vhosts" özel özelliğini sözlük olarak tanımlar, ancak bu asla kullanılmaz (sözlüğü tanımlayan yinelenen kural ve yinelenen hizmet nesneleri için geçerli bir kural yoktur).

Bunun yerine hizmet uygulama kuralı (for döngüsü olmadan) yalnızca "httpS" hizmetini uygular. Kazara ana bilgisayar özel özniteliği "http_ssl" ayarlanır - dize olarak bir sayı yerine true olarak boolean olarak okunmalıdır (bu her zaman doğrudur).

Muhtemelen birden fazla URI'yi kontrol etmek istiyorsunuz, sadece / değil.

Teklifim (2 çözüm):

1) Hizmet uygulama kuralınızı düzeltin ve http_ * özel özniteliklerini ana makine nesne tanımınızdan kaldırın. Bunun yerine bunları hizmet uygulama kuralına ekleyin:

apply Service "httpS" {
  import "generic-service"
  check_command = "http"
  vars.http_uri = "/"
  vars.http_ssl = true
  assign where host.name == "mailserver-01"
}

Http CheckCommand için komut parametreleri olarak kullanılan tüm özel öznitelikleri aşağıdaki belgelerde bulabilirsiniz: http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check- komut http

2) Bunun yerine kural için bir hizmet uygulaması kullanın ve ana bilgisayarda tanımlanan http_vhosts sözlüğü üzerinde döngü yapın.

vars.http_vhosts["https /"] = {
  http_ssl = true
  http_uri = "/"
}

Buradaki adlandırmaya dikkat edin: "https /" oluşturulan hizmet adı olacaktır. http_ssl ve http_uri, http CheckCommand tarafından istenen özel özniteliklerle aynı adlardır.

Sihir kural için başvur içinde gerçekleşir: Sözlük anahtarı hizmet adı olacaktır. Sözlük değeri iç içe bir sözlüktür ve anahtar olarak http_uri ve http_ssl içerir. "Config" olarak adlandırılan örnekte. Bu yapılandırma sözlüğü "vars" özniteliğiyle tam olarak aynı yapıya sahiptir, bu yüzden tanım için geçerli olan hizmetin içine ekleyebiliriz.

apply Service for (servicename => config in host.vars.http_vhosts) {
  import "generic-service"
  check_command = "http"
  vars += config
}

İcinga2 daemon -C'yi kullanarak yapılandırmayı doğrulayın ve ardından hangi özel özniteliklerin oluşturulduğunu görmek için oluşturulan hizmet nesnelerine bakın (icinga2 nesne listesi).

İyi bir şey - tanımlanmış http_vhosts özel özniteliğine sahip tüm ana bilgisayarlar bu hizmet nesnelerini oluşturur, bir extea "atama nerede" ifadesine gerek yoktur (belki de istisnalar için nerede yoksaymayı ekleyin). Doğru strateji ile sadece bir kez kurallar için başvuruda bulunacaksınız ve gelecekte yalnızca eşleşen özel özellik sözlüğüne sahip yeni ana bilgisayarlar ekleyeceksiniz :-)

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#using-apply-for

Her ne kadar çözüm 2), icinga 2 yapılandırma dili ve anahtar kelimeleri, değer türleri ve sihir hileleri hakkında ileri düzeyde bilgi gerektirir. Yine de, bu yöntemlerin ve en iyi uygulamaların, dosyaları benimseme ve değiştirme ile uzun vadeli bakımın azaltılmasına yardımcı olduğunu düşünüyoruz.

Ayrıca daha ileri gidebilir ve ana bilgisayar adına bağlı olarak farklı test grupları için if-else koşullarını kullanabilirsiniz. Veya örneğin zaman aralıklarına dayalı dinamik eşikleri tanımlamak için işlevleri kullanın.


2

Google'da googled ve http komutunu buldum

/usr/share/icinga2/include/command-plugins.conf

Bu örnekte https://mail.google.com izlemeye çalıştım Aşağıda /etc/icinga2/conf.d/hosts.conf

object Host "www.google.com" {
address = "74.125.136.84"
check_command = "http"
vars.http_vhost = "mail.google.com"
vars.http_ssl = "1"
}

İşte icingaweb2 kontrol panelinde nasıl görünüyor resim açıklamasını buraya girin

Örnek2

object Host "secure.example.com" {
    address = "14.28.83.22"
    check_command = "http"
    vars.http_vhosts["secure.example.com"] = {
    http_uri = "/merchant/login.aspx"    
    }
        vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
        }
    vars.http_ssl="1"
}
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.