HowTo: logrotate

german

#1

Hallo,

[code]# Warning: This file is auto-generated and might be overwritten by

univention-config-registry.

Please edit the following file(s) instead:

Warnung: Diese Datei wurde automatisch generiert und kann durch

univention-config-registry überschrieben werden.

Bitte bearbeiten Sie an Stelle dessen die folgende(n) Datei(en):

/etc/univention/templates/files/etc/logrotate.d/univention-updater

/var/log/univention/updater.log {
weekly
rotate 12
create 640 root adm
compress
missingok
notifempty
}
/var/log/univention/actualise.log {
weekly
rotate 12
create 640 root adm
compress
missingok
notifempty
}
/var/log/univention/repository.log {
weekly
rotate 12
create 640 root adm
compress
missingok
notifempty
}
/var/log/univention/errata-updates.log {
weekly
rotate 12
create 640 root adm
compress
missingok
notifempty
}
[/code]

Als Admin, würde ich einfach die Dateien editieren, jedoch weiß ich nun aus Erfahrung, dass wenn ich /var/log/univention/appcenter.log ergänzen möchte, dass es beim nächstes Update wieder raus ist.

Im Handbuch unter der Rubrik Logdateien bzw. Container / Richtlinien, finde ich keine passende Lösung, wie ich nun richtig vorgehe.

Ebenso ist bei uns folgender Fehler:

[code]/etc/cron.daily/logrotate:
error: univention-s4-connector:11 duplicate log entry for /var/log/univention/connector-tracebacks.log

/etc/logrotate.d# grep -rl tracebacks .
./univention-s4-connector
./univention-ad-connector
[/code]
s. dazu auch: forge.univention.org/bugzilla/sh … i?id=38140

Wie ist nun das richtige Vorgehen?

  • appcenter.log zu rotieren
  • connector-tracebacks.log nur einmal vorkommen zu lassen
  • /etc/logrotate.d/univention-updater zu optimieren
/var/log/univention/updater.log
/var/log/univention/errata-updates.log
/var/log/univention/repository.log
/var/log/univention/actualise.log {
        weekly
        rotate 12
        create 640 root adm
        compress
        missingok
        notifempty
}
  • die Einträge updater, actualise, … /etc/univention/templates/files/etc/logrotate.d/univention-updater im Univention (UDM, UCR,…) zu finden
@%@UCRWARNING=# @%@

@!@
import univention.lib.ucrLogrotate

name = "updater"
settings = univention.lib.ucrLogrotate.getLogrotateConfig(name, configRegistry)
print "/var/log/univention/%s.log {" % name
for setting in settings.keys():
        print "\t%s" % settings[setting]
print "}"

name = "actualise"
[...]

Danke.


#2

Hallo,

wenn man in das am Anfang der /etc/logrotate.d/univention-updater schaut, sieht man das Template aus dem diese Konfiguration erzeugt wird.
Im Template ist zu erkennen, dass einige UCR-Variablen benutzt werden können um das Verhalten von Logrotate für vom Updater geschriebene Logs zu verändern.

Ich würde allerdings nicht soweit gehen und für die appcenter.log die Rotation vom Updater zweckentfremden.
Da sonst nichts zu finden war, habe ich [bug]40915[/bug] dafür aufgemacht.

Zu [bug]38140[/bug]: Da steht ja auch die Ursache. Ich bin mir nicht wirklich sicher, ob es sinnvoll ist, Samba 4 und den AD-Connector auf ein- und demselben System laufen zu lassen. Das hab ich bisher schon deswegen gelassen, weil es ziemlich gleichartige Connectoren sind und ich deswegen Probleme befürchtete. Solange es wirklich nur doppelte Logrotate-Definitionen betrifft, sind die Probleme geringer als gedacht. Die Fehlersuche wird aber sicher etwas tricky. Also z.B. wenn beide Connectoren ins selbe Logs schreiben.

Viele Grüße,
Dirk Ahrnke


#3

Erstmals vielen Dank Dir,

