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:

  1. Database Logs: Implement a log rotation strategy for Poweradmin's database logs: sql -- 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);

  2. 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

  1. Poweradmin Updates: Regularly check for and apply updates to Poweradmin
  2. Dependency Updates: Keep PHP, web server, and other components updated
  3. Security Scans: Periodically scan for vulnerabilities using tools like OWASP ZAP

Monitoring

Performance Monitoring

Monitor system resource usage:

  1. Database Query Performance: Enable slow query logging temporarily to identify performance bottlenecks
  2. Web Server Performance: Monitor response times and resource utilization
  3. 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:

  1. Recovery Plan: Document step-by-step recovery procedures
  2. Test Restores: Regularly test your backup and restore procedures
  3. 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.