linux笔记—docker运行smokeping,搭建三网监控.
使用 docker 运行 smokeping 服务,搭建个人的网络监控.
资料来源:
https://hub.docker.com/r/linuxserver/smokeping
https://tangxiaosu.com/deploy-smokeping-with-docker.html
https://cloud.tencent.com/developer/article/1025922更新
1
19.01.13 初始化
导语
常常涉及到服务器的网络质量等问题,通常是移动连不上,电信/联通能连上,某个地区甚至某个县图片不加载,DNS/HTTP劫持,UA带就带ie的劫持,错综复杂的网络环境,最后锅全甩在机房.非常需要三网的自动化监控报警.
smockeping 自然是驾轻就熟…就是安装太繁琐,直到遇到了 docker .
本文的目标就是搭建一个简单单点的三网监控.
smockeping
- Smokeping是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,带宽占用要靠cacti或zabbix了.
- DockerHub 上有不少打包好的镜像,非常方便部署.当然肯定有缺点,基本只能单点用了,折腾 master / slave 需要一些工作量,还未涉及到.
安装
这里用到的是下载最多的 linuxserver/smokeping这个镜像.
如果上面地址打不开,可以到对应 Github.
官方的说明比较详细.
安装实际上就是拉取镜像
1
docker pull linuxserver/smokeping
试运行,这个镜像中有一组默认的配置.先试运行.
命令
1
2
3
4
5
6docker run \
--name=smokepings \
--rm \
-e TZ=Asia/Shanghai \
-p 80:80 \
linuxserver/smokeping容器运行几分钟后,查看效果,
基础配置都是国外的主流网站,没有监控结果.
配置
这个镜像中的配置文件都在 /config ,数据在 /data .这里拷贝出来,挂载本地文件夹形式,实现数据的持久化.
命令
1
2
3
4mkdir -p /data/smokeping
docker cp smokeping:/data/ /data/smokeping/
docker cp smokeping:/config/ /data/smokeping/
docker stop smokeping # 停止容器进入本地 /smokeping/config/ 开始修改配置文件.
我们主要需要修改的是 Database , Presentation , Targets .
Database 主要是监控的频率和探针数量.
找到
1
2step = 300
pings = 20修改为,默认一次的监控周期改为1分钟,探针数量20不变.
1
2step = 60
pings = 20
Presentation 主要是 smokeping 的图表和第一栏的设置.需要改动内容不多, 不过为了看着方便,这里汉化了一部分内容. # 号后为博主加的注释.
文件
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54template = /etc/smokeping/basepage.html
charset = utf-8 #支持utf-8所以可以汉化一部分
+ charts # 以下为第一栏内容,纯图方便,只个人看着懂意思.
menu = 排行榜
title = 排行榜
++ stddev
sorter = StdDev(entries=>4)
title = 综合指数排行
menu = 综合指数
format = 综合指数 %f
++ max
sorter = Max(entries=>5)
title = 最大延迟
menu = 最大延迟
format = 最大延迟时间 %f 秒
++ loss
sorter = Loss(entries=>5)
title = 丢包率
menu = 丢包率
format = 丢包 %f
++ median
sorter = Median(entries=>5)
title = 中间数据包延迟
menu = 中间数据包延迟
format = 中间数据包延迟 RTT %f 秒
+ overview
width = 600
height = 50
range = 10h
+ detail
width = 600
height = 200
unison_tolerance = 2
# 图表横坐标,这里改为 1小时,1天,10天,360天,更符合习惯.
"Last 1 Hours" 1h
"Last 24 Hours" 24h
"Last 10 Days" 10d
"Last 360 Days" 360d
#+ hierarchies
#++ owner
#title = Host Owner
#++ location
#title = Location
Targets 内则是监控的主体,主要工作量在这里了,这里是监控本地到各个运营商当地 DNS 的通路,当地 DNS 一般很少变动,因此具有参考意义.但是 N多的DNS 开始过滤外地的请求,连外地的 icmp 都直接不相应,好在最后收集了全了现在还能用的.
附录: 各地DNS地址,多换几个试试.
https://blog.csdn.net/huangbaokang/article/details/80419620
Targets 基础的格式还是比较好懂的.说明在注释了.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78*** Targets ***
probe = FPing # 无需修改
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of WORKS Company. \
Here you will learn all about the latency of our network.
+ Other # 第一层级
menu = 国内线路
title = 国内线路
++ dianxin #电信
menu = 电信网络监控
title = China Telecom
host = /Other/dianxin/dianxin-bj /Other/dianxin/dianxin-sh / Other/dianxin/dianxin-gz
+++ dianxin-bj
menu = Telecom BeiJing
title = Telecom BeiJing
alerts = someloss
host = 202.96.199.133
+++ dianxin-sh
menu = Telecom ShangHai
title = Telecom ShangHai
alerts = someloss
host = 202.96.209.133
+++ dianxin-gz
menu = Telecom GuangZhou
title = Telecom GuangZhou
alerts = someloss
host = 218.20.227.1
++ liantong #联通
menu = 联通网络监控
title = China Unicom
host = /Other/liantong/liantong-bj /Other/liantong/liantong-sh /Other/liantong/liantong-gz
+++ liantong-bj
menu = Unicom BeiJing
title = Unicom BeiJing
alerts = someloss
host = 61.135.169.121
+++ liantong-sh
menu = Unicom ShangHai
title = Unicom ShangHai
alerts = someloss
host = 203.95.1.1
+++ liantong-gz
menu = Unicom GuangZhou
title = Unicom GuangZhou
alerts = someloss
host = 210.21.4.130
++ yidong # 移动
menu = 移动网络监控
title = China Mobile
host = /Other/yidong/yidong-bj /Other/yidong/yidong-sh /Other/yidong/ yidong-gz
+++ yidong-bj
menu = Mobile BeiJing
title = Mobile BeiJing
alerts = someloss
host = 221.130.33.52
+++ yidong-sh
menu = Mobile ShangHai
title = Mobile ShangHai
alerts = someloss
host = 58.34.8.36
+++ yidong-gz
menu = Mobile GuangDong
title = Mobile GuangDong
alerts = someloss
host = 211.136.192.6
保存配置文件.
运行
启动容器,大幅度更改了配置文件后,最好清除 /data 下数据.
挂载 /config /data 到容器,启动.1
2
3
4
5
6
7
8docker run \
--name smokeping \
-d \
-p 80:80 \
-e TZ=Asia/Shanghai \
-v /data/smokeping/data:/data \
-v /data/smokeping/config:/config \
linuxserver/smokeping效果
docker-compose
docker-compose 的使用方法,不再明细,详情见之前的博文.这里附上配置文件.
1
2
3
4
5
6
7
8
9
10
11
12
13
14version: "2"
services:
smokeping:
image: linuxserver/smokeping
container_name: smokeping
environment:
- TZ=Asia/Shanghai
ports:
- 80:80
volumes:
- /data/smokeping/config:/config
- /data/smokeping/data:/data
mem_limit: 4096m
restart: always