I'm running Solr using Jetty and logging to /var/log/solr.log.
This log is growing so I added a logrotate entry at /etc/logrotate.d/solr as follows:
# Logrotate file for /var/log/solr.log
/var/log/solr.log {
rotate 5
compress
size 10M
weekly
postrotate
/sbin/service solr restart
endscript
}
Since this is a new file, the SELinux security context is off for /etc/logrotate.d/solr:
# ls -lZ /etc/logrotate.d
-rw-r--r-- root root system_u:object_r:etc_t acpid
-rw-r--r-- root root system_u:object_r:etc_t conman
-rw-r--r-- root root system_u:object_r:etc_t cups
-rw-r--r-- root root system_u:object_r:etc_t mgetty
-rw-r--r-- root root system_u:object_r:etc_t ppp
-rw-r--r-- root root system_u:object_r:etc_t psacct
-rw-r--r-- root root system_u:object_r:etc_t rpm
-rw-r--r-- root root system_u:object_r:etc_t setroubleshoot
-rw-r--r-- root root root:object_r:etc_t solr
...
That can be fixed by telling SELinux to relabel the solr file using the correct context for /etc/logrotate.d/:
# chcon --reference=/etc/logrotate.d solr
[root@plpt300 logrotate.d]# ls -lZ
-rw-r--r-- root root system_u:object_r:etc_t acpid
-rw-r--r-- root root system_u:object_r:etc_t conman
-rw-r--r-- root root system_u:object_r:etc_t cups
-rw-r--r-- root root system_u:object_r:etc_t mgetty
-rw-r--r-- root root system_u:object_r:etc_t ppp
-rw-r--r-- root root system_u:object_r:etc_t psacct
-rw-r--r-- root root system_u:object_r:etc_t rpm
-rw-r--r-- root root system_u:object_r:etc_t setroubleshoot
-rw-r--r-- root root system_u:object_r:etc_t solr
...
The new config file can be checked using the debug flag for logrotate, e.g.:
# logrotate --debug /etc/logrotate.d/solr
reading config file /etc/logrotate.d/solr
reading config info for /var/log/solr.log
Handling 1 logs
rotating pattern: /var/log/solr.log weekly (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/solr.log
log does not need rotating
not running postrotate script, since no logs were rotated