树莓派使用docker快速部署Smokeping
Smokeping 是一款用于网络状况监测的工具,安装好之后它可以持续的记录到各个服务器的网络状况如ping值丢包率等等…并生成易读性高的可视化图表,如果想查看你的一台服务器的网络到手上其他服务器的网络的联通状况,或者你纯粹是想看你这台机器到各个区域,各大网站的联通状况都可以使用。考虑到需要长期运行,如果你需要在你的家中某台设备上安装Smokeping,树莓派是个不错的选择。
Smokeping的常规安装较为复杂,好在已有人做出了docker镜像,并支持x86-64 arm64 armhf架构,所以直接使用docker来快速安装即可 dockerhub链接如下 linuxserver/smokeping
使用docker快速安装
新建/home/scripts/smoke/文件夹用于映射smokeping相关数据。注意如果pull下面这个镜像较为缓慢的话可以考虑更换docker国内源。
更换国内源的方法,编辑/etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
然后重启docker即可。
docker create \
--name=smokeping \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 80:80 \
-v /home/scripts/smoke/config:/config \
-v /home/scripts/smoke/data:/data \
--restart unless-stopped \
linuxserver/smokeping
pull完成之后使用docker container ls
找到对应的container id(其实安装完之后也有提示)使用docker start id
先启动该容器,启动会有一点慢,启动好之后配置文件应该都在config文件夹里面了。
配置Smokeping
这个版本的smokeping和网上大多数教程中的配置文件有一些不一样。如果需要添加监测对象需要在Targets
里面添加。
下面是一份配置示例
*** Targets ***
probe = FPing
menu = Top
title = Ping
remark = Smokeping on raspberry pi.
+ SERVER
menu = Server Ping
title = Ping status
+ Other
menu = 三大网络监控
title = 监控统计
++ dianxin
menu = 电信网络监控
title = 电信网络监控列表
host = /Other/dianxin/dianxin-bj /Other/dianxin/dianxin-hlj /Other/dianxin/dianxin-tj /Other/dianxin/dianxin-sc /Other/dianxin/dianxin-sh /Other/dianxin/dianxin-gz
+++ dianxin-bj
menu = 北京电信
title = 北京电信
alerts = someloss
host = 202.96.199.133
+++ dianxin-hlj
menu = 黑龙江电信
title = 黑龙江电信
alerts = someloss
host = 219.147.198.242
+++ dianxin-tj
menu = 天津电信
title = 天津电信
alerts = someloss
host = 219.150.32.132
+++ dianxin-sc
menu = 四川电信
title = 四川电信
alerts = someloss
host = 61.139.2.69
+++ dianxin-sh
menu = 上海电信
title = 上海电信
alerts = someloss
host = 116.228.111.118
+++ dianxin-gz
menu = 广东电信
title = 广东电信
alerts = someloss
host = 113.111.211.22
++ liantong
menu = 联通网络监控
title = 联通网络监控列表
host = /Other/liantong/liantong-bj /Other/liantong/liantong-hlj /Other/liantong/liantong-tj /Other/liantong/liantong-sc /Other/liantong/liantong-sh /Other/liantong/liantong-gz
+++ liantong-bj
menu = 北京联通
title = 北京联通
alerts = someloss
host = 61.135.169.121
+++ liantong-hlj
menu = 黑龙江联通
title = 黑龙江联通
alerts = someloss
host = 202.97.224.69
+++ liantong-tj
menu = 天津联通
title = 天津联通
alerts = someloss
host = 202.99.96.68
+++ liantong-sc
menu = 四川联通
title = 四川联通
alerts = someloss
host = 119.6.6.6
+++ liantong-sh
menu = 上海联通
title = 上海联通
alerts = someloss
host = 210.22.84.3
+++ liantong-gz
menu = 广东联通
title = 广东联通
alerts = someloss
host = 221.5.88.88
++ yidong
menu = 移动网络监控
title = 移动网络监控列表
host = /Other/yidong/yidong-bj /Other/yidong/yidong-hlj /Other/yidong/yidong-tj /Other/yidong/yidong-sc /Other/yidong/yidong-sh /Other/yidong/yidong-gz
+++ yidong-bj
menu = 北京移动
title = 北京移动
alerts = someloss
host = 221.130.33.52
+++ yidong-hlj
menu = 黑龙江移动
title = 黑龙江移动
alerts = someloss
host = 211.137.241.35
+++ yidong-tj
menu = 天津移动
title = 天津移动
alerts = someloss
host = 211.137.160.5
+++ yidong-sc
menu = 四川移动
title = 四川移动
alerts = someloss
host = 218.201.4.3
+++ yidong-sh
menu = 上海移动
title = 上海移动
alerts = someloss
host = 117.131.19.23
+++ yidong-gz
menu = 广东移动
title = 广东移动
alerts = someloss
host = 211.136.192.6
编辑完成之后使用docker restart 容器id
重启容器,之后访问树莓派ip:80就可以看到页面了,刚开始运行的十几分钟是不会有图表的,过一段时间再看就有了。
解决中文字体显示方块的问题
如果我们使用了中文的命名,我们会发现Smokeping里面生成的图片中的中文不正常,因为该docker中缺少了中文字体,我们使用下列的操作进行安装。
#该镜像的使用的系统镜像是apline,所以软件的安装有一些不同
docker exec -it id /bin/bash
#安装文泉驿字体
echo @edge http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && apk add wqy-zenhei@edge
apk add wqy-zenhei --update-cache --repository http://nl.alpinelinux.org/alpine/edge/testing --allow-untrusted
之后刷新网页,中文已经可以正常显示了。