前沿:前端
集羣控制平臺已經要慢慢的灰度上線了,出問題的時候,才找點bug,時間有點空閒。正好看了下zabbix的數據庫,產生了本身想作一套能更好的展示zabbix的頁面。mysql
zabbix的強點你們都感受或者用出感受了,確實非常方便。曾經的我,跟着公司的團隊開發過一套不小的監控系統,看過我博客的人應該留意到那個用redis mongodb,後期改用golang,0mq支撐業務的監控平臺。golang
其實對比起來,我我的仍是喜歡zabbix,雖然和團隊一塊兒很爽,爽也只是設計一套監控平臺框框,裏面的東西填寫起來那可真是吐血。。。 隨着看zabbix的文檔深刻,愈加的以爲,zabbix作的真不錯。 可是你們有沒有以爲,對於不熟系zabbix的人,讓他一下在看zabbix的數據,絕對是有點發蒙,他數據展示的有點不清不白的,固然有過配置和運維經驗的人,一眼就能看出哪是哪裏。
redis
旁邊cdn部門在討論東西的時候,我發現他們的那個報表不直觀,並且不高端。。。sql
對於zabbix,我用的最多的反而是api,在上個公司作了一個簡練的針對zabbix的api接口,能夠迅速的增刪改查主機,雖然時不時的抽風,可是那絕對我本身對zabbix理解的問題。mongodb
我期待的樣子數據庫
1. 權限用公司的權限管理系統,集中單點登陸。api
2. 登陸後輸入ip地址,能夠看到這個ip地址所屬的狀況,好比內存,cpu,流量等等。服務器
3. 根據業務線作好分組,這樣dba組的人,一登陸就能夠看到dba所屬的服務器情況。app
4. 數據庫採用zabbix的從庫,這樣就能很好的免除了壓力。
固然寫完前三個大需求就成一個項目了,目標定的是很遠,可是精力是有限。
咱們能夠先來個簡單了,從數據庫裏面取出item監控項的時間和值,而後用前端的圖表進行畫圖。
咱們首先要從mysql裏面取值,Zabbix中存儲歷史數據的表是以history開頭的,目前zabbix 2.06 中主要有一下幾張表。
>>>>>history Numeric(float)
>>>>>history_log -log
>>>>>history_str -Character
>>>>>history_text -text
>>>>>history_uint -Numeric(unsigned)
經過數據庫能夠看到這個值的 item 時間 value ns
咱們看下zabbix的針對eth0監控的圖表
流量的統計,這裏只是簡單的把數據塞到了jinja2的模板裏面,而後用highcharts畫圖的 。
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
|
var
d
=
new
Date
(
"{{ showdotime }}"
)
;
$
(
'#container'
)
.
highcharts
(
{
chart
:
{
zoomType
:
'x'
,
spacingRight
:
20
}
,
title
:
{
text
:
'eth0 流量'
}
,
subtitle
:
{
text
:
document
.
ontouchstart
===
undefined
?
'滑動顯示更多'
:
''
}
,
xAxis
:
{
type
:
'datetime'
,
maxZoom
:
10
*
1000
,
/
/
fourteen
days
title
:
{
text
:
null
}
}
,
yAxis
:
{
title
:
{
text
:
'進來的流量'
}
}
,
tooltip
:
{
shared
:
true
}
,
legend
:
{
enabled
:
false
}
,
plotOptions
:
{
area
:
{
fillColor
:
{
linearGradient
:
{
x1
:
0
,
y1
:
0
,
x2
:
0
,
y2
:
1
}
,
stops
:
[
[
0
,
Highcharts
.
getOptions
(
)
.
colors
[
0
]
]
,
[
1
,
Highcharts
.
Color
(
Highcharts
.
getOptions
(
)
.
colors
[
0
]
)
.
setOpacity
(
0
)
.
get
(
'rgba'
)
]
]
}
,
lineWidth
:
1
,
marker
:
{
enabled
:
false
}
,
shadow
:
false
,
states
:
{
hover
:
{
lineWidth
:
1
}
}
,
threshold
:
null
}
}
,
series
:
[
{
type
:
'area'
,
name
:
'Byte'
,
pointInterval
:
10
*
1000
,
pointStart
:
d
.
getTime
(
)
,
data
:
[
1153
,
946
,
679
,
112
,
112
,
250
,
112
,
7631
,
2818
,
244
,
7781
,
2683
,
442197
,
806342
,
5191431
,
728543
,
418013
,
502684
,
127900
,
493
,
1151125
,
5573336
,
3348358
,
5213414
,
4482643
,
3575359
,
2698665
,
844558
,
4204725
,
4311682
,
4776592
,
3762035
,
5018876
,
4599467
,
1529725
,
4576385
,
3654153
,
3515204
,
2361854
,
815
,
4903
,
3947
,
2184
,
128
,
145
,
6102
,
13607
,
31939
,
3052
,
47821
,
97577
,
10760
,
50366
,
1046
,
254
,
1753
,
2661
,
581269
,
4299933
,
4113029
,
4267878
,
781296
,
885
,
3232
,
1430
,
2472
,
61669
,
103854
,
170090
,
112507
,
111455
,
162
,
322
,
112
,
2927
,
437
,
3116
,
13580
,
1125
,
3062
,
458
,
738
,
2961
,
4406853
,
3084219
,
945726
,
4712167
,
3476555
,
4042300
,
4646039
,
2964012
,
1728972
,
112
,
112
,
256
,
112
,
112
,
262
,
112
,
112
,
256
,
112
,
112
,
284
,
118
,
139
,
256
,
194
,
112
,
256
,
139
,
118
,
256
,
139
,
112
,
254
,
112
,
118
,
262
,
112
,
112
,
256
,
234
,
139
,
256
,
250
,
256
,
1711626
,
4722630
,
3606945
,
5026923
,
211202
,
649
,
408
,
118
,
521
,
462
,
145
,
675
,
418
,
265
,
1464972
,
3963484
,
4375091
,
942586
,
3019
,
127430
,
112220
,
37612
,
104421
,
109967
,
98548
,
58317
,
77624
,
172
,
172
,
481
,
171
,
172
,
316
,
31886
,
105022
,
57734
,
95642
,
86328
,
137027
,
65218
,
80590
,
48013
,
51634
,
67985
,
99618
,
84169
,
93314
,
36073
,
116393
,
79163
,
150923
,
89319
,
89091
,
133733
,
90220
,
94252
,
121016
,
144024
,
137263
,
127760
,
163344
,
122370
,
99454
,
45178
,
71369
,
90175
,
136685
,
52301
,
141410
,
137028
,
27751
,
2647301
,
4415498
,
3134557
,
2847034
,
4297467
,
3569987
,
118552
,
111
,
111
,
484
,
7941
,
287668
,
889281
,
400112
,
233295
,
2083
,
111
,
574
,
262
,
111
,
680
,
262
,
205
,
410
,
256
,
117
,
112
,
256
,
118
,
176
,
833
,
640
,
1004
,
256
,
433
,
703
,
798
,
377
,
698
,
351
,
300
,
112
,
262
,
150
,
437
,
428
,
477
,
128
,
461
,
244
,
261
,
289
,
112
,
118
,
262
,
112
,
112
,
262
,
118
,
130
,
268
,
112
,
112
,
262
,
112
,
112
,
256
,
118
,
277
,
570
,
112
,
112
,
262
,
431
,
167
,
351
,
228
,
238
,
1059
,
224
,
118
,
262
,
219
,
112
,
256
,
112
,
117
,
289
,
151
,
110
,
345
,
278
,
189
,
454
,
112
,
118
,
262
,
111
,
124
,
307
,
112
,
112
,
268
,
111
,
112
,
256
,
112
,
112
,
256
,
117
,
112
,
262
,
112
,
146
,
421
,
200
,
118
,
256
,
199
,
359
,
262
,
112
,
568
,
423
,
112
,
112
,
262
,
112
,
112
,
262
,
125
,
112
,
262
,
112
,
112
,
256
,
112
,
118
,
262
,
112
,
112
,
262
,
175
,
272
,
262
,
112
,
112
,
384
,
112
,
257
,
345
,
118
,
130
,
271
,
136
,
112
,
262
,
112
,
118
,
262
,
112
,
150
,
268
,
124
,
112
,
262
,
106
,
112
,
268
,
673
,
112
,
262
,
118
,
112
,
262
,
118
,
112
,
256
,
124
,
279
,
529
,
291
,
219
,
505
,
344
,
380
,
617
,
477
,
112
,
577
,
448
,
163
,
284
,
118
,
112
,
289
,
112
,
211
,
644
,
112
,
124
,
385
,
526
,
112
,
409
,
471
,
112
,
262
,
180
,
341
,
450
,
228
,
326
,
224
,
178
,
112
,
279
,
534
,
339
,
196
,
188
,
536
,
468
,
210
,
184
,
196
,
271
,
300
,
252
,
178
,
112
,
196
,
172
,
281
,
582
,
118
,
112
,
470
,
112
,
118
,
262
,
112
,
118
,
256
,
156
,
383
,
472
,
664
,
112
,
297
,
180
,
151
,
565
,
211
,
112
,
256
,
231
,
272
,
753
,
211
,
112
,
256
,
118
,
118
,
262
,
112
,
112
,
256
,
284
,
537
,
461
,
112
,
112
,
139
,
256
,
112
,
337
,
798
,
672
,
614
,
549
,
112
,
112
,
256
,
131
,
112
,
256
,
112
,
112
,
256
,
112
,
118
,
256
,
111
,
112
,
250
,
112
,
112
,
256
,
112
,
112
,
250
,
834
,
394
,
2934
,
155
,
111
,
250
,
124
,
0
,
250
,
111
,
117
,
250
,
28774
,
45960
,
2377859
,
3852873
,
4289316
,
4402594
,
4821490
,
3532899
,
4404084
,
3681347
,
4537306
,
4040884
,
304
,
236
,
131
,
112
,
265
,
185
,
357
,
508
,
118
,
112
,
306
,
118
,
112
,
262
,
118
,
118
,
300
,
454
,
449
,
876
,
557
,
205
,
279
,
516
,
195
,
256
,
112
,
421
,
662
,
200
,
112
,
250
,
112
,
112
,
250
,
112
,
118
,
250
,
112
,
112
,
250
,
112
,
112
,
256
,
112
,
112
,
250
,
112
,
112
,
250
,
118
,
136
,
274
,
112
,
112
,
250
,
112
,
118
,
250
,
194
,
266
,
761
,
321
,
287
,
444
,
452
,
303
,
333
,
112
,
112
,
250
,
118
,
112
,
250
,
118
,
214
,
250
,
112
,
118
,
346
,
118
,
112
,
250
,
112
,
112
,
256
,
112
,
112
,
256
,
112
,
112
,
250
,
118
,
112
,
250
,
118
,
112
,
250
,
112
,
118
,
284
,
112
,
118
,
250
,
112
,
112
,
284
,
112
,
112
,
256
,
112
,
118
,
250
,
112
,
145
,
250
,
194
,
112
,
250
,
112
,
118
,
250
,
112
,
112
,
250
,
221
,
240
,
588
,
421
,
1029
,
327
,
156
,
218
,
250
,
134
,
211
,
267
,
112
,
112
,
250
,
112
,
118
,
250
,
112
,
112
,
250
,
112
,
112
,
256
,
271
,
134
,
250
,
112
,
112
,
250
,
118
,
112
,
250
,
112
,
112
,
250
,
112
,
118
,
256
,
245
,
128
,
250
,
196
,
121
,
256
,
118
,
531
,
946
,
1259
,
453
,
4115
,
4691
,
527
,
285
,
9
,
172
,
2966
,
393
,
1496237
,
4133810
,
3555137
,
4391843
,
4734147
,
2365335
,
4309393
,
4816593
,
2865318
,
5075970
,
3642291
,
3712991
,
4050442
,
726911
,
782292
,
161
,
300
,
488
,
327
,
244
,
256
,
134
,
647
,
660
,
538
,
785
,
803
,
338
,
306
,
256
,
112
,
118
,
256
,
112
,
112
,
312
,
211
,
326
,
776
,
537
,
360
,
839
,
451
,
387
,
554
,
118
,
214
,
544
,
360
,
291
,
311
,
273
,
112
,
112
,
256
,
112
,
202
,
282
,
366
,
359
,
577
,
458
,
198
,
391
,
543
,
404
,
422
,
112
,
228
,
312
,
289
,
427
,
755
,
112
,
112
,
390
,
360
,
118
,
256
,
139
,
112
,
256
,
195
,
553
,
407
,
112
,
112
,
256
,
112
,
112
,
256
,
118
,
112
,
256
,
112
,
112
,
256
,
118
,
118
,
262
,
112
,
112
,
256
,
118
,
112
,
262
,
112
,
112
,
256
,
136
,
154
,
256
,
118
,
0
,
256
,
118
,
112
,
112
,
256
,
118
,
112
,
262
,
112
,
194
,
256
,
139
,
118
,
285
,
124
,
118
,
280
,
124
,
112
,
262
,
124
,
145
,
256
,
112
,
112
,
256
,
145
,
118
,
256
,
118
,
112
,
256
,
112
,
124
,
256
,
112
,
118
,
256
,
112
,
112
,
268
,
133
,
112
,
262
,
128
,
112
,
284
,
118
,
112
,
256
,
118
,
112
,
256
,
112
,
118
,
256
,
139
,
213
,
256
,
112
,
140
,
2694
,
961
,
972
,
268
,
256
,
111
,
111
,
117
,
194
,
112
,
127
,
130
,
111
,
130
,
139
,
111
,
329
,
419
,
627
,
494
,
294
,
333
,
433
,
163
,
3232
,
257
,
256
,
284
,
713
,
112
,
111
,
111
,
145
,
261
,
775
,
1253
,
433
,
403
,
616
,
382
,
503
,
133
,
357
,
876
,
601
,
742
,
671
,
553
,
273
,
814
,
261
,
128
,
112
,
112
,
112
,
145
,
1886446
,
4459752
,
4025218
,
4333118
,
3649335
,
4275277
,
3551729
,
3454440
,
3240775
,
4322114
,
3254331
,
3932662
,
4241105
,
2599449
,
4153879
,
2718555
,
529
,
208
,
384
,
1068
,
688
,
313
,
112
,
564
,
433
,
112
,
179
,
112
,
118
,
283
,
456
,
2612894
,
4136542
,
4381146
,
4788558
,
3434215
,
3880547
,
5053044
,
1464799
,
4943006
]
}
]
}
)
;
|
咱們再來看看zabbix的幾個主要的表:
一看就懂,在我們建立主機的那幾個選項。。。要留意下hostid,這個hostid在其餘表作了數據字段的關聯。
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
|
mysql
>
desc
hosts
;
+
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
+
--
--
-
+
--
--
--
--
-
+
--
--
--
-
+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
+
--
--
-
+
--
--
--
--
-
+
--
--
--
-
+
|
hostid
|
bigint
(
20
)
unsigned
|
NO
|
PRI
|
NULL
|
|
|
proxy_hostid
|
bigint
(
20
)
unsigned
|
YES
|
MUL
|
NULL
|
|
|
host
|
varchar
(
64
)
|
NO
|
MUL
|
|
|
|
status
|
int
(
11
)
|
NO
|
MUL
|
0
|
|
|
disable_until
|
int
(
11
)
|
NO
|
|
0
|
|
|
error
|
varchar
(
128
)
|
NO
|
|
|
|
|
available
|
int
(
11
)
|
NO
|
|
0
|
|
|
errors_from
|
int
(
11
)
|
NO
|
|
0
|
|
|
lastaccess
|
int
(
11
)
|
NO
|
|
0
|
|
|
ipmi_authtype
|
int
(
11
)
|
NO
|
|
0
|
|
|
ipmi_privilege
|
int
(
11
)
|
NO
|
|
2
|
|
|
ipmi_username
|
varchar
(
16
)
|
NO
|
|
|
|
|
ipmi_password
|
varchar
(
20
)
|
NO
|
|
|
|
|
ipmi_disable_until
|
int
(
11
)
|
NO
|
|
0
|
|
|
ipmi_available
|
int
(
11
)
|
NO
|
|
0
|
|
|
snmp_disable_until
|
int
(
11
)
|
NO
|
|
0
|
|
|
snmp_available
|
int
(
11
)
|
NO
|
|
0
|
|
|
maintenanceid
|
bigint
(
20
)
unsigned
|
YES
|
MUL
|
NULL
|
|
|
maintenance_status
|
int
(
11
)
|
NO
|
|
0
|
|
|
maintenance_type
|
int
(
11
)
|
NO
|
|
0
|
|
|
maintenance_from
|
int
(
11
)
|
NO
|
|
0
|
|
|
ipmi_errors_from
|
int
(
11
)
|
NO
|
|
0
|
|
|
snmp_errors_from
|
int
(
11
)
|
NO
|
|
0
|
|
|
ipmi_error
|
varchar
(
128
)
|
NO
|
|
|
|
|
snmp_error
|
varchar
(
128
)
|
NO
|
|
|
|
|
jmx_disable_until
|
int
(
11
)
|
NO
|
|
0
|
|
|
jmx_available
|
int
(
11
)
|
NO
|
|
0
|
|
|
jmx_errors_from
|
int
(
11
)
|
NO
|
|
0
|
|
|
jmx_error
|
varchar
(
128
)
|
NO
|
|
|
|
|
name
|
varchar
(
64
)
|
NO
|
MUL
|
|
|
+
--
--
--
--
--
--
--
--
--
--
+
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
+
--
--
-
+
--
--
--
--
-
+
--
--
--
-
+
30
rows
in
set
(
0.00
sec
)
mysql
>
|
查詢下: 能夠獲得個人hostid是 10085, 你爲啥不是10086,否則之後不再爲花費發愁了 !!!
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
|
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
25.
row
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
hostid
:
10085
proxy_hostid
:
NULL
host
:
192.168.1.120
status
:
0
disable_until
:
0
error
:
available
:
0
errors_from
:
0
lastaccess
:
0
ipmi_authtype
:
-
1
ipmi_privilege
:
2
ipmi_username
:
ipmi_password
:
ipmi_disable_until
:
0
ipmi_available
:
0
snmp_disable_until
:
0
snmp_available
:
0
maintenanceid
:
NULL
maintenance_status
:
0
maintenance_type
:
0
maintenance_from
:
0
ipmi_errors_from
:
0
snmp_errors_from
:
0
ipmi_error
:
snmp_error
:
jmx_disable_until
:
0
jmx_available
:
0
jmx_errors_from
:
0
jmx_error
:
name
:
192.168.1.120
|
今晚就先作這出根據數據作圖,明天再搞搞別的。
再來講說如何的掌控主機監控項的表。
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
|
mysql
>
desc
items
;
+
--
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
+
--
--
-
+
--
--
--
--
-
+
--
--
--
-
+
|
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
+
--
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
--
--
--
--
--
--
--
-
+
--
--
--
+
--
--
-
+
--
--
--
--
-
|