Jag satt och skrev på en plugin för Icinga, och gjorde världens dundertabbe, för dig som nu tänker “åh den jävlen drop:ade hela databasen och rm -rf:ade /”, så har du fel! Det var inte riktigt så roligt.
Bakgrund
Icinga lagrar aktuell data om alla hostar i en databastabell som heter “hosts” och datan om deras status i tabellen “hoststatus”. Jag har definierat upp en check i icinga som kollar så att hosten är online, resultatet av det här scriptet lagras i tabellen “hoststatus”.
Kontentan
Mitt script kontrollerade statusen på hosten i tabellen “hoststatus” och reflekterade ut den statusen i Icinga.
Resultatet av detta? Det blev en loop där jag kollade statusen, som skrev till databasen och sen läste av värdet igen, en fin Failloop
Lösning
Jag skulle ha läst ur tabellen “servicestatus” istället…