This is an old revision of the document!
Table of Contents
Squid Proxy: Monitoring Logs and Editing Configuration
This guide explains how to monitor Squid proxy logs in real time, edit its configuration file, and includes a sample shell script for setting up a test directory.
📄 Live Log Monitoring
To monitor Squid activity in real time, use the following command:
This will continuously display new entries from: • access.log – records client requests • cache.log – logs cache behavior and errors
⚙️ Editing the Configuration File
To edit Squid’s main configuration file, run: <code>sudo nano /etc/squid/squid.conf<(code>
📁 Log Paths in Configuration
Inside , you can define the paths for Squid’s log files:
• : logs cache-related events • : logs client access (via daemon) • : logs stored objects
🧪 Example: Shell Script for Setup
Here’s a simple Bash script to create a test directory:
#!/bin/bash set -e BASE="$HOME/Desktop/SL_CDN_TEST" echo "=== SL CDN Installer ===" # install squid if not installed if ! command -v squid >/dev/null 2>&1; then if [ -f /etc/debian_version ]; then sudo apt update && sudo apt install -y squid elif [ -f /etc/fedora-release ]; then sudo dnf install -y squid elif [ -f /etc/arch-release ]; then sudo pacman -Sy --noconfirm squid else echo "Your distro isn’t supported. Install squid manually." exit 1 fi fi # backup old squid.conf sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak.$(date +%s) || true # write new config sudo tee /etc/squid/squid.conf >/dev/null <<EOF http_port 127.0.0.1:1234 cache_dir aufs /var/spool/squid/slcdn-cache 100000 16 256 cache_mem 1024 MB maximum_object_size 1024 MB maximum_object_size_in_memory 50 MB minimum_object_size 0 KB cache_log /var/log/squid/cache.log access_log daemon:/var/log/squid/access.log cache_store_log /var/log/squid/store.log acl localnet src 127.0.0.1/32 http_access allow localnet http_access deny all cache allow all refresh_pattern . 43200 100% 43200 range_offset_limit -1 collapsed_forwarding on EOF # make cache and log dirs sudo mkdir -p /var/spool/squid/slcdn-cache /var/log/squid sudo chown -R proxy:proxy /var/spool/squid /var/log/squid sudo squid -z # restart squid sudo systemctl restart squid # reset desktop control folder rm -rf "$BASE" mkdir -p "$BASE" # main control script cat > "$BASE/slcdn.sh" <<'EOS' #!/bin/bash LOG=$HOME/Desktop/SL_CDN_TEST/proxy.log start() { echo "Starting Squid..." | tee -a "$LOG"; sudo systemctl start squid; } stop() { echo "Stopping Squid..." | tee -a "$LOG"; sudo systemctl stop squid; sudo killall -9 squid 2>/dev/null || true; sudo rm -f /run/squid.pid; } restart() { echo "Restarting Squid..." | tee -a "$LOG"; stop; sudo squid -z || true; start; } status() { echo "Squid status:" | tee -a "$LOG"; sudo systemctl status squid --no-pager -l; } case "$1" in start|stop|restart|status) "$1";; *) echo "Usage: $0 {start|stop|restart|status}";; esac EOS chmod +x "$BASE/slcdn.sh" # clear cache script cat > "$BASE/slcdn-clear.sh" <<'EOS' #!/bin/bash echo "Clearing Squid cache..." sudo systemctl stop squid || true sudo killall -9 squid 2>/dev/null || true sudo rm -f /run/squid.pid sudo rm -rf /var/spool/squid/slcdn-cache sudo mkdir -p /var/spool/squid/slcdn-cache sudo chown -R proxy:proxy /var/spool/squid/slcdn-cache sudo squid -z echo "Cache cleared. Restart Squid to refill." EOS chmod +x "$BASE/slcdn-clear.sh" # desktop shortcuts make_launcher () { local name="$1" cmd="$2" term="$3" cat > "$BASE/SLCDN-$name.desktop" <<EOD [Desktop Entry] Name=SL CDN $name Exec=$cmd Icon=utilities-terminal Terminal=$term Type=Application EOD chmod +x "$BASE/SLCDN-$name.desktop" } make_launcher "Start" "$BASE/slcdn.sh start" true make_launcher "Stop" "$BASE/slcdn.sh stop" true make_launcher "Restart" "$BASE/slcdn.sh restart" true make_launcher "Status" "$BASE/slcdn.sh status" true make_launcher "Clear" "$BASE/slcdn-clear.sh" true make_launcher "Cache" "xdg-open /var/spool/squid/slcdn-cache" false make_launcher "Debug" "gnome-terminal -- bash -c \"sudo tail -f /var/log/squid/access.log\"" false echo "Done. Set Firestorm proxy to 127.0.0.1 port 1234"
This script creates a folder on the user’s desktop and can be extended for further setup tasks.
✅ Summary
With these commands and settings, you can efficiently monitor and configure Squid. For production environments, consider: • Log rotation (e.g. using ) • Securing the configuration file • Regular analysis of access logs