This documentation covers Poweradmin 4.0.x and 4.1.x. Some sections are still being expanded.

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:
-- 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);
  1. 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.