Icinga 2 trükkök

kami911 képe

A futtatott ellenőrzésekhez proxy kiszolgáló használata

Előfordul, hogy a adogg funkciók ellenőrzéséhez, külső webhelyek elérése szükséges, ott, ahol ez csak proxy-n keresztül engedélyezett.

Ebben az esetben nem működik az a megoldás, hogy az icinga2 klienst futtató, általában az icinga nevű, felhasználó ~/.bashrc fájljába helyezi el a proxy beállításokat. Ez azért nem működik, mert az Icinga 2 által indított alkalmazások nem kapják meg az icinga2 alkalmazás környezeti változóit.

Érdemes ilyenkor egy CheckCommand sablont létrehozni és abban megadni a proxy beállításokat, például így:

template CheckCommand "proxy" {
  env.HTTP_PROXY = "http://192.10.20.5:3128"
  env.HTTPS_PROXY = "http://192.10.20.5:3128"
  env.NO_PROXY = "example.com,examle.hu,192.10.*.*"
}

Ezek után a proxy beállítást egyszerűen egy importálással elvégezheti a megadott CheckCommand  objektumban, így:

  import "proxy"

Például a check_postgres ellenőrző esetében az alábbi módosítás kell elvégezni a /usr/share/icinga2/include/plugins-contrib.d/databases.conf fájlban:

object CheckCommand "postgres" {
        import "ipv4-or-ipv6"
        import "proxy"

A check_postgres ellenőrző esetében érdemes egy másik változtatást is elvégezni a /usr/lib64/nagios/plugins/check_postgres.pl fájlban a proxy megfelelő kezeléséhez, mert a GET parancs nem megfelelően használja a környezeti változóként átadott proxy-kiszolgáló beállításokat:

our @get_methods = (
    # "GET -t $get_method_timeout -H 'Pragma: no-cache'",
    "wget --quiet --timeout=$get_method_timeout --no-cache -O -",

A fenti példában a GET parancs kikommentezve a wget már jól kezeli a proxy beállításokat.