Övervaka mailkön på din linuxserver

Jag stötte på ett problem med att postfix av någon anledning hade hängt sig på en av våra hostingservrar, det resulterade i att en massa mail inte gick iväg(typ 500st låg i kön), detta drabbade alla siter som ligger hostade på den maskinen, så det är viktigt att det inte händer igen. Som tur var så räckte det med att starta om postfix för att få mailen att flöda igen.

Vi övervakar våra siter och maskiner med icinga som är en fork av nagios, det gör att man lika gärna kan använda nagiosplugins till icinga.
Pluginpaketet “Nagiosplugins” (http://nagiosplugins.org/) innehåller ett script för check av mailq som standard, vilket jag såklart använde!

Jag skapade ett nytt ‘command’ i min commands.cfg:

define command{
        command_name    check_mailq
        command_line    $USER1$/check_mailq -w $ARG1$ -c $ARG2$
        }

Där -w är gränsen för Warning och -c är gränsen för critical $ARG1$ och $ARG2$ är placeholders för argument som specificeras när kommandot anropas. För att kunna använda mitt kommando så la jag in det direkt på hosten, eftersom det bara är den maskinen jag vill köra den kontrollen på.

define service{
        host_name                       localhost
        service_description             Check Mailq
        check_command                   check_mailq!10!20
}

Som ni ser så anger jag 10 mail i kö som warning gränsen och 20 mail i kö som critical, om det är så att det blir för många falsklarm så får jag justera det senare. Så här ser det sedan ut i Icinga WebUI:
Icinga Mailq Check