# Logrotate configuration for WordPress/LEMP stack # Generated by Ansible # Nginx logs /var/log/nginx/*.log { daily missingok rotate {{ logrotate_nginx_rotate | default('52') }} compress delaycompress notifempty create 0644 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi endscript postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript } # PHP-FPM logs /var/log/php{{ php_version }}-fpm/*.log { weekly missingok rotate {{ logrotate_php_rotate | default('12') }} compress delaycompress notifempty create 0644 www-data www-data postrotate /usr/lib/php/php{{ php_version }}-fpm-reopenlogs endscript } # MySQL/MariaDB logs /var/log/mysql/*.log { daily missingok rotate {{ logrotate_mysql_rotate | default('30') }} compress delaycompress notifempty create 0640 mysql adm sharedscripts postrotate if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript } # WordPress debug logs {{ wordpress_path }}/wp-content/debug.log { weekly missingok rotate {{ logrotate_wordpress_rotate | default('4') }} compress delaycompress notifempty create 0644 www-data www-data copytruncate } # Redis logs (if enabled) {% if enable_redis is defined and enable_redis %} /var/log/redis/*.log { weekly missingok rotate {{ logrotate_redis_rotate | default('12') }} compress delaycompress notifempty create 0640 redis redis postrotate if [ -f /var/run/redis/redis-server.pid ]; then kill -USR1 `cat /var/run/redis/redis-server.pid` fi endscript } {% endif %} # Fail2ban logs (if enabled) {% if enable_fail2ban is defined and enable_fail2ban %} /var/log/fail2ban.log { weekly missingok rotate {{ logrotate_fail2ban_rotate | default('12') }} compress delaycompress notifempty create 0600 root root postrotate /usr/bin/fail2ban-client flushlogs >/dev/null 2>&1 || true endscript } {% endif %}