You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Linux Alpine系统中配置Varnish日志?

Varnish Logging Setup for Alpine Linux

Hey there! I totally get it — most Varnish logging guides skip over Alpine's specific OpenRC init system, so let's fix that for you.

First, let's clear up your question about Alpine's default logging: Alpine Linux uses busybox syslogd as its default system logger, and it's usually running out of the box. You can confirm this by running:

ps aux | grep syslogd

If you don't see it listed, start it with:

/etc/init.d/syslog start

And enable it to launch on boot:

rc-update add syslog default

Now, since Varnish doesn't enable logging by default, we'll set up varnishncsa (the tool for capturing Varnish access logs) as a persistent service on Alpine:

  1. Create an OpenRC init script for varnishncsa
    Create a new file at /etc/init.d/varnishncsa with this content:

    #!/sbin/openrc-run
    
    description="Varnish HTTP Access Log Daemon"
    command="/usr/bin/varnishncsa"
    # This writes logs to a dedicated file; adjust path if needed
    command_args="-a -w /var/log/varnish/access.log"
    pidfile="/run/varnishncsa.pid"
    
    depend() {
            # Make sure Varnish is running first
            need varnishd
            after net
    }
    
  2. Make the script executable

    chmod +x /etc/init.d/varnishncsa
    
  3. Set up the log directory
    Varnish's log folder might not exist by default, so create it:

    mkdir -p /var/log/varnish
    
  4. Start and enable the service
    Launch the logging service right away:

    /etc/init.d/varnishncsa start
    

    And enable it to start automatically on system boot:

    rc-update add varnishncsa default
    

Optional: Log to Syslog Instead of a File

If you prefer sending Varnish logs to syslog instead of a dedicated file, modify the command_args line in the init script to:

command_args="-a -s syslog:local1"

Then edit /etc/syslog.conf to route these logs to a file by adding:

local1.* /var/log/varnish/access.log

Restart syslog to apply the change:

/etc/init.d/syslog restart

Verify It's Working

Test that logs are being captured by tailing the log file and sending a request to your Varnish server:

tail -f /var/log/varnish/access.log

You should see a log entry pop up once the request goes through.

内容的提问来源于stack exchange,提问作者Chris Rogers

火山引擎 最新活动