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:

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:

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.1757445677.txt.gz · Last modified: by miko

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki