0

I wonder what's the recommended way to rotate PowerDNS log files. I added the following entry to logrotate:

# cat /etc/logrotate.d/pdns 
/var/log/pdns/*.log {
    daily
    rotate 7
    compress
    delaycompress
}

- but it looks like PowerDNS doesn't accept the signals from logrotate and it's referring the old log file:

# lsof | grep "pdns.log*"
rsyslogd  17776    root    5w      REG              253,0      88273     785738 /var/log/pdns/pdns.log-20140728

There are two available methods:

1. The copytruncate option but then there is a warning that some logging data might be lost.

copytruncate
              Truncate the original log file in place after creating a copy,
              instead of moving the old log file and optionally creating a
              new one.

2. The postrotate script. It seems that a full restart is required because reload (pdns_control cycle) and kill HUP are also ignored - with this method PowerDNS will be unavailable for a short period of time.

postrotate
        /sbin/service pdns reload > /dev/null 2>/dev/null || true
    endscript

Q1. Is there a better method to avoid potential logging data lost or the need to do a full restart?

Details:

- System: CentOS 6x

- Version: pdns-3.3.1 - related options

/etc/pdns/pdns.conf
...
log-dns-queries=yes
loglevel=5
logging-facility=6
...

Edit:

It's strange but I also noticed that it works fine with default logging-facility to system log /var/log/messages.

2

PowerDNS logs to the local syslog, so it is the syslog daemon you need to send a HUP signal to when you rotate the log files. You do not need to signal PowerDNS at all.

For example (taken from the logrotate configuration for rsyslog):

/var/log/pdns/*.log {
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.