User Tools

Site Tools


cdn

This is an old revision of the document!


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:

sudo tail -f /var/log/squid/access.log /var/log/squid/cache.log

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:

sudo nano /etc/squid/squid.conf

πŸ“ 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:

tTo run the script run the command:

./SLEdgeCDN.sh

SLEdgeCDN.sh

#!/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

cdn.1757445850.txt.gz Β· Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki