请选择 进入手机版 | 继续访问电脑版

IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 567|回复: 0

DevOps微课之Zabbix配置

[复制链接]
发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:38 编辑 : D+ b  U) Q; [/ {
6 l) G0 C5 S5 g: s$ s/ z

1 h! U; d- F1 S$ k# s
) Y* S$ V( g9 H
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:
* i- e2 z$ u* @, D8 G' i9 ~+ O

& I! f0 P8 x, h! m, J* B* n
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。
5 U8 U) G, s+ j
8 ~9 a5 e& E$ [8 ]! A5 P( b
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。

& F2 y" }( w: G( R- r8 [3 {$ b
$ ~; D# b, W& Q* {  @
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

3 @9 H5 w/ Q6 k5 f8 m

. z5 c8 M9 [0 G' X0 P; t4 {- B7 @
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)
$ q& \4 c5 K8 [

2 C' x  |: U% J; p/ R4 a
Zabbix的运行流程可以用下面这张图来简单的描述:
( G6 B! W& p- H
4 k2 W; f9 O$ t2 H* h# `4 ^
1.png
1 添加主机组2 Z) `- K! z  P0 @5 Q* C% ?0 J
分组的目的是将统一属性的主机归类,便于查看和统计。
6 ], U* ~( M" K; i7 A

! t, M1 f7 t8 c+ u
主机组中可以包含主机,也可以包含模板。

2 i! n2 h2 M5 U' Z, h( r

& A# h* u. \* v, Q' ^
1.png

$ ]2 Z4 N5 ?0 t1 d) m8 ]
; |& z1 H# _) X+ ?8 ^
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

# s9 v6 V! [5 B4 ]2 n

2 o) i' q7 q8 x; b( g
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
2 |/ }' v8 R& N7 N. ?

6 G6 P; Q& @( O- Y/ D, Q
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
+ K0 P5 r* d9 w* i) \( f
) u9 L9 w& @8 Y7 b, ?  K
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:

8 R9 k* G3 Q- s* Y0 C

; t/ g% y& t; h8 G, R
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
  k4 D3 o& M' q6 T' j3 D
6 ~/ q6 o/ n8 a! }: s% c

- l1 j: K0 }0 y  Q  I/ a' n
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:

+ o+ l. o3 M& F! H, z
6 A# U; s0 G6 B/ V  {3 Y0 |
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
% e; o- P9 g- _6 ?
$ m% ?1 \" V. {

( T: p6 f) ?9 b/ l* h9 {" G
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

0 V( d% U) r7 U! w. U3 k
- b  g6 `; I- O9 t, j
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字6 t" O) r9 [$ c0 [# S
: N3 ^5 c* h; r

* X* v. y! G+ [- H
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

+ R" G4 G6 ?/ L/ Y% M
. x( j0 \% k, L0 `) P  C
查看刚添加的模板:

4 l; H3 j- Y3 \. h) B. z- L

9 W2 F4 N, A: x  T
1.png

, P; J: [) n1 G- ?& c& R' [1 Q; |$ h7 A0 q
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
: g- f, ]5 u! j! S8 E
( Z+ Q) B% w; R/ k& i, y# c
- M8 j" K6 F& H. t! a7 {0 v
1.png

* ~' n# b8 z" d. P
3 k. R' r5 h  f, _* A3 F8 t" k3 _
关于如何在模板中添加其他的Items,后面再说^_^$ U. s6 t8 k) V  E2 p6 u
0 ?5 v9 i( N) a  @! E
- C: n8 e) N( ^% D" e2 p
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:
+ I) G$ \# c; F
4 Q# G; d( J9 W% `( }
1.png

+ D3 Z3 K; }* }6 T. N2 U
% r. c% v+ P9 P1 f0 L: o
参数说明如下:
1 h$ O) L, h% T0 ~

' ^3 T0 E; |/ w) Q" h6 n' A' C% _# N' v9 \
  M- Z6 _! s5 B- e' F3 a$ G+ S0 y
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。
6 t+ T% I( I' w# A. X6 v
( R# j2 u  H2 n6 p* n; F, H. u
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。

. m) S7 w7 f+ e- c, C) v, L" Q; I- ^

  g4 {. u3 p, v4 x9 Y5 T' l
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    / I% b  N3 ]2 T* }6 c7 E! R! b  J2 \! T

! q8 i9 E+ ]6 c* E& B* q& |9 {: p

* i; v3 ]! J- `: }" H+ q2 G
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。
    * G+ ^# |8 i" `
- G8 O+ p' k: B$ @
  p( U5 C* a: V& \! p& Q
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    ) J  h) m5 R, g* L. X
1 ]% Z3 B8 U/ w/ Q# R6 \0 P$ T7 {

: k( a; i& F  k4 Y; ~" U3 M
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    * \0 v. v( |+ ]

3 w# P0 C+ X/ z, m1 g$ h) I
7 ?# T3 v$ K( h8 H( d; E0 Q7 r
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    8 H5 r' v- V2 K5 Q; w: e5 `

( H% K2 n" X, g# R
( x( A8 P/ N% w  p9 D
  • 状态:是否启用。
    , s" h1 P* I0 M  o% u7 a, f6 W
. Y9 z5 c3 i3 ?- |& Q9 B! `" D
选择模板:

3 F7 @( t/ z& Q# U0 }
9 b& q* d4 f( r
1.png
; q7 o) t# @- q4 w: g

" _# {" u6 {+ i
如果还想配置IPMI、宏、主机资产信息,依次配置即可。' W' z) b6 w) O, x2 o) q! }
6 W  I2 ~8 r) U9 Z
5 w* ^/ o- V% B- ?( M
% q; N+ E0 A* r! k& T
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

  ~# v2 e6 }3 M) w
5 h9 ^  Y% Y2 e, x
在所在的主机(模板)中,选择“图形”:
, z9 c" K8 ?( d( P
7 R. U+ H# c3 s& Y0 F0 b  e
1.png

6 b7 D; `" A( c8 s1 m+ n% V% o# J# K1 H, j& b
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:  S: }, S% ^9 V

" L5 `  N2 H/ {2 Y) \) C
! r2 T8 {. ?1 Q
1.png

) v2 n- m+ \: @/ H+ y/ @" D% w$ [& w* Y4 s) |
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:
1 @) N7 ]' c; i

: h, S  X: X" L7 a1 U6 n3 v
0 A; `: z7 F& H
1.png

! ?+ R" |7 P" h$ j( v0 b+ R" |" Y. m: @7 V4 O- s
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:% P2 D! f: |8 j: D9 h5 i

5 f7 i0 p- K4 {& c$ h

- p8 V/ `3 I/ f5 I' A3 s8 m" y- i
1.png
* s. W9 Y! z/ S7 n/ h7 t

; j3 X+ a" y! I! |7 X# x+ \
$ v  Q; X9 H% V2 G; o/ g6 ~
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:
6 F$ r' |& M  W3 ?2 P0 J1 j, m$ }3 Y8 i

$ p: T+ f6 M4 }1 h
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

2 a! L! u/ Z) h
& h. _/ o: M( |% j/ d! v" }
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

1 b! p/ B( [! o  X; Y3 s6 |; `
/ X3 K  x+ w- S/ e4 N! u5 d$ v# Z& L
效果如下:
, [' e" g6 t% N% e" G
6 ?& F0 B5 {* W
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。

7 J& a- l( V. m1 v  _3 r) s$ ?
8 T4 z7 P. X- l* d6 Z. s7 _1 ?, h
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。

5 C2 x2 ^6 s$ h; o. B
9 N( ]9 r* @: J. P6 l6 Y
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

- N" w' T! o" q; V( Y
$ B2 @/ p6 p8 P3 Q; N( v0 u  e
1.png
) n$ Y2 b5 w) H* m- ^
" ?' \, {5 h' D. U$ y) ]. B
名称:Web场景的名称。- l$ L' s7 ?7 q2 ~4 W
/ J$ B/ I) D+ t8 ~% Y
$ {' v9 f% B% m5 t
  • 应用集/新的应用集:选择已有的或新建应用集。

    + E% @. c' _) U0 ?
2 }1 }& S+ [$ a2 \8 e+ b

( l2 R# K( p$ p  z1 Z: T$ G! L2 g
  • 数据更新间隔:Web场景间隔的时间,单位是秒。

    , ^4 F9 t9 o! L) O9 ]
) Q3 [& a6 T3 f* B
) B6 B+ m- C* {
  • 尝试次数:重试机制,默认是1,最多支持10次重试。
    & j, }  d1 ^4 E. B$ A

( v+ t2 I6 e: M) e* \0 m& q- b

% c3 b; h! M. Q& }
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    + J. q- f1 w6 j

0 M# t4 N3 v$ E

; x* ~( }: Z+ Y6 b0 O2 E3 d
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    - V3 e8 K2 C7 U7 C

0 E# Z5 d; i9 F# m9 g0 W6 P
7 Y8 X& G8 O+ q! K  L. q# \
  • 头:HTTP请求的Header信息。
    5 s3 B! s# K& P9 k: d

7 ?9 j7 S: P9 h7 {, q5 V
切换到“步骤”Tab页,添加步骤:

2 e6 T+ }2 l0 A7 H0 G

& c3 @( D, `, o" g5 V4 B0 V
1.png
  • 名称:步骤的名称。& l/ e# F. `. P0 N7 @

    + N( A1 `1 N- u! G( s$ ^0 H
0 w, W/ j3 S' c. I1 o% P* e

: V( H5 W7 g- O. P8 \6 {" a
  • URL:监控的Web页面(注:必须是全路径带页面名)。

    ! Y7 d! S/ x: }8 P8 q

: k7 X. R) ?/ T+ _' |
" d5 H" J' s7 Q$ B
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    3 l7 X9 C4 ?/ t; Y+ c+ Z

6 u2 c, e0 V  k0 T8 Z! H
' }# ]4 I; w3 Y- D
  • 变量:设置变量。
    5 Q% |& d; j* r7 P9 f9 l7 Q
6 Y5 j- b6 {6 K! Z, Q0 ~& l4 q

6 c- [7 `9 [7 K! Q2 k! w' {" A
  • 头:HTTP请求的Header。
    7 C# s6 R! p# K# v% ]/ ?+ U7 h

+ g) k& J% f/ _3 K( ^" d6 e0 ]
7 B* c3 ]9 h  w) @' m& t* B
  • 超时:超时时间。

    ! G% v: y; q- O2 a" r
# P9 V2 T- K4 D* M, B$ r
0 D! v" }6 f2 j5 Z# C
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    / k; J* F) T* r1 H1 |9 m

. H( F% }6 j7 C. X
0 @" v/ Y( }4 a* ?0 @
  • 要求的状态码:期望的页面状态码。
    * l4 ]1 r" }0 V- j! C

# S6 F9 A+ n2 {3 ~% g
如果有多个URL,则一次添加步骤:

+ @) b) n' L0 X7 r) X* i! q# E$ s0 w
; o/ A$ y" s* j' ^
1.png
1 f) V+ Q; G& y* x, C6 h% ^" C

# {4 F0 W0 ]6 G- i% {+ }& D8 m
添加完成后,在“监测中”——“Web监测”中可以查看:
: j4 h/ M6 Q" u5 f+ \% h

& g% ]0 ^  ]  ?# K! o: r( K

1 z; Y6 |. R2 _- b* l/ p
1.png

" `1 c/ j0 t; u" i  `2 e1 }0 g
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
. v4 n* Q! J" @$ B/ J
6 ]* I- ~6 p2 a2 k1 o- V: q

. c- Z. ?6 I$ `
1.png

: \" c0 [6 h! K5 i' j- ^
+ _( M; l: h; Z/ c6 c9 b, r2 ], Y7 |0 W5 {5 k# a; E$ X- A3 c
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。
& |4 S/ D& w1 u& @# _+ G3 H, e

( T% U) T$ t! w2 Q3 ^, l% q! Y
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。
* T) {8 Q8 \) ?4 H
9 |9 f. Y6 h( N: f2 T$ b3 V
监控的方式非常多,ZAbbix支持的监控方式有:

/ W" ]( W5 [; [/ X/ z% Y7 y

  B" ^. s/ g  ~# Q
1.png

  L. H  w( A5 q* E& Z2 K8 |0 f% ^% I) b( {9 S

/ E4 F3 t* [' Q4 ]
其中,最常用的有:
  B$ {% g) x6 G1 E' _
, J& v, I! T+ [' n+ Z' w8 s1 a9 U
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。
    7 }% F, f9 G- `! y! ]1 K/ l
! m. y; R0 E" H4 K
, B* s! b% r1 _! G! V6 V$ O  V
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    + A4 j; Z7 c1 C# `% }' ?  G. w* Z* U

# c4 D8 w% `! g5 l

/ e! t" h; {4 R) g/ `
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    % r0 A" g& t; e- r0 ]( p

, W1 y# [/ @4 q& D' d
. |9 N' ]" y$ t  Q6 G  r
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    % s6 q; O4 r4 x3 S2 [2 V, `$ r; V
4 O" F3 J% m% D$ M% D+ p

% G3 E! p4 ~4 O3 H/ O$ |
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

& x' `. i3 i# @0 C; `5 ~/ b
& N1 C- |! R" |  _0 G; p' `
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
" H1 H; g! b; X4 y2 l5 T

  y( S5 a# }" T+ k; `# }
1.png
" t$ \+ |8 V+ |5 A% u" \
创建监控项的页面:
& l9 h6 ^2 R: q7 k# O$ p7 g
/ ?( ~; \9 z6 J4 y* f
1.png
; n0 p  p' C3 W$ @

6 N6 g& m% e$ S# Z8 B% ?1 }2 c4 \0 n8 a
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    , x* q4 m2 v5 m( E9 U
3 a1 `& O# y9 C: |$ A
. X& [, s# h1 X4 f8 |$ o
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    ; p) J: m% w! f  n" ^% {9 I* x1 Q4 j
7 F% v, m  y, u3 e

/ h, j) E% w( E- o
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。

    ! y8 b' u- W9 i
/ _- ~' [! s. p

) J& ?) e7 h/ k; g  O8 Z0 R7 Q  w
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    6 x3 I% ^7 U' J5 R
% R; Y$ Z4 q, h: K: G4 M. U8 \

( |' |0 y* j" A8 N
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。
    . W6 k8 u- A9 ]- W0 f

% @- p' O" k" v; B) P1 m# z
! }" K) O" }3 ]9 q# A) h' M
  • 数据类型:数字的进制。

    - g8 \$ j  n$ r" f

3 }( w: S' ^. O6 \
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。
8 y. d  p( k9 G- n) a9 Y8 T
# v  c& D1 E& U& s
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    / ^: `: S+ d$ F7 w# y
! J1 F; J' T  ~1 q" [) ?& S
6 I/ Z, A' G# k' _- C% k
  • 数据更新间隔:监控项的采集频率,单位是秒。

    8 F" D4 z  ]+ n- o
8 v8 Z2 E4 a( P  G! E( Y
( o7 M$ H8 H: n/ L# }  X
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    7 A& G4 m9 q: f3 k; @

0 a& v4 a( H9 G" A7 _: I. h, \( z" q

1 _" n) ?' D" v8 Q. W3 G
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。

    " w3 J% R1 ?2 t, W1 y. A

* V3 E8 u8 `. V+ j
" S, D- w( \5 {: u1 ~8 r
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。

    1 X9 z0 C+ v0 k" S- ]6 l! X" X
+ M% _/ S4 i2 r) K- ]; ]; p3 z

7 e4 T; L! f7 H3 U* L  S
  • 存储值:存储采集的数据或者存储数据的差量。

    ' H* E& ^6 M3 u- `

: @& C0 Z( J# q/ |- @0 L
+ ]6 U" e' A$ B6 m" H
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。
    6 ]2 S2 b5 a% t6 h! N
( Z* E) G3 Z1 s8 ^

3 `1 T/ @, C+ b6 P* J- ]
  • 新的应用集/应用集:选择或新建应用集。
    2 K+ w3 o- X& Z) _3 w9 |( v+ }

( ~8 K" `) b3 ~% z1 I! Q9 y
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
) M9 Q; ], T% i1 D6 X/ e
) S- I0 J2 ]) p" {
8.1 监控项的Key

# G# v% Z$ s$ I: |
0 o$ U( h- U4 f8 v( g4 t$ k
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:
+ ~. F+ F, `8 K$ w& H
5 ^: G0 w& d) j0 `% ~4 v
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
% J& ^! S! l3 F/ X

9 O: v' H+ v$ A% \; f0 i
举个例子,创建个自定义监控:
' x' \! O/ s& u1 C! {: c, N, h

7 m. z& n7 @; c3 j# I- j. F9 W5 S
1.png

9 J0 i' U1 u3 x/ b1 V& \8 N, n) D% L* |% x- a. a8 \

. t( B  N# h  h* L
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。
! E2 K& k' ~+ r5 T8 |, D4 W

0 Q7 H+ m2 q" c; {! h
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:

6 @) O& C6 u0 G
% x6 u* L1 L9 B) y( E* ?9 l; I* X
UserParameter=key, command

7 t8 F3 p0 X) o* K% b) @
5 u4 L, i+ w/ E" o. H  D9 W
带参数的格式为:

+ [4 g* t. Y" L. V' u

- b1 x5 [$ c2 W9 E4 M
UserParameter=key, command $1 $2 $3…

. v. {9 ^2 i! f9 ]" w
# [8 B, }5 A6 f; p6 a
添加了UserParameter后要重启zabbix-agent服务才会生效。
/ B4 C) m0 c& |# z! M# N/ n( a

. Y" N7 j9 b# |  U% s- S4 S
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

( p+ d& B9 |( i, O8 E

9 t  i: i0 f. F: r
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

9 g! v5 {+ T! r2 _& Q3 `
* Z% J$ {- f2 S+ m+ W
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。

, K' R0 s' [4 d' t0 e
; s7 b1 j( D5 ]( y6 H
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

* y' i6 K2 e1 g) A

7 g& {* E2 l3 U2 k
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

1 |9 b+ S% [. F# b
4 k9 v" u: ?6 ]7 f8 ^
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:
8 P- q2 L6 w9 W. F0 R
9 f0 j7 ?' `% t$ V% L
1.png
% ^) @4 s( Z# f9 m+ k+ F
# B( ]/ \7 I. ], M" J+ h2 ^- b
( u3 B$ ]  g$ T. I: ?8 B- }
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
( a% O1 a! }2 F* D2 D2 s; T3 y

' w0 a" t$ S# q) Z$ a7 O) d6 L
1.png
+ h/ |* u  p1 L; G3 q; n* J

' I: N; r6 z! I" J5 n2 I+ ]7 B# Q% h+ ^( }) K$ t
Zabbix支持很多条件判断:

; h. n+ R* U- @* |

/ k- \1 c7 D. K
1.png

1 Q4 Y' ?* g, L  K. \% I
- j, j: C- g, ?' H$ O9 P6 X
- }) J" Y5 k) G9 {$ ]6 E
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

/ d9 Q# k6 w! J! ?

& s. S( T; ]- B! l  T2 E
1.png
8 b' H$ I0 v2 m! ]( g
/ D0 o) S* u0 U3 a2 ~
" J4 K5 _+ {3 r5 \; i0 p# e
插入后就生成表达式了:
- g: @/ L+ T; A8 w% m& Y
7 c2 r5 w2 p* E; K% G
1.png
  p/ X% I2 h& y1 N* T* K
4 ^6 m$ O' p0 q  O# K0 P4 }3 C6 j

5 [+ D/ n  v) F# u2 r! S' s5 V6 Z
表达式支持监控项&组成复杂的判断条件。
# ?6 |( N* i: O" m( Y
6 p  m; n. H5 m; \* C( C
1.png

! u# L* ~9 Z: Y
6 r9 Z; \+ F# p6 j, h! \
4 F7 A, R; [" E$ |; T" R
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。

/ s- @; l' v5 j/ ], ]) ~

' b9 I" Y4 f7 b
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。

3 [4 G: ?( `9 a3 h
- Z3 ~/ r& U: q3 q# r  e
在“管理”——“报警媒介类型”界面:

5 {" F2 k3 X  W7 ^& k
* _' A5 X* W5 G' ~! [- W
1.png
: f/ R) w$ q# l+ }$ A5 \% |
- ]9 C8 \* f3 T6 P

8 p. ?% b1 G% b8 {7 K, a
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。

: p0 |  A- P' d- ~! L

# D3 d, I$ Y" L- [0 y
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

! z( O! I; L: i5 l  @8 n$ x1 g
) T' e- ~/ x5 t) j& @
1.png

# G: \" m- {: p% h) p$ z$ @% r: ?$ X4 K( A, L! J* u- e
* \  ^; W8 n1 W; F% u$ ?6 k
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。
& Q5 z! T7 P! S9 o2 ~  a9 J

/ d3 Q9 z* A% Z3 `3 N- G' o
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。
$ F/ t1 Z# f6 i( J3 J4 |- a

+ A" C4 o5 f' I' t
在“管理”——“用户”的“报警媒介”Tab页中添加:

/ d5 p0 U- U2 \, b* \( }( W8 U9 m
; n! \: r# I! y
1.png
2 V7 Z7 G" V+ N' k5 \
; o4 w/ U- Y+ P% W- `# }; J7 N

3 a/ K" J9 b; Q. r- I
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:
4 L+ d, |6 T" _- T
  G' @4 Y& \  {/ J: i
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。
) e7 G! y0 Q% A% `- z. X. _+ `) W. n
2 U# y% K7 V0 e5 q  ~$ m  c
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:
) M) z5 ]; F' f/ X
1 s# q2 u) a! h6 S
1.png

* W- w! n3 g$ `  m. x! A- U
' Z6 ?! {5 k/ i- M2 t6 t) ~
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:

: y2 s8 Y! q. e$ P& G% D' m

; e" y% v' Z# J/ K- D; Z$ m
1.png
# k, R: e% ~- u- s0 K, F$ }* B
& B! I) Q1 d. f
) [* x4 ]! ^9 Y, @3 v' K
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
# C* q0 C* X) x* H$ C3 k

& f1 u- e2 f! ?7 A4 b
1.png
! e6 H7 O5 T9 X/ M! L% u% u

0 a6 d+ Q6 F: `2 p  W6 C6 ]% V& c" k! Z  f7 {# a/ J. B( S; q
不同类型事件的动作可选的操作不同:
* `4 _  C7 O/ z3 W

5 W; b- Y8 `* [) h9 Q# D
触发器事件:发送消息、执行远程命令
1 E6 K2 i$ ?$ j) P# n

0 w( H$ k, c7 p! ^- ?8 M
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

9 w! j+ U+ v9 g
% j  S) L5 V/ r, z5 h8 r
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

. v4 a8 w$ p1 @& T
. Y  Y- J) H( \' n5 v8 D5 \; b9 W  i
动作发送消息的日志可以在“报表”——“动作日志”中查看。
2 V5 {7 k9 J: x

* L( {6 {2 F2 r/ S2 L! ]
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

  [7 a! j: N6 j* _' Y/ |
& G( Y; e5 B5 r3 R8 z
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:
# x5 _* Z2 p, w2 X" |: K2 i
) `* _# x) X4 p3 I" X
1.png

5 L8 n- D0 t, ?7 s
, t0 [. P' E5 [( a- Z% [
/ w; g. t) P$ b: [3 v7 W# W3 `
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
5 `$ Z# L9 }& I, @( @6 g4 P

! D9 d; o1 x' K! ~9 _
1.png

1 s5 O' ~5 f3 B7 r
) N1 |) o" ?9 i. j- n/ w4 l1 ~% E
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:
* E* ]8 d  v5 t

; i3 g$ {' }) k5 r/ a7 d
1.png

# ^8 j0 r2 B1 s5 @6 [6 [2 e( ^9 i# a1 J! o- F
# |0 f  u! N+ v0 l" v5 d
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:

9 n* S6 [$ w7 D$ Q

3 ?+ H7 L- e' b% ?
1.png

( G7 p9 p$ ^0 J/ j9 R% d, A$ |4 p- ~  [7 o. F; y) Z  w  R
$ d3 m9 q/ v2 P- R* [7 U3 H# _
然后事件的确认状态就是“是”了,表示有用户修改过状态:

! D# B+ u; Z% g5 t

# x1 W; B/ V3 A& N4 O6 {
1.png

4 q/ L4 C+ l' [- m
$ `( g7 e1 D" x3 T4 ^
( w/ V! o4 F1 C  @' c, p
点击“是”可以查看具体的内容:

7 p/ C! e8 c/ \
  A9 R$ ?- A( k" A1 r) k
1.png
( r9 ~# |* t8 a3 B& f
; [, u! y% G; F' p2 F6 g% G9 c, Q0 y
4 l5 X% f3 \: y0 N) }' w
原创:吴坤# a3 Z% c2 X# N' _0 _/ J& ?. ~4 G
1.png

本版积分规则

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2019-9-23 07:19 , Processed in 0.174724 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表