在 Ubuntu/Debian 配置 Smokeping 并使用 Caddy 作为服务器

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

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

1
2
3
apt install smokeping
systemctl stop apache2
systemctl disable apache2

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

1
2
3
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 的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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 应该就能正常进行网络监测了.

配置完成之后

参考资料

  • Caddy Community 上的讨论
  • Archlinux Wiki
  • 在网上找到的另一份 Caddy 配置,不过这是给 Arch 的,跟 Debian 系的安装路径什么的还不完全一样.