在 debian/ubuntu 上安装 Smokeping 时, apt 只会给一个用于 apache2 的配置. 并不能直接用于其他的 Web 服务器, 但迫于VPS上的用的 Web 服务器是 Caddy 因此就参考网上的资料整理出了给 Caddy 用的配置方法.

首先需要安装 Smokeping ,并且 disable 掉安装时自带的 Apache2.

apt install smokeping
systemctl stop apache2
systemctl disable apache2

还需要装一个fcgiwarp来处理到smokeping的请求,并且装完之后将它启动:

apt install fcgiwrap
systemctl enable fcgiwrap.socket
systemctl start fcgiwrap.socket

这时候应该能在 /var/run 里面看到 fcgiwrap.socket 这个文件了.

Caddy不需要其他的插件就可以使用.

之后查看一下smokeping的网页和cgi程序装在了哪里. 在这里它位于 /usr/share/smokeping 里面;图片缓存,js,css在 /usr/share/smokeping/www 里面.

下面是 Caddy 的配置:

smokeping.example.com {

        root /usr/share/smokeping/www

        fastcgi / unix:/var/run/fcgiwrap.socket {
                env SCRIPT_FILENAME /usr/share/smokeping/smokeping.cgi
        }
}

smokeping.example.com/js {
        root /usr/share/smokeping/www/js
}

smokeping.example.com/css {
        root /usr/share/smokeping/www/css
}

smokeping.example.com/cache {
        root /var/cache/smokeping
}

smokeping.example.com/smokeping/images {
	      root /usr/share/smokeping/www/images
}

需要注意的是, fastcgi 下面对应的文件是 smokeping.cgi 而不是 www 里面的 smokeping.fcgi.dist , 以及图片也需要单独列一个路径,不然到时候可能无法显示监测的图片.

配置完成 Smokeping 和 Caddy 之后, 可以先用 smokeping --debug 来测试一下smokeping能不能正常运行,如果能正常运行,此时访问 smokeping.example.com 应该就能正常进行网络监测了.

配置完成之后
配置完成之后

参考资料