GNU/Linux >> Znalost Linux >  >> Linux

Jak monitorovat vzdálené „https“ pomocí Icinga verze 2?

Váš hostitel definuje vlastní atribut "http_vhosts" jako slovník, ale ten se nikdy nepoužívá (neplatí pro iteraci definovanou pravidlem přes tento slovník a geberování objektů služeb).

Místo toho pravidlo pro aplikaci služby (bez smyčky for) pouze aplikuje službu "httpS". Náhodou je nastaven vlastní atribut hostitele "http_ssl" - měl by znít true jako boolean místo čísla jako řetězec (to je vždy pravda).

Pravděpodobně budete chtít zkontrolovat více URI, nejen /.

Můj návrh (2 řešení):

1) Opravte pravidlo použití služby a odeberte vlastní atributy http_* z definice hostitelského objektu. Místo toho je přidejte do pravidla použití služby:

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

Můžete najít všechny vlastní atributy používané jako parametry příkazu pro http CheckCommand v dokumentaci:http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-command-http

2) Místo toho použijte službu Apply for rule a proveďte smyčku přes slovník http_vhosts definovaný na hostiteli.

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

Všimněte si pojmenování zde:„https /“ bude vygenerovaný název služby. http_ssl a http_uri jsou přesně stejné názvy jako požadované vlastní atributy podle http CheckCommand.

Kouzlo se odehrává uvnitř pravidla žádosti:Klíčem slovníku bude název služby. Hodnota slovníku je vnořený slovník a obsahuje klíče http_uri a http_ssl. V příkladu se nazývá "config". Tento konfigurační slovník má přesně stejnou strukturu jako atribut "vars", a proto jej můžeme přidat do žádosti o definici služby.

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

Ověřte konfiguraci pomocí icinga2 daemon -C a poté se podívejte do vygenerovaných objektů služeb, abyste viděli, které uživatelské atributy jsou generovány (seznam objektů icinga2).

Jedna dobrá věc - všichni hostitelé, kteří mají definovaný uživatelský atribut http_vhosts, budou generovat tyto objekty služeb, není potřeba extea výraz "přiřadit kde" (možná spíše přidat ignorovat kde pro výjimky). Se správnou strategií napíšete žádost o pravidla pouze jednou a v budoucnu budete přidávat pouze nové hostitele s odpovídajícím slovníkem vlastních atributů :-)

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

Ačkoli řešení 2) vyžaduje pokročilé znalosti konfiguračního jazyka icinga 2 a jeho klíčových slov, typů hodnot a kouzelnických triků. Přesto si myslíme, že takové metody a osvědčené postupy pomáhají snížit dlouhodobou údržbu s přijímáním a změnou souborů.

Můžete také jít dále a použít podmínky if-else pro různé prahové hodnoty na základě názvu hostitele. Nebo použijte funkce k definování dynamických prahových hodnot, například na základě časových období.


Prohledal jsem a našel http příkaz v

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

V tomto příkladu jsem se pokusil sledovat https://mail.google.comNíže je /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"
}

Zde, jak to vypadá na řídicím panelu icingaweb2

Příklad2

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"
}

Linux
  1. Jak spravovat služby Systemd pomocí Systemctl v systému Linux

  2. Příkaz SCP v Linuxu:Jak jej používat, s příklady

  3. Jak nakonfigurovat vzdálené protokolové servery s rsyslog?

  1. Jak monitorovat výkon systému Linux pomocí Sysstat

  2. Jak monitorovat zabezpečení serveru Linux pomocí Osquery

  3. Jak určit odchozí HELO pomocí sendmailu?

  1. Jak monitorovat systém Linux pomocí příkazu Glances

  2. Jak spouštět kontejnery jako službu Systemd s Podmanem

  3. Jak monitorovat výkon systémů Linux pomocí příkazu iostat