Documentation Index
Fetch the complete documentation index at: https://mintlify.com/QROkes/webinoly/llms.txt
Use this file to discover all available pages before exploring further.
Webinoly provides comprehensive logging capabilities for monitoring your web server, applications, and services. This guide covers all log types and management options.
View Logs in Real-Time
Access Logs
View Nginx access logs:
# Global access log
sudo log
# Specific site access log
sudo log example.com
Error Logs
# Global error logs
sudo log -error
# Site-specific error logs
sudo log example.com -error
Custom Line Count
Control how many lines to display:
# Show last 50 lines
sudo log example.com -lines=50
# Default is 10 lines (configurable)
Set a custom default line count: sudo webinoly -config=log-lines:25
WordPress Debug Logs
Enable WordPress Debug Mode
# Enable debug logging
sudo log example.com -wp=on
# Disable display of errors (log only)
sudo log example.com -wp=on -display=off
This modifies wp-config.php to enable:
WP_DEBUG - Enable debug mode
WP_DEBUG_LOG - Log to wp-content/debug.log
WP_DEBUG_DISPLAY - Display errors on screen
Disable WordPress Debug Mode
sudo log example.com -wp=off
View WordPress Debug Log
# View debug.log in real-time
sudo log example.com -wp
Log location: /var/www/example.com/htdocs/wp-content/debug.log
WordPress Subfolder Support
sudo log example.com -wp=on -subfolder=/blog
sudo log example.com -wp -subfolder=/blog
Disable debug mode in production environments to prevent sensitive information exposure.
PHP-FPM Logs
Monitor PHP errors and warnings:
sudo log -php
# or
sudo log -fpm
Log location: /var/log/php[version]-fpm.log
MySQL/MariaDB Logs
Error Log
General Query Log
Enable and view all database queries:
# Enable general log
sudo log -mysql=general -enable
# View general log
sudo log -mysql=general
# Disable general log
sudo log -mysql=general -disable
General query log impacts performance. Use only for debugging and disable when done.
Slow Query Log
Identify slow database queries:
# Enable slow query log (default threshold: 10s)
sudo log -mysql=slow -enable
# Enable with custom threshold (5 seconds)
sudo log -mysql=slow -enable -long-query-time=5
# View slow queries
sudo log -mysql=slow
# Disable slow query log
sudo log -mysql=slow -disable
Binary Log
For database replication and point-in-time recovery:
# Enable binary logging
sudo log -mysql=binary -enable
# Set log expiration (30 days)
sudo log -mysql=binary -enable -expire-logs=2592000
# View binary log
sudo log -mysql=binary
# Disable binary logging
sudo log -mysql=binary -disable
SSL/TLS Logs (Let’s Encrypt)
View certificate generation and renewal logs:
Log location: /var/log/letsencrypt/letsencrypt.log
Email/SMTP Logs
Monitor Postfix mail server logs:
sudo log -mail
# or
sudo log -email
Views both:
/var/log/mail.log - General mail log
/var/log/mail.err - Mail errors
SSH Authentication Logs
Monitor SSH access attempts:
sudo log -ssh
# or
sudo log -auth
Log location: /var/log/auth.log
System Logs
View general system logs:
Access Log Management
Disable Access Logs
# Disable globally
sudo log -access-log=off
# Disable for specific site
sudo log example.com -access-log=off
Enable Access Logs
# Enable globally
sudo log -access-log=on
# Enable for specific site
sudo log example.com -access-log=on
Buffer and Flush Settings
Optimize logging performance:
# Enable with buffer (32KB) and flush (5 minutes)
sudo log -access-log=on -buffer=[32,5]
# For high-traffic sites
sudo log example.com -access-log=on -buffer=[64,10]
Format: -buffer=[size_in_KB,flush_time_in_minutes]
Buffering reduces disk I/O but may delay log visibility. Adjust based on traffic and monitoring needs.
Purge Old Logs
Remove compressed log archives:
# Purge all GZ log files
sudo log -purge=all
# Purge specific service logs
sudo log -purge=nginx
sudo log -purge=mysql
sudo log -purge=letsencrypt
sudo log -purge=redis
# Purge systemd journal (keep last 7 days)
sudo log -purge=journal
# Force purge without confirmation
sudo log -purge=all -delete-all=force
Purge operations permanently delete compressed logs. Ensure backups exist before purging.
Log File Locations
Nginx:
- Global access:
/var/log/nginx/access.log
- Global error:
/var/log/nginx/error.log
- Site access:
/var/log/nginx/[domain].access.log
- Site error:
/var/log/nginx/[domain].error.log
PHP-FPM:
/var/log/php/[version]-fpm.log
MySQL/MariaDB:
- Error:
/var/log/mysql/error.log
- General:
/var/log/mysql/mysql.log
- Slow query:
/var/log/mysql/mariadb-slow.log
- Binary:
/var/log/mysql/mariadb-bin*
WordPress:
- Debug:
/var/www/[domain]/htdocs/wp-content/debug.log
SSL/Let’s Encrypt:
/var/log/letsencrypt/letsencrypt.log
Mail/SMTP:
/var/log/mail.log
/var/log/mail.err
System:
- Auth:
/var/log/auth.log
- Syslog:
/var/log/syslog
Log Analysis
Common Patterns
# Count 404 errors
grep " 404 " /var/log/nginx/example.com.access.log | wc -l
# Top 10 IP addresses
awk '{print $1}' /var/log/nginx/example.com.access.log | sort | uniq -c | sort -nr | head -10
# Check for WordPress login attempts
grep "wp-login.php" /var/log/nginx/example.com.access.log
# Find slow PHP requests
grep "max-execution-time" /var/log/php/8.3-fpm.log
# Check cache hit ratio
grep -o "X-Cache: [A-Z]*" /var/log/nginx/example.com.access.log | sort | uniq -c
Automated Monitoring
Log Rotation
Webinoly uses Ubuntu’s logrotate for automatic log rotation:
# View logrotate configuration
cat /etc/logrotate.d/nginx
cat /etc/logrotate.d/mysql-server
Real-Time Alerts
Monitor logs for specific patterns:
# Alert on 500 errors
sudo log example.com -error | grep " 500 " --line-buffered | while read line; do
echo "ERROR: $line" | mail -s "500 Error Alert" admin@example.com
done
Troubleshooting
Log Not Found
If logs are empty or missing:
-
Check if logging is enabled:
grep "access_log" /etc/nginx/sites-available/example.com
-
Verify permissions:
-
Test Nginx configuration:
High Disk Usage
If logs consume too much space:
# Check log sizes
sudo du -sh /var/log/nginx/*
# Purge old compressed logs
sudo log -purge=all
# Adjust logrotate settings
sudo nano /etc/logrotate.d/nginx
Best Practices
- Regular Monitoring: Check logs daily for errors and anomalies
- Log Retention: Keep 30-90 days of logs, purge older archives
- Performance Impact: Disable access logs for high-traffic sites or use buffering
- Security: Monitor auth logs for unauthorized access attempts
- Debug Sparingly: Enable WordPress and MySQL debug logs only when troubleshooting
- Centralization: Consider shipping logs to a central logging service for analysis