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.