Reduzieren Sie die Ausführlichkeit der SNMPd-Protokollierung

37

SNMPd auf meinen CentOS-Systemen sendet jedes Mal, wenn eine Abfrage von meinen Überwachungstools eingeht, Protokollnachrichten an syslog. Gibt es eine Möglichkeit, die Ausführlichkeit von SNMPd zu verringern? Es fügt den Protokollen eine Menge Unordnung hinzu.

Sep 12 13:05:40 myhost snmpd[7073]: Received SNMP packet(s) from UDP: [ipaddr]:42874
Sep 12 13:05:40 myhost snmpd[7073]: Connection from UDP: [ipaddr]:49272

Vielen Dank!

wjimenez5271
quelle

Antworten:

37

Überprüfen Sie den Befehl, der startet snmpd(möglicherweise irgendwo /etc/rc.d/- in Ubuntu ist es /etc/defaults/snmpd) für die Protokollierungsoptionen:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -g root 0.0.0.0'

Oder finde es in der ps aux | grep snmpdAusgabe.

Die Manpage enthält die Protokollierungsoptionen:

-Ls FACILITY

Protokollieren Sie Nachrichten über Syslog mit der angegebenen Funktion ('d' für LOG_DAEMON, 'u' für LOG_USER oder '0' - '7' für LOG_LOCAL0 bis LOG_LOCAL7). Es gibt auch "Großbuchstaben" -Versionen jeder dieser Optionen, mit denen der entsprechende Protokollierungsmechanismus auf bestimmte Nachrichtenprioritäten beschränkt werden kann.

Für -LF und -LS steht die Prioritätsspezifikation vor dem Datei- oder Einrichtungs-Token. Die anerkannten Prioritäten sind:

0 or ! for LOG_EMERG,
1 or a for LOG_ALERT,
2 or c for LOG_CRIT,
3 or e for LOG_ERR,
4 or w for LOG_WARNING,
5 or n for LOG_NOTICE,
6 or i for LOG_INFO, and
7 or d for LOG_DEBUG. 

Die Standardeinstellung ist ziemlich ausführlich (nur 2 Stufen unterhalb des Debugs):

Die normale Ausgabe wird (oder wird!) Mit der Priorität LOG_NOTICE protokolliert

Wenn Sie sich über LOG_DAEMON (-Lsd) bei syslog anmelden, können Sie dies beispielsweise mit -LSwd/ auf -LS4dLOG_WARNING oder mit -LSed/ auf LOG_ERR reduzieren -LS3d.

(Bearbeitet, um die Optionen in die richtige Reihenfolge zu bringen.)

Andrew
quelle
Ich hatte Mühe, unter CentOS 6.5 den richtigen Speicherort zu finden. Es ist nicht /etc/snmp/snmpd.optionsnoch ist es, /etc/sysconfig/snmpd.optionsaber eigentlich ist es /etc/sysconfig/snmpd. Das ps aux | grep snmpdwar wirklich nützlich, um zu sehen, ob die Änderungen funktionierten.
Eugene van der Merwe
1
In Debian, das systemd verwendet, ist es verkabelt /lib/systemd/system/snmpd.service. Verwenden Sie systemctl cat snmpdund systemctl edit snmpd, um [Service]ExecStart nur zu überschreiben . ExecStartsollte zweimal eingegeben werden, das erste Mal leer, um die alte zu löschen (suchen Sie nach systemd überschreiben Anbietereinstellungen )
Alex
19

Um die minimale Priorität auf LOG_WARNING zu setzen (was ich normalerweise benutze), ändern Sie einfach das Argument argopt:

-Lsd

zu

-LSwd

Welches dafür steht:

  • S : Syslog, Priorität kommt als nächstes
  • w : (oder 4 ) Nur Warnungen und relevantere Meldungen protokollieren
  • d : Verwenden Sie die LOG_DAEMON-Funktion

Wie im Mann angegeben (aber tatsächlich fehlt ein klares Beispiel):

Für -LF und -LS steht die Prioritätsspezifikation vor dem Datei- oder Einrichtungs-Token

Oxullo
quelle
Hoppla, ich habe die Reihenfolge der Priorität / Einrichtung verpasst.
Andrew
10

dontLogTCPWrappersConnects

Wenn der Befehl snmpd mit TCP-Wrapper-Unterstützung kompiliert wurde, protokolliert er jede Verbindung zum Agenten. Diese Einstellung deaktiviert die Protokollnachrichten für akzeptierte Verbindungen. Abgelehnte Verbindungen werden weiterhin protokolliert.

dontLogTCPWrappersConnects trueDh zu snmpd.conf hinzufügen .

Ich bin verwundert, warum diese Protokollnachricht für einen Überwachungsdienst (und einen, der UDP unterstützt) über LOG_DEBUG betrachtet wird :-(. journalctl -o verboseZeigt an, dass die Nachricht PRIORITY = 6 (INFO) hat, was mit den normalen Startnachrichten für snmpd identisch ist .

sourcejedi
quelle
Scheint zu funktionieren und die Protokollierungsstufe von Benachrichtigung zu Warnung zu ändern, ist jedoch stärker auf die Verbindungsprotokollierung ausgerichtet.
8.
Dies funktionierte am besten für mich, um die Protokollierung für erfolgreiche Verbindungsversuche zu entfernen, anstatt die Protokollkriterien einzugrenzen.
B Knight
5

Ich entferne die Direktive "-Lsd" vollständig aus der /etc/sysconfig/snmpd.optionsDatei in CentOS / Redhat-Installationen und hinterlasse eine Datei mit folgendem Inhalt :

# snmpd command line options
OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid -a"
ewwhite
quelle
Stoppt dies alle snmpd-Protokolle vollständig oder wird auf die Standardprotokollierung zurückgegriffen?
Banjer
3

Das Einbeziehen der Standardzeile (in der Standarddatei /etc/snmp/snmp.conffür CentOS 6.5 enthalten) hat bei mir dazu beigetragen, die Ausführlichkeit speziell in Bezug auf die TCP / UDP-SNMP-Verbindungsprotokollierung zu reduzieren:

dontLogTCPWrappersConnects yes

Hier ist ein ausführlicherer Auszug aus der Standarddatei snmp.conf:

# We do not want annoying "Connection from UDP: " messages in syslog.
# If the following option is commented out, snmpd will print each incoming
# connection, which can be useful for debugging.

dontLogTCPWrappersConnects yes
kindzmarauli
quelle
-1

Auf dem Himbeer-Pi / Raspbian ist der Dateispeicherort

/lib/systemd/system/snmpd.service

Dann müssen Sie einen Daemon-Reload durchführen, bevor Sie den snmpd-Dienst neu starten können.

systemctl daemon-reload

SkullKill
quelle