Wenn man bei OpenNMS einige Services aus der poller-configuration.xml entfernt, werden diese zwar nicht mehr überwacht, tauchen aber nach wie vor in der Serviceliste des jeweiligen Interface auf (“Not Monitored”). Theoretisch sollte OpenNMS diese Services nach 5 Tagen (Default) entfernen. Ich bin mir allerdings nicht sicher ob diese dann komplett entfernt werden oder nur auf “Not Monitored” gesetzt werden. Die Doku bzw. einige Einträge auf der Mailingliste sind da etwas widersprüchlich – und 5 Tage warten wollte ich nicht.
Manuell können die Services im Webinterface gelöscht werden indem man auf das Interface geht, dann den Service auswählt und schließlich auf “Delete” klickt. Bei hunderten Interfaces ist das etwas mühsam. Daher habe ich folgendes Script gebastelt welches die gewünschten Services bei allen Nodes und Interfaces löscht (Benutzung auf eigene Gefahr!):
#!/bin/bash
for i in `psql -qAt -F";" -c 'select ipaddr,nodeid from ipinterface;' -d opennms opennms`; do
IF=`echo $i | awk -F ";" '{print $1}'`
NODE=`echo $i | awk -F ";" '{print $2}'`
echo "deleting services from $IF on $NODE..."
# entferne den Service "Qmail-queue" von allen Nodes und Interfaces
/usr/share/opennms/bin/send-event.pl uei.opennms.org/nodes/deleteService \
--service Qmail-queue \
--interface $IF \
--node $NODE
done;
Auf jeden Fall sollte man die zu entfernenden Services auch aus der capsd-configuration.xml herausnehmen – ansonsten werden diese immer wieder neu erkannt (wiederum als “Not Monitored”).