Note: This documentation is still in progress, not reviewed properly, and might contain some errors or outdated images. It's intended for the upcoming 4.0.0 release, so configuration settings might be different from previous versions.
Maintenance Guide
This section provides guidance on maintaining your Poweradmin installation and ensuring its long-term performance and security.
Regular Maintenance Tasks
Database Maintenance
Regular database maintenance helps keep your Poweradmin installation running smoothly:
MySQL/MariaDB
-- Optimize tables to reclaim space and improve performance
OPTIMIZE TABLE users;
OPTIMIZE TABLE zones;
OPTIMIZE TABLE records;
OPTIMIZE TABLE domains;
OPTIMIZE TABLE supermasters;
OPTIMIZE TABLE domainmetadata;
-- Analyze tables to update statistics for the query optimizer
ANALYZE TABLE users;
ANALYZE TABLE zones;
ANALYZE TABLE records;
ANALYZE TABLE domains;
ANALYZE TABLE supermasters;
ANALYZE TABLE domainmetadata;
PostgreSQL
-- Update statistics
VACUUM ANALYZE users;
VACUUM ANALYZE zones;
VACUUM ANALYZE records;
VACUUM ANALYZE domains;
VACUUM ANALYZE supermasters;
VACUUM ANALYZE domainmetadata;
SQLite
-- Rebuild the database to optimize performance
VACUUM;
Log Management
To prevent logs from consuming excessive disk space:
- Database Logs: Implement a log rotation strategy for Poweradmin's database logs:
-- Example log cleanup (retain only the last 90 days)
DELETE FROM log_users WHERE created < DATE_SUB(NOW(), INTERVAL 90 DAY);
DELETE FROM log_zones WHERE created < DATE_SUB(NOW(), INTERVAL 90 DAY);
- System Logs: Configure log rotation for your web server and PHP logs:
# Example logrotate configuration (/etc/logrotate.d/poweradmin)
/var/log/apache2/poweradmin-*.log {
rotate 14
daily
compress
delaycompress
missingok
notifempty
create 640 www-data adm
}
Backup Procedures
Database Backup
Regular database backups are essential:
# MySQL/MariaDB backup
mysqldump -u username -p --opt powerdns > powerdns_$(date +%Y%m%d).sql
# PostgreSQL backup
pg_dump -U username powerdns > powerdns_$(date +%Y%m%d).sql
# SQLite backup
sqlite3 poweradmin.sqlite .dump > poweradmin_$(date +%Y%m%d).sql
Configuration Backup
Back up your Poweradmin configuration files:
# Create a compressed archive of configuration files
tar -czf poweradmin_config_$(date +%Y%m%d).tar.gz /path/to/poweradmin/inc/config.inc.php /path/to/poweradmin/config/
Security Updates
- Poweradmin Updates: Regularly check for and apply updates to Poweradmin
- Dependency Updates: Keep PHP, web server, and other components updated
- Security Scans: Periodically scan for vulnerabilities using tools like OWASP ZAP
Monitoring
Performance Monitoring
Monitor system resource usage:
- Database Query Performance: Enable slow query logging temporarily to identify performance bottlenecks
- Web Server Performance: Monitor response times and resource utilization
- Disk Space: Set up alerts for low disk space conditions
Error Monitoring
Regularly check error logs for issues:
# Check Poweradmin-related PHP errors
grep -i "poweradmin" /var/log/php/error.log
# Check web server errors
grep -i "poweradmin" /var/log/apache2/error.log
Routine Checks
Establish a routine maintenance schedule:
- Daily: Check for errors in logs
- Weekly: Monitor database size and performance
- Monthly: Run database optimization, prune old logs
- Quarterly: Test backups by performing a restore
- Bi-annually: Review user accounts and permissions
Disaster Recovery
Prepare for potential system failures:
- Recovery Plan: Document step-by-step recovery procedures
- Test Restores: Regularly test your backup and restore procedures
- Alternate Access: Ensure DNS records can be managed directly via PowerDNS if Poweradmin becomes unavailable
For more detailed guidance on specific maintenance tasks, refer to the other sections in this documentation.