Protokollieren der apt / dpkg-Aktivität in syslog

8

Mein Ziel ist es, die apt / dpkg- Aktivität mit syslog (rsyslog) zu protokollieren , damit Protokolleinträge an den zentralen Syslog-Server gesendet werden.

dpkg schreibt in /var/log/dpkg.log, apt schreibt in ein /var/log/aptVerzeichnis.

Ich habe einige Nachforschungen angestellt und es scheint, dass apt oder dpkg Syslog verwenden können. Die einzige Option ist die Verwendung der Funktion "Text File Input Module" von rsyslog ( http://www.rsyslog.com/doc/master/configuration/modules/imfile.html ), mit der die Protokolldatei regelmäßig auf neuen Inhalt überprüft wird.

/etc/dpkg/dpkg.cfgDie Konfigurationsdatei verfügt über eine logOption, es gibt jedoch keine Handbuchseite für die Optionen und Funktionen von dpkg.cfg.

Ist wirklich rsyslog imfile die einzige Option?

Petr Stastny
quelle
Ich verstehe nicht, warum Sie das tun möchten. Möchten Sie auch, dass es sich syslogstattdessen oder zusätzlich zu den Orten anmeldet, an denen es sich anmeldet?
Faheem Mitha
Ich brauche es, weil unsere Unternehmensrichtlinie einen zentralen Syslog-Server mit Protokollereignissen von allen Servern an einem Ort haben muss. rsyslog kümmert sich um die Verteilung von Ereignissen, daher muss ich apt + dpkg-Ereignisse (installierte / entfernte / aktualisierte Pakete) für den rsyslog-Prozess bereitstellen.
Petr Stastny
Ich gehe davon aus, dass Sie blog.actbluetech.com/2012/07/logging-dpkg-to-syslog.html gesehen haben .
Faheem Mitha
Ja, aber es werden nur Paketnamen ohne Aktivitätsdetails protokolliert. imfile ist dafür besser. Ich frage mich nur, warum apt / dpkg nicht die natürliche Fähigkeit hat, mit dem Syslog-Prozess zu sprechen.
Petr Stastny
1
Vielleicht Fehler auf der Wunschliste?
Faheem Mitha

Antworten:

3

Für dpkg kann dies durch Hinzufügen erfolgen

status-logger "logger -t dpkg -p info"

zu /etc/dpkg/dpkg.cfg . Da apt-get dpkg aufruft, werden auch apt-get / apt-Aktionen protokolliert. Siehe man loggerfür die Informationen Anpassung an den Syslog protokolliert.

Ich verwende diese ansible Aufgabe, um die Konfigurationen zu aktualisieren:

- name: dpkg syslog
  lineinfile:
   dest: /etc/dpkg/dpkg.cfg
   line: 'status-logger "logger -t dpkg -p info"'

Wenn Sie das systemd-Journal verwenden, können Sie die Protokolle bequem über überprüfen

journalctl SYSLOG_IDENTIFIER=dpkg
Sophie
quelle
Schön, obwohl die ansible Aufgabe become: yeseinen Fehler vermeiden muss:FAILED! => {"changed": false, "msg": "The destination directory (/etc/dpkg) is not writable by the current user. Error was: [Errno 13] Permission denied: '/etc/dpkg/.ansible_tmppkCGRodpkg.cfg'"}
Tyson
0

Über die --logOption können Sie ändern, wo dpkg seine Ausgabe protokolliert . Dies erlaubt nur Dateinamen. DPKG wurde als einfaches und effizientes Tool zum Bearbeiten von Paketen entwickelt. Daher ist es von Vorteil, keinen Logger zu haben, der die Dinge kompliziert. Der einfachste Weg wäre, dass Sie in eine Datei schreiben und Syslog aus dieser Datei liest, wie Sie bereits wissen.

Sie können verwenden status-fd, um den Status an einen Dateideskriptor wie zu senden, /dev/logoder status-loggerum einen Mittelsmann zu haben, der die Einträge an das Syslog sendet.

Braiam
quelle