====== Dozzle ====== Dozzle is a real-time log viewer for Docker containers, providing a web-based interface to monitor and search through container logs. It offers live log streaming, filtering capabilities, and multi-container log management. ===== Overview ===== **Purpose:** Real-time Docker log viewer **URL:** https://dozzle.yourdomain.duckdns.org **Authentication:** Authelia SSO protected **Deployment:** Infrastructure stack **Interface:** Modern web UI with live updates ===== Key Features ===== **Log Viewing:** * **Real-time Streaming**: Live log updates * **Multi-container**: View multiple containers simultaneously * **Search & Filter**: Advanced log filtering * **Color Coding**: Syntax highlighting for different log levels **Container Management:** * **Container List**: All running containers * **Status Indicators**: Container health status * **Quick Actions**: Start/stop/restart containers * **Resource Monitoring**: Basic CPU/memory stats **Search & Filtering:** * **Text Search**: Search within logs * **Regex Support**: Regular expression filtering * **Date Filtering**: Time-based log filtering * **Container Filtering**: Filter by specific containers ===== Configuration ===== **Container Configuration:** ```yaml services: dozzle: image: amir20/dozzle:latest container_name: dozzle restart: unless-stopped environment: - DOZZLE_USERNAME=${DOZZLE_USERNAME:-admin} - DOZZLE_PASSWORD=${DOZZLE_PASSWORD} - DOZZLE_LEVEL=info - DOZZLE_TAILSIZE=100 - DOZZLE_FILTER_CONTAINERS=${DOZZLE_FILTER_CONTAINERS} - DOZZLE_NO_ANALYTICS=true volumes: - /var/run/docker.sock:/var/run/docker.sock:ro networks: - traefik-network deploy: resources: limits: cpus: '0.3' memory: 128M reservations: cpus: '0.05' memory: 32M labels: - "traefik.enable=true" - "traefik.http.routers.dozzle.rule=Host(`dozzle.${DOMAIN}`)" - "traefik.http.routers.dozzle.entrypoints=websecure" - "traefik.http.routers.dozzle.tls.certresolver=letsencrypt" - "traefik.http.routers.dozzle.middlewares=authelia@docker" - "traefik.http.services.dozzle.loadbalancer.server.port=8080" - "x-dockge.url=https://dozzle.${DOMAIN}" ``` **Environment Variables:** ```bash # Authentication (optional, Authelia handles SSO) DOZZLE_USERNAME=admin DOZZLE_PASSWORD=your-secure-password # Logging configuration DOZZLE_LEVEL=info # debug, info, warn, error DOZZLE_TAILSIZE=100 # Lines to show initially # Container filtering (optional) DOZZLE_FILTER_CONTAINERS=container1,container2 # Privacy DOZZLE_NO_ANALYTICS=true ``` ===== Interface Overview ===== **Main Dashboard:** * **Container List**: Left sidebar with all containers * **Log Viewer**: Main panel showing selected logs * **Search Bar**: Top search and filter controls * **Status Bar**: Connection and filter status **Container Selection:** * **Single Container**: Click to view individual logs * **Multiple Containers**: Hold Ctrl/Cmd to select multiple * **All Containers**: View logs from all containers * **Container Groups**: Filter by stack or service type **Log Display:** * **Live Updates**: Real-time log streaming * **Color Coding**: Different colors for log levels * **Timestamps**: Show log timestamps * **Line Numbers**: Reference specific log lines ===== Search & Filtering ===== **Text Search:** ```bash # Basic search error warning # Case-sensitive search /Error|Warning/ # Complex patterns "connection refused" OR "timeout" ``` **Advanced Filtering:** * **Container Name**: Filter by specific containers * **Log Level**: Filter by severity (ERROR, WARN, INFO, DEBUG) * **Time Range**: Show logs from specific time periods * **Regex Patterns**: Use regular expressions for complex matching **Saved Filters:** * **Custom Filters**: Save frequently used search patterns * **Filter Presets**: Pre-configured filter combinations * **Quick Filters**: One-click common filters (errors only, etc.) ===== Container Management ===== **Quick Actions:** * **Start/Stop**: Control container lifecycle * **Restart**: Restart individual containers * **Logs**: Jump to detailed logs * **Exec**: Open terminal in container **Container Information:** * **Status**: Running, stopped, paused * **Uptime**: How long container has been running * **Image**: Container image and version * **Ports**: Exposed ports and mappings **Resource Monitoring:** * **CPU Usage**: Real-time CPU percentage * **Memory Usage**: RAM consumption * **Network I/O**: Data transfer rates * **Disk I/O**: Storage read/write operations ===== Advanced Features ===== **Log Analysis:** * **Pattern Recognition**: Identify common error patterns * **Anomaly Detection**: Flag unusual log patterns * **Trend Analysis**: Track log volume over time * **Alert Integration**: Send alerts for specific log patterns **Export & Sharing:** * **Log Export**: Download logs as text files * **Share Links**: Generate shareable log links * **API Access**: Programmatic log access * **Integration**: Connect with other monitoring tools **Customization:** * **Themes**: Light/dark mode switching * **Layout**: Customizable interface layout * **Shortcuts**: Keyboard shortcuts for common actions * **Notifications**: Browser notifications for events ===== Security Considerations ===== **Access Control:** * **Authelia Protection**: SSO authentication required * **User Permissions**: Container access restrictions * **Log Privacy**: Sensitive data in logs * **Network Security**: Secure Docker socket access **Data Protection:** * **Log Encryption**: Secure log transmission * **Access Logging**: Audit log access * **Data Retention**: Log retention policies * **Privacy Controls**: Filter sensitive information ===== Performance Optimization ===== **Resource Management:** ```yaml deploy: resources: limits: cpus: '0.3' memory: 128M reservations: cpus: '0.05' memory: 32M ``` **Log Optimization:** * **Tail Size**: Limit initial log display * **Buffer Management**: Efficient log buffering * **Compression**: Log compression for storage * **Cleanup**: Automatic old log cleanup **Container Filtering:** ```yaml # Limit visible containers environment: - DOZZLE_FILTER_CONTAINERS=traefik,authelia,dockge ``` ===== Troubleshooting ===== **Connection Issues:** ```bash # Check Docker socket access ls -la /var/run/docker.sock # Verify Docker is running docker ps # Check container logs docker logs dozzle ``` **Log Display Problems:** * **No Logs Showing**: Check container permissions * **Logs Not Updating**: Verify real-time connection * **Search Not Working**: Check search syntax * **Performance Issues**: Reduce number of containers **Authentication Issues:** * **Login Problems**: Verify credentials * **Authelia Integration**: Check SSO configuration * **Session Timeout**: Adjust session settings * **Permission Denied**: Check user permissions **Web Interface Issues:** * **Page Not Loading**: Check Traefik routing * **SSL Errors**: Verify certificate status * **JavaScript Errors**: Clear browser cache * **Mobile Issues**: Check responsive design **Troubleshooting Steps:** 1. **Check logs**: `docker logs dozzle` 2. **Test connectivity**: Verify Docker socket access 3. **Validate configuration**: Check environment variables 4. **Browser testing**: Test in different browsers 5. **Restart service**: `docker restart dozzle` ===== Integration with Monitoring ===== **Prometheus Integration:** ```yaml # Expose metrics for monitoring environment: - DOZZLE_ENABLE_METRICS=true - DOZZLE_METRICS_PORT=8081 ``` **Grafana Dashboards:** * **Log Volume**: Track log generation rates * **Error Rates**: Monitor error log frequency * **Container Health**: Track container status * **Performance Metrics**: CPU/memory usage trends **Alert Integration:** * **Error Alerts**: Alert on specific error patterns * **Container Alerts**: Notify on container failures * **Performance Alerts**: Alert on resource issues * **Log Volume Alerts**: Alert on unusual log activity ===== Best Practices ===== **Log Management:** * **Regular Monitoring**: Daily log review routine * **Search Optimization**: Use efficient search patterns * **Filter Usage**: Create useful filter presets * **Export Strategy**: Regular log exports for analysis **Container Organization:** * **Naming Convention**: Consistent container naming * **Grouping**: Logical container grouping * **Tagging**: Use labels for better organization * **Documentation**: Document container purposes **Security:** * **Access Control**: Limit log access to authorized users * **Data Protection**: Be aware of sensitive data in logs * **Network Security**: Secure Docker socket access * **Audit Logging**: Track log access and searches **Performance:** * **Resource Limits**: Appropriate CPU/memory limits * **Container Filtering**: Limit visible containers * **Log Tail Size**: Optimize initial log display * **Caching**: Use browser caching for better performance ===== Use Cases ===== **Development & Debugging:** * **Application Logs**: Monitor application behavior * **Error Tracking**: Quickly identify and fix errors * **Performance Monitoring**: Track application performance * **Integration Testing**: Verify service interactions **Production Monitoring:** * **Service Health**: Monitor service availability * **Error Detection**: Catch errors before they escalate * **User Issue Investigation**: Debug user-reported problems * **Security Monitoring**: Watch for suspicious activity **Maintenance & Troubleshooting:** * **Update Monitoring**: Watch for issues during updates * **Configuration Changes**: Monitor impact of changes * **Network Issues**: Debug connectivity problems * **Resource Problems**: Identify resource bottlenecks ===== Keyboard Shortcuts ===== **Navigation:** * **Ctrl/Cmd + K**: Focus search bar * **Arrow Keys**: Navigate container list * **Enter**: Select container * **Esc**: Clear selection **Search:** * **Ctrl/Cmd + F**: Start search * **F3**: Find next occurrence * **Shift + F3**: Find previous occurrence * **Ctrl/Cmd + G**: Go to line **Actions:** * **Ctrl/Cmd + R**: Refresh logs * **Ctrl/Cmd + S**: Save current filter * **Ctrl/Cmd + E**: Export logs * **Ctrl/Cmd + T**: Open terminal Dozzle provides essential log monitoring capabilities with an intuitive interface, making it easy to track and troubleshoot your containerized services in real-time. **Next:** Learn about [[services:infrastructure:glances|Glances]] or explore [[architecture:monitoring|Monitoring Architecture]].