搭建综合性网络质量检测工具-Smartping的体验环境

一、环境的相关信息

1. 版本信息

Smartping v0.8.0

2. 服务器信息

192.168.112.130
192.168.112.131
192.168.112.132

二、实验过程记录

1. 准备各个节点的配置文件

192.168.112.130 的配置文件内容如下:

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
{
"Ver": "0.8.0",
"Port": 8899,
"Name": "server03",
"Addr": "192.168.112.130",
"Mode": {
"Endpoint": "",
"LastSuccTime": "",
"Status": "true",
"Type": "local"
},
"Base": {
"Archive": 10,
"Refresh": 1,
"Timeout": 5
},
"Topology": {
"Tline": "1",
"Tsound": "/alert.mp3.4",
"Tsymbolsize": "70"
},
"Alert": {
"EmailHost": "",
"RevcEmailList": "",
"SendEmailAccount": "",
"SendEmailPassword": ""
},
"Network": {
"192.168.112.130": {
"Name": "server03",
"Addr": "192.168.112.130",
"Smartping": true,
"Ping": [
"192.168.112.131",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.131": {
"Name": "server04",
"Addr": "192.168.112.131",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.132": {
"Name": "server05",
"Addr": "192.168.112.132",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.131"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
}
},
"Chinamap": {
"上海": {
"cmcc": [
"117.184.42.114"
],
"ctcc": [
"180.163.15.160"
],
"cucc": [
"223.167.104.117"
]
},
"北京": {
"cmcc": [
"111.13.217.125"
],
"ctcc": [
"120.92.180.135"
],
"cucc": [
"111.207.189.5"
]
},
"浙江": {
"cmcc": [
"183.246.69.139"
],
"ctcc": [
"115.236.169.86"
],
"cucc": [
"60.12.214.156"
]
}
},
"Toollimit": 0,
"Authiplist": "",
"Password": "smartping"
}

192.168.112.131 的配置文件内容如下:

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
{
"Ver": "0.8.0",
"Port": 8899,
"Name": "server04",
"Addr": "192.168.112.131",
"Mode": {
"Endpoint": "",
"LastSuccTime": "",
"Status": "true",
"Type": "local"
},
"Base": {
"Archive": 10,
"Refresh": 1,
"Timeout": 5
},
"Topology": {
"Tline": "1",
"Tsound": "/alert.mp3.4",
"Tsymbolsize": "70"
},
"Alert": {
"EmailHost": "",
"RevcEmailList": "",
"SendEmailAccount": "",
"SendEmailPassword": ""
},
"Network": {
"192.168.112.130": {
"Name": "server03",
"Addr": "192.168.112.130",
"Smartping": true,
"Ping": [
"192.168.112.131",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.131": {
"Name": "server04",
"Addr": "192.168.112.131",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.132": {
"Name": "server05",
"Addr": "192.168.112.132",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.131"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
}
},
"Chinamap": {
"上海": {
"cmcc": [
"117.184.42.114"
],
"ctcc": [
"180.163.15.160"
],
"cucc": [
"223.167.104.117"
]
},
"北京": {
"cmcc": [
"111.13.217.125"
],
"ctcc": [
"120.92.180.135"
],
"cucc": [
"111.207.189.5"
]
},
"浙江": {
"cmcc": [
"183.246.69.139"
],
"ctcc": [
"115.236.169.86"
],
"cucc": [
"60.12.214.156"
]
}
},
"Toollimit": 0,
"Authiplist": "",
"Password": "smartping"
}

192.168.112.132 的配置文件内容如下:

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
{
"Ver": "0.8.0",
"Port": 8899,
"Name": "server05",
"Addr": "192.168.112.132",
"Mode": {
"Endpoint": "",
"LastSuccTime": "",
"Status": "true",
"Type": "local"
},
"Base": {
"Archive": 10,
"Refresh": 1,
"Timeout": 5
},
"Topology": {
"Tline": "1",
"Tsound": "/alert.mp3.4",
"Tsymbolsize": "70"
},
"Alert": {
"EmailHost": "",
"RevcEmailList": "",
"SendEmailAccount": "",
"SendEmailPassword": ""
},
"Network": {
"192.168.112.130": {
"Name": "server03",
"Addr": "192.168.112.130",
"Smartping": true,
"Ping": [
"192.168.112.131",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.131": {
"Name": "server04",
"Addr": "192.168.112.131",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.132"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.132",
"Name": "server05",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
},
"192.168.112.132": {
"Name": "server05",
"Addr": "192.168.112.132",
"Smartping": true,
"Ping": [
"192.168.112.130",
"192.168.112.131"
],
"Topology": [
{
"Addr": "192.168.112.130",
"Name": "server03",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "10",
"Thdoccnum": "3"
},
{
"Addr": "192.168.112.131",
"Name": "server04",
"Thdavgdelay": "200",
"Thdchecksec": "900",
"Thdloss": "30",
"Thdoccnum": "3"
}
]
}
},
"Chinamap": {
"上海": {
"cmcc": [
"117.184.42.114"
],
"ctcc": [
"180.163.15.160"
],
"cucc": [
"223.167.104.117"
]
},
"北京": {
"cmcc": [
"111.13.217.125"
],
"ctcc": [
"120.92.180.135"
],
"cucc": [
"111.207.189.5"
]
},
"浙江": {
"cmcc": [
"183.246.69.139"
],
"ctcc": [
"115.236.169.86"
],
"cucc": [
"60.12.214.156"
]
}
},
"Toollimit": 0,
"Authiplist": "",
"Password": "smartping"
}

2. 克隆Smartping的源码编译成二进制文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
git clone https://github.com/smartping/smartping.git
cd smartping/
export GOPROXY=https://goproxy.io
go mod init github.com/smartping/smartping/src
GOOS=linux GOARCH=amd64 go build -v -a -o smartping github.com/smartping/smartping/src
go mod vendor

ls -la
total 14564
drwxr-xr-x. 7 root root 135 Sep 17 12:22 .
drwxr-xr-x. 9 root root 189 Sep 17 12:02 ..
drwxr-xr-x. 2 root root 89 Sep 17 11:59 funcs
drwxr-xr-x. 2 root root 40 Sep 17 11:59 g
-rw-r--r--. 1 root root 462 Sep 17 12:19 go.mod
-rw-r--r--. 1 root root 1870 Sep 17 12:19 go.sum
drwxr-xr-x. 2 root root 51 Sep 17 12:02 http
drwxr-xr-x. 2 root root 35 Sep 17 11:59 nettools
-rwxr-xr-x. 1 root root 14897840 Sep 17 12:21 smartping
-rw-r--r--. 1 root root 765 Sep 17 11:59 smartping.go
drwxr-xr-x. 4 root root 61 Sep 17 12:22 vendor

3. 运行Smartping的二进制文件,这里以tmux为例,实际使用请选用Systemd或者Supervisord:

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
mkdir -p /var/lib/smartping/bin
mkdir -p /var/lib/smartping/conf

cp martping /var/lib/smartping/bin/
cat <<EOF > /var/lib/smartping/conf/config-base.json
...
分别替换为上面三个配置文件的内容
...
EOF

cat <<EOF > /var/lib/smartping/conf/seelog.xml
<seelog type="asynctimer" asyncinterval="5000000" minlevel="info" maxlevel="error">
<outputs formatid="main">
<console/>

<filter levels="info">
<rollingfile type="size" filename="./logs/info.log" maxsize="10240000" maxrolls="5"/>
</filter>

<filter levels="debug">
<rollingfile type="size" filename="./logs/debug.log" maxsize="10240000" maxrolls="5"/>
</filter>

<filter levels="error">
<rollingfile type="size" filename="./logs/error.log" maxsize="10240000" maxrolls="5"/>
</filter>

</outputs>
<formats>
<format id="main" format="%Date/%Time [%Level] %File %Msg%n"/>
</formats>
</seelog>
EOF

tmux new -s smartping
/var/lib/smartping/bin/smartping

三、参考资料

https://github.com/smartping/smartping.git