Re: FDS log management - bug?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Noriko Hosoi <nhosoi@xxxxxxxxxx> a écrit :

I tried to reproduce the problem with these config parameters, but I
could not.

   nsslapd-accesslog-logging-enabled: on
   nsslapd-accesslog-maxlogsperdir: 10
   nsslapd-accesslog-mode: 600
   nsslapd-accesslog-maxlogsize: 10
   nsslapd-accesslog-logrotationtime: 1
   nsslapd-accesslog-logrotationtimeunit: day
   nsslapd-accesslog-logrotationsync-enabled: on
   nsslapd-accesslog-logrotationsynchour: 10
   nsslapd-accesslog-logrotationsyncmin: 40
   nsslapd-accesslog: /var/log/redhat-ds/slapd-laputa/access

It rotated the access log at 10:40, but it did not remove my
older/oldest log access.20070810-173005:

   total 11788
   -rw-------  1 nobody nobody 8570855 Aug 13 10:52 access
   -rw-------  1 nobody root    108003 Aug 10 17:33 access.20070810-173005
   -rw-------  1 nobody nobody 1845874 Aug 13 10:33 access.20070813-103043
   -rw-------  1 nobody nobody 1453655 Aug 13 10:40
   access.20070813-103824 <=== rotated at 10:40
   -rw-------  1 nobody root       377 Aug 13 10:40 access.rotationinfo
   -rw-------  1 nobody root         0 Aug 10 17:30 audit
   -rw-------  1 nobody root        63 Aug 10 17:30 audit.rotationinfo
   -rw-------  1 nobody root      5878 Aug 13 10:38 errors
   -rw-------  1 nobody root        63 Aug 10 17:30 errors.rotationinfo

Do you happen to have any other advice I could test on?
Thanks,
--noriko

Actually, when you first set the time for the rotation (nsslapd-accesslog-logrotationsynchour and nsslapd-accesslog-logrotationsyncmin) everything goes well. It's starting from the following rotation (after 24 hours) when it starts to behave differently. So just wait for another 24 hours without restarting the server...

And it seems to me that i've found the reason of this strange behaviour. It is a half java console/half server bug:

1. When you set the deletion policy with the java console and if you don't change at the same time the default time unit (for example, i've put 12 MONTHs instead of 1 MONTH by default) the console does not put the attribute 'nsslapd-accesslog-logexpirationtimeunit' (or 'nsslapd-errolog-logexpirationtimeunit' for error logs, maybe the same problem for audit logs) into the dse.ldif. By default, this attribute is not present. It puts however the 'nsslapd-accesslog-logexpirationtime' attribute. The first bug.

2. So what happens next... The server finds itself with the 'nsslapd-accesslog-logexpirationtime' set but without the time units. And when the attribute 'nsslapd-accesslog-logexpirationtimeunit' is not set, according to the documentation, the server should not delete the logs at all (cf."If the unit is unknown by the server, then the log will never expire"). However, that's exactly what it does. It deletes all the logs but the last rotated one. The second bug.

(concerning the version of the server, it's a compiled rpm from dsbuild-fds104.tar.gz in CentOS5, x32 architecture)

Anyway, it's a cosmetic bug but since i've ran into it i thought i should share my experience :)

Talking about cosmetic bugs... There is another small bug concerning the description of the aci bind rules in the documentation. Namely, in chapter 6 (managing access control) of the administrator's guide at the page 240 of the pdf version (http://www.redhat.com/docs/manuals/dir-server/pdf/ds71admin.pdf) in the paragraph "Bind Rules/Defining Access Based on Authentication". While describing various SASL methods it mentions among others the 'GSS-API' keyword that can be used in ACIs. I've tested it and it turns out that (authmethod = "sasl GSS-API") does not work. What actually works is (authmethod = "sasl GSSAPI").

Thanks


Andrey Ivanov wrote:
I don't know whether it's a feature or a bug :) I have the following configuration for the log management :

nsslapd-accesslog-logging-enabled: on
nsslapd-accesslog-maxlogsperdir: 365
nsslapd-accesslog-mode: 600
nsslapd-accesslog-maxlogsize: 120
nsslapd-accesslog-logrotationtime: 1
nsslapd-accesslog-logrotationtimeunit: day
nsslapd-accesslog-logrotationsync-enabled: on
nsslapd-accesslog-logrotationsynchour: 0
nsslapd-accesslog-logrotationsyncmin: 0
nsslapd-accesslog: /Logs/Ldap/access

nsslapd-accesslog-logmaxdiskspace: 50000
nsslapd-accesslog-logexpirationtime: 12
nsslapd-accesslog-logexpirationtimeunit: month
nsslapd-accesslog-logminfreediskspace: 2000

It means, essentially, that the logs are rotated once a day at midnight (or if the file is larger than 120Mb) and that i keep them for 1 year.

If i don't set the log rotation time (logrotationsynchour and logrotationsyncmin) everything is ok, the logs are rotated once a day and then they are kept for the necessary time period. However when i set this rotation time the server deletes ALL the logs but the current and the last one. That is, after each rotation i have the current log (the file 'access') and the previous one (yesterday's log, like access.20070811-000030). All the oher log files are deleted.

So if i want to keep the logs i need to copy them to a different place by a cron script which is not very elegant :)


----------------------------------------------------------------
This message was sent using X-WebMail


--
Fedora-directory-users mailing list
Fedora-directory-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-directory-users

[Index of Archives]     [Fedora Directory Users]     [Fedora Directory Devel]     [Fedora Announce]     [Fedora Legacy Announce]     [Kernel]     [Fedora Legacy]     [Share Photos]     [Fedora Desktop]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite News]

  Powered by Linux