Interface monitoring
Posted Wed 24 Feb 2016 07:45:33 PM CET
Florian Lohoff
Der erste Schritt zur Alarm suppression - Wir monitoren auf von Kunden gemanageten Devices nicht den Link Status. 20 Minuten c++ basteln und einem boost::program_options bug später:
./checkif
Need address, community and ifname
Allowed options:
-h [ --help ] produce help message
--address arg host address
--community arg host snmp v2 community
--ifname arg interface name to monitor
--cachedir arg cache directory for state files
--nolinkstatus ifOperStatus down is not critical
Das Attribute peer-device
auf den interfaces in der FiDB
übersetzen in eine icinga2 variable nolinkstatus:
# If we have an unmanaged peer device - dont monitor ifOperStatus
if ($neighbour->attrmatch('peer-device', 'unmanaged', 0)) {
$service->variableadd({ name => "nolinkstatus", value => 1 });
}
Und entsprechend eine conditional variable im icinga2 für den check:
object CheckCommand "customif" {
import "plugin-check-command"
command = [
"/etc/icinga2/customchecks/checkif/checkif"
]
arguments = {
"--address" = "$address$"
"--community" = "$snmprocommunity$"
"--ifname" = "$ifname$"
"--cachedir" = "/var/cache/nagios3/checkif/"
"--nolinkstatus" = {
set_if = "$nolinkstatus$"
}
}
}
Und schon werden die entsprechenden ports nicht mehr CRITICAL wenn der Kunde meint zu booten oder den port runterzufahren. Es muss nur einmal richtig Dokumentiert werden.