[quote]sieht man das Template aus dem diese Konfiguration erzeugt wird.
Im Template ist zu erkennen, dass einige UCR-Variablen benutzt werden könne[/quote]
wie ich schrieb, habe weder im Handbuch noch beim suchen entsprechende Einträge gefunden. Daher weiß ich nicht, wie ich es sinnvoll einbauen könnte.

habe ich mal deinstalliert. Ich denke die Begriffe waren verwirrend (für denjenigen, der den installiert hat), da der Server als 2. AD dienen sollte…bin mal gespannt.


#4

Wenn ich in der Doku nichts finde, versuche ich Bugzille und schaue mir ähnliche Dinge an.

[code]# ucr search logrotate
logrotate/compress: yes
If this option is activated, log files are compressed during rotation.

logrotate/create: 640 root adm
Configures mode, owner and group of a log file after rotation, e.g. ‘640 root adm’.

logrotate/missingok: yes
If this option is activated, proceed without printing an error message if a logfile is missing.

logrotate/notifempty: yes
If this option is activated, empty logfiles are not rotated.

logrotate/rotate/count: 12
The rotation interval for system log files. If e.g. ‘logrotate/rotate’ is set to ‘weekly’ and if ‘12’ is configured here, rotation occurs after 12 weeks.

logrotate/rotate: weekly
Log files are rotated according to this criterion, e.g. “daily”, “weekly”, “monthly” or up to a size limit like “size 100M”. See ‘man logrotate.conf’ for additional formats.

logrotate/syslog/rotate/count: 84

logrotate/syslog/rotate: daily

[/code]

Im Template steht z.B.

[code]name = “updater”
settings = univention.lib.ucrLogrotate.getLogrotateConfig(name, configRegistry)
print “/var/log/univention/%s.log {” % name
for setting in settings.keys():
print “\t%s” % settings[setting]
print “}”

[/code]

Es sind offensichtlich komplette Zeilen, die für die jeweilige Logdate (“name” im Codeschnipsel) in die logrotate-Datei eingebaut werden.

In forge.univention.org/bugzilla/sh … d=27722#c4 dann konkrete Beispiele.

[quote][code]-> more /etc/logrotate.d/univention-updater
/var/log/univention/updater.log {
weekly
rotate 12
create 640 root adm
compress
missingok
notifempty
}

-> ucr set logrotate/updater/rotate=‘size 100k’

-> more /etc/logrotate.d/univention-updater
/var/log/univention/updater.log {
size 100k
rotate 12
create 640 root adm
compress
missingok
notifempty
}[/code][/quote]


#5

Die UCR Variablen beziehen sich auf:

[code]/etc/logrotate.conf -> /etc/univention/templates/files/etc/logrotate.conf
ls /etc/logrotate.d/
apache2 … mrtg …

ucr search --all mrtg | wc -l
0[/code]
wie im 1. Beitrag erwähnt, sich als Admin auszukennen, ist nicht immer von Vorteil bei Univention, deswegen heißt auch mein Betreff HowTo


#6

Ich verstehe nicht ganz, worauf Sie mit dem Hinweis auf den Betreff des Threads hinauswollen.
Man könnte “HowTo: logrotate” auch so verstehen, dass ein Howto Dokument folgt. Das sehe ich nicht, ebensowenig wie die Bitte, dass Sie eines benötigen.
Falls Ihrer Ansicht nach im Produkt etwas unvollständig ist, können Sie entweder:

  • hier im Forum unter Feedback schreiben
  • einen Enhancement-Request im Bugzilla anlegen
  • einen Support-Call bei Univention auslösen

Ich selbst werde hier nur noch Anregungen geben wie Probleme selbst gelöst werden können. Alles andere geht meiner Meinung nach über Community-Support hinaus, insbsondere bei kommerziellen Anwendern.

Noch ein Hinweis zur “mrtg”-Suche im letzten Post. Die Nichtexistenz einer UCR-Variablen bedeutet nicht zwangsläufig, dass sie bei Existenz nicht doch etwas bewirken würde.
Im konkreten Fall des Logrotates für mrtg sieht man aber, dass dieses Logrotate nicht durch ein Template gebaut wird und eine UCR-Variable somit wenig Sinn hätte.