网络知识分享

SmokePing | 探针 VPS监控 放弃Nezha哪吒 教程

#Youtube链接 https://youtu...

标签:

#Youtube链接

https://youtu.be/kB6EZOFcUF4

 

#SmokePing主从模式(不像哪吒等主控端和被控端的安装不一样的程序,SmokePing主控和被控安装的程序是一样的,只是配置不一样;主从模式将被控的数据拉取到主控,这样就可以从主控观察被控)
环境:Debian12 root 端口全开
二进制安装非常复杂,一开始我也是抗拒docker安装的,等我上手之后就后悔了;docker已经将难度降低50%以上,但是仍旧很复杂
如果从易用性出发,请选择哪吒,mynodequery等(我都有视频),但是从装逼性来讲SmokePing排第一,然后是serverstatus(个人排名)

#项目官方网址
https://oss.oetiker.ch/smokeping/

#docker镜像由linuxserver构建
https://github.com/linuxserver/docker-smokeping

#安装必要组件
apt update && apt upgrade -y && apt install curl sudo -y

#安装并设置docker自动启动
curl -sSL https://get.docker.com/ | sh

#添加自动启动
systemctl enable docker && systemctl start docker

#创建工作目录和文件
mkdir -p /home/smokeping/{config,data}

#创建主从模式必要文件(如果你玩单机,可以省略,创建了也没有影响)

touch /home/smokeping/smokeping_secrets && chown 1000:root /home/smokeping/smokeping_secrets && chmod 600 /home/smokeping/smokeping_secrets

权限是一定要改的,不然客户端会拒绝启动

#一键创建docker-compose.yml 文件(其中hostname、PUID、PGID、TZ、ports的8080可以自定义,hostname就是主机名最好改一改,比如叫DMIT、BWH等)

cat > docker-compose.yml << EOF
services:
smokeping:
image: lscr.io/linuxserver/smokeping:latest
container_name: smokeping
hostname: SmokePing
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /home/smokeping/config:/config
- /home/smokeping/data:/data
- /home/smokeping/smokeping_secrets:/etc/smokeping/smokeping_secrets
ports:
- 8080:80
EOF

把smokeping_secrets映射到config文件夹会报错,请按照示例映射

#拉取docker镜像
docker compose pull

#启动容器
docker compose up -d

#配置targets(就是VPS去ping的运营商IP)
/home/config/smokeping/Targets

+ ++ +++ 后面不能跟有空格的词组(比如telecommunication operators要写成telecommunicationoperators),也不能跟中文
menu或者title之后可以跟中文

官方例子在下面连接里面(太复杂啦)
https://oss.oetiker.ch/smokeping/doc/smokeping_examples.en.html

#重启生效,每次修改都要重启
docker compose restart

#下面开始添加被控,先要改一些主控的配置
/home/smokeping/config/Slaves
#+slave2
#display_name=another
#color=00ff00
三个#都要删除,不然报错,还可以添加location字段(比如location=US)

#添加通信密码
/home/smokeping/smokeping_secrets

#主控的targets里面添加被控
slaves = slave1 slave2 (如果有更多的用空个隔开,例子slaves = DMIT BWH Claw Halo)
添加在第一个+前面,这样被控可以用全部的探针;否则被控只能用相应层级的探针

#接下去的配置要去被控端操作
由于是docker安装,主控的配置修改不会立刻反映为被控,需要重启被控的docker,可以通过设定定时任务的方法,周期性重启被控的docker来实现更新
被控操作原文:https://github.com/linuxserver/docker-smokeping/issues/115

#安装必要组件
apt update && apt upgrade -y && apt install curl sudo -y

#安装并设置docker自动启动
curl -sSL https://get.docker.com/ | sh

#添加自动启动
systemctl enable docker && systemctl start docker

#创建工作目录和文件
mkdir -p /home/smokeping/{config,data}

#创建文件/root/run(不可以用cat创建,因为有环境参数)

#!/usr/bin/with-contenv bash
if [ -a /config/MasterUrl ] && [ -a /config/SlaveSecret ]; then
chmod 600 /config/SlaveSecret
chmod 600 /config/MasterUrl
if [ ! -d /var/smokeping ]; then
mkdir /var/smokeping
fi
chown abc:abc /var/smokeping
chmod 755 /var/smokeping
masterurl=$(cat /config/MasterUrl)
exec s6-setuidgid abc /usr/sbin/smokeping --master-url=$masterurl --cache-dir=/var/smokeping --shared-secret=/config/SlaveSecret
else
exec s6-setuidgid abc /usr/sbin/smokeping --config="/etc/smokeping/config" --nodaemon
这里很多坑都踩过了,请谨慎修改

#!/usr/bin/with-contenv bash
if [ -a /config/MasterUrl ] && [ -a /config/SlaveSecret ]; then
chmod 600 /config/SlaveSecret
chmod 600 /config/MasterUrl
if [ ! -d /var/smokeping ]; then
mkdir /var/smokeping
fi
chown abc:abc /var/smokeping
chmod 755 /var/smokeping
masterurl=$(cat /config/MasterUrl)
exec s6-setuidgid abc /usr/sbin/smokeping --config="/etc/smokeping/config" --master-url=$masterurl --cache-dir=/var/smokeping --shared-secret=/config/SlaveSecret --nodaemon
fi

#创建Dockerfile

cat > Dockerfile << EOF
FROM lscr.io/linuxserver/smokeping:latest
COPY run /etc/services.d/smokeping/run
RUN chmod +x /etc/services.d/smokeping/run
EOF

#创建docker-compose.yml 文件(其中hostname、PUID、PGID、TZ、ports的8080可以自定义,hostname必须和主控端Slaves和smokeping_secrets里面设定的VPS名称一致)
cat > docker-compose.yml << EOF
services:
smokeping-slave:
build:
context: .
dockerfile: Dockerfile
container_name: smokeping-slave
hostname: home
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /home/smokeping/config:/config
- /home/smokeping/data:/data
ports:
- 8080:80
EOF

#重新构造镜像
docker compose build

#启动容器
docker compose up -d

#创建SlaveSecret
cat > /home/smokeping/config/SlaveSecret << EOF
这里直接输入主控里面给这个vps分配的密码
EOF

cat > /home/smokeping/config/smokeping_secrets << EOF
这里直接输入主控里面给这个vps分配的密码
EOF

#创建MasterUrl
cat > /home/smokeping/config/MasterUrl << EOF
http://主控的ip加端口号/smokeping/smokeping.cgi
EOF

#重启生效,每次修改都要重启
docker compose restart

#关闭容器
docker compose down

#查看日志
docker logs -f smokeping-slave

#进入容器
docker exec -it smokeping-slave /bin/bash

#退出容器
exit

ls -l /config/smokeping_secrets
ls -l /etc/smokeping/smokeping_secrets

 

#反代端口
#安装 caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list && sudo apt update && sudo apt install caddy

#默认配置文件目录
/etc/caddy/caddyfile

//配置文件
example.com {
reverse_proxy 127.0.0.1:8080
}

#测试配置文件
caddy validate –config /etc/caddy/Caddyfile

#启动服务端
caddy run –config /etc/caddy/Caddyfile
//得到“certificate obtained successfully ” “releasing lock”

#关闭caddy
ctrl+c

#后台运行caddy:
caddy start –config /etc/caddy/Caddyfile

caddy常用指令:
前台运行caddy:
caddy run

后台运行caddy:
caddy start

停止caddy:
systemctl stop caddy

重载配置:
caddy reload

相关导航

暂无评论

暂无评论...