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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2099|回复: 0

DevOps微课之Zabbix配置

[复制链接]
发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:38 编辑   M$ k/ W8 o! N' {( F* B6 u

. n1 e9 u( u/ b2 `0 c
) E/ z# I) F2 G
2 @- Z! j0 k! |, d3 M
本文介绍ITILxf.com" target="_blank" class="relatedlink">zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

. K  {, d; s( K

3 C6 k% x$ T1 i4 {1 ?
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。

& g0 v6 ?+ }0 j( z
# T. N" i+ {6 n* M6 U$ F; u& Y& }
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
7 d# v, o- {+ D! s2 H1 m4 F& X! o
. d2 |" \; ^1 a4 h
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

9 M4 r+ b* t( N" ~. j

  X0 ^* n# d& k8 c
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)
$ _  A* A! M7 ^( h7 C% k* O" m& i

& h" I7 \: D& D$ Y. h; ?; ]
Zabbix的运行流程可以用下面这张图来简单的描述:
# v" ~% o/ ]  ^1 V  z
, w4 q& q! y2 T1 y
1.png
1 添加主机组/ d7 s4 U8 [3 [" y/ m) Z/ O
分组的目的是将统一属性的主机归类,便于查看和统计。

; [$ U8 d! g! y+ K# }
2 l' m0 I9 s) Y  t+ O
主机组中可以包含主机,也可以包含模板。
' v1 z  O$ }- X; @4 @
/ p7 O+ j6 m' o: i
1.png

9 c. Q9 h: W! I5 a+ }' V
  p) [/ l( g& }1 w  H- p
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

' z% m9 x% u4 H, O' Z5 u) z
  ?- |/ w, V- z# W% ^- d
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。

9 n/ _( f$ g$ l3 T% n

7 k2 b0 E% K- q& o) N$ t, A9 J. U
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
; M/ K3 z! }  z3 G' @
+ E8 B) H) [- S7 s
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:

8 i) s1 L) R. ^! A; k+ f0 ]

, h" d; _( C6 h' h# _: [
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
- J/ a/ h- }$ K9 h" O) m& T
' F! L' G: F5 Z; q. H2 l* t$ v

9 i9 N! E- Y6 U1 z/ E8 T, g
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:
1 u* `$ z# b0 u: U0 v2 q

8 P8 Z/ ^0 M* \& k
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
& x$ A/ t( x/ z6 |9 e

4 ]% |* G' p. B, a9 x
2 o0 x9 [5 ~' |, Q/ K% p
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

  X' X; d' I1 R+ S0 O

" @3 }- _( E: a% y. U+ c" j& f
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字& [) y- R! M4 n
1 t% u4 u7 _1 o. C7 X

6 o( S' e+ n( e6 j
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

: L, ^2 A1 H. v4 D1 ^8 |. W- g' w% F: R

, c$ ?' ?4 Q0 q2 ]7 \
查看刚添加的模板:
7 j2 ^9 m3 w6 T

0 L( F6 {+ [: U, S3 t  _: \
1.png

( w5 [4 O" u5 c" \, e* S( a
3 }" i- ?: q% U' X
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:4 G1 i& \, m8 ?/ u/ b7 a

( A: H- m" i7 z) d

1 W# N: h8 ^2 g5 x
1.png
4 }- L4 b3 P+ ^

" f) ], G5 H& y/ m% u& D* M+ Z
关于如何在模板中添加其他的Items,后面再说^_^
8 a+ r/ {, c7 Z3 g1 B) I/ O

* q1 Z7 o' g2 T, ]

5 _' N  B; @  e7 n, i+ U8 L4 X
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:
  J; F  x; i# K/ B' ~% C0 k
( P; F$ E" e' r0 u! C
1.png
4 k, Y3 U( {+ @) b0 h8 Q/ r
# r3 d1 [8 f7 q: G' }9 O$ e
参数说明如下:
7 d. g+ \/ M" X! _! a% R

! G3 l  B4 X. K3 q0 a$ m

  |, Q4 M& g  O2 F/ B0 ^# c- S1 F% m
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。

: n7 k+ D# x2 ^+ F' Y

  K5 C8 w% I2 S: J0 A8 e; ]" C
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
; S8 z+ K* }7 g/ F
# U- J* w$ a- m0 V! `3 |
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    0 V, T2 v4 P& V2 {; }. `

7 L" L' {8 i8 M, V1 }" P6 V5 k

! i1 f7 m; i5 @6 H8 M4 e. \- T, r( F
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。

      [! t; ?0 F  K. p2 h+ ^: W

) y; Y# P, ?5 q* c

; S  s9 E# {" K8 w7 G( U# p6 [
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    ( S! R! W; ?, U( D1 J8 V
9 U$ W3 h7 ^  f) a8 P6 X

7 I9 O* D4 b+ J' w1 P
  • SNMP接口、JMX接口和IPMI接口根据需要添加。
    0 I8 t; ~  l3 @9 d

- B3 ^1 g' ?" e0 |& E8 }
  u! F& g3 a( \' q. Y" v
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    & ~# e* d, l/ Z8 b: d. x- x
% _6 Y. |7 _  C0 Z/ H& O: R* F5 D# @( K

- M( v- v, B# Y# T' V6 \) k1 U
  • 状态:是否启用。

    3 e7 R! ^: L8 l- K% e( ^

) t  _  J6 U& [. F) p! z1 e! i
选择模板:

- k, H$ H9 {$ A' d% }* T: u2 p7 B
% v7 q* N: R! Z+ J& `
1.png
0 c7 ^9 K* I4 J  z- E
4 E$ y( Q* g- s
如果还想配置IPMI、宏、主机资产信息,依次配置即可。: H7 {  d/ m" V, C

0 `9 Y% t+ B: Y  q4 Q) z

! f9 V: b& i& B3 N5 ^, C* P2 c  k6 U, w
6 ?9 q8 z1 j; z
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

: D, J2 F- X3 ]- e1 _
/ F" c* z1 c, x7 _- q
在所在的主机(模板)中,选择“图形”:

6 U' X# ]" p6 d, _5 I
9 j( J* _/ b& `+ w+ D9 K) _
1.png

# ~% Y. A8 [% i9 ^! _# X. x( q0 Y
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:
+ P* y; E' F' j; x

; R) y! ?2 t- P% {
5 X. Q3 E7 c3 f" Q
1.png
0 j- d3 {: ]2 W: v& `& W, e8 y4 {8 M

& K+ D* U; f) b6 T7 c
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:
4 z0 r* C2 s+ }6 N! x+ T
* q& Q& e) ]8 k* F2 d+ z; ~& {; t

2 n& h( j! m5 e: a/ Y
1.png

- v7 n% c% a  a1 @& L9 e: z
. d8 p, K8 k- Z8 {0 o/ u/ Z+ t3 g
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:( w! h6 w* u$ a- `/ L

$ ~( X! P, F; P$ \

5 ]  O. d0 y" m/ r3 R7 Q
1.png

  r" t4 Z( m# b) C
! ?6 I) \/ v7 x+ J2 \$ @* ]% \! J$ Y4 F+ @
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

* U, q4 Z4 W$ S0 p) T# ^

  b6 U+ e8 l% O8 t6 d
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。
3 N+ N& T. }' M* {
/ I% z9 u+ J, h2 Z8 b$ U8 J+ Z
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees
7 l; M, f4 b$ N! T/ v  Q1 i( L

' g3 ^- N6 A7 U! @
效果如下:
  g, z# @* I7 K' o& _+ j
, X+ _6 a. _: C0 e3 R* g) W
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
# r4 T) z6 M# ?" A  I" y* ~: T

; c* j. X# m9 ]& D* [8 B$ B, o0 I
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。
! M! d7 \! `8 W! x5 R# y

7 S- Y6 O7 r# _3 L, G( i
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

! ^5 |3 J, E0 v/ v5 G5 g! a
0 _+ Z6 Y) y8 f! O
1.png

, ^/ ~. ]" \( C8 H) K( s, _/ J

8 u" [) x& D- F# t: H6 X
名称:Web场景的名称。
  a- z# D/ e+ Z# C- D8 H5 Q
" j* k" |  x0 m/ m! \6 ]

- G% _+ M) ?& p( P- R
  • 应用集/新的应用集:选择已有的或新建应用集。

    1 d; S8 w5 m7 v  \  h. [

6 Y; Z  `; o7 o3 z' J( c
3 \' e; k  }2 v0 J) w8 V
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
    # a( Y( l' Q* X# [+ v) K( O2 y

7 f4 b# ]% g5 U' z5 V5 ?

. C$ R: ?" t# I  v) w
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

      t6 n  z+ m6 n1 K5 J

$ a+ c( E& ^, C5 ?/ ?

( `: t: A8 a0 x. H4 W  `7 N% k; r
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    % O" ?0 j6 A5 r+ `+ n# S! Y
. f8 _& l& [) P% {) l
5 G( e) R% x' K* ]$ P' S! Z
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    $ r9 N7 v. J' L# [+ i" m
6 j. q7 P" |! d* v: A
6 R) I7 c7 B( {7 e6 `$ S2 B: Z
  • 头:HTTP请求的Header信息。
    8 T) Z' o- U' \5 A- o$ h$ Q
1 a' K4 G0 J' d- q" a! ]6 S: y
切换到“步骤”Tab页,添加步骤:

& z; M6 F8 e4 b0 X& A. L

+ M9 G  H4 R; q% I2 b3 I$ q0 @
1.png
  • 名称:步骤的名称。
    1 [6 ^  O' w, T- d" o2 u) X9 ~
    4 R+ f$ v% K; g
3 w/ Q2 t% R6 ]4 o2 c# S, R- ^# d
8 {( J9 A- q9 F" w; Z& }- B
  • URL:监控的Web页面(注:必须是全路径带页面名)。

    ( L7 P* q6 C% D2 H) I, j9 R) h. l7 P* y! x

% V$ j& x4 x. l: F

* w6 r) _$ T+ a( g( A1 a
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    7 H* u. \( E1 R4 X* H3 J# G

2 Q/ ^2 g, {9 h4 |& B9 v2 S* }" r

7 M( k8 ?0 T8 X- i9 P- J
  • 变量:设置变量。
    9 J% G4 O3 {; q1 Y! |" d
- P/ v' C2 ?- X; \

. w9 ~1 ]* q7 _3 R
  • 头:HTTP请求的Header。
    4 t1 Q+ b) p3 |$ r6 V# d! Q2 H, @

/ N5 \) ~0 D  U% U: ?3 n, t" |
. T2 G& o) Y# Y8 m  j
  • 超时:超时时间。
    $ u7 j$ c! N! n. s- \6 B
% C  a) N: F; ?

2 \7 O+ J8 h  a3 e  w6 [
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    * Y  J6 N! t/ G% g' G% B6 k* O
8 l$ g- ~/ ]# v4 O7 m

4 a& ?4 M& \' W! y3 q
  • 要求的状态码:期望的页面状态码。

    7 ?; I! L" W' C5 K9 _
) h- ]9 E6 P  ^9 `3 n& r1 V: i
如果有多个URL,则一次添加步骤:

7 i: ]4 C+ y. [" G" g; F

) w3 K% r0 K- o  z& a
1.png
; Z4 m! P& W/ l- t( k* P: A

9 L4 b2 l5 m! k- Z) F& C
添加完成后,在“监测中”——“Web监测”中可以查看:# [* W/ e* L- z
% q1 c  n6 n. r) s4 a$ W' M  O
# N2 Z/ A( i9 I' k
1.png

& h6 Q' T& r+ T& b) z
& E( v. t3 L# S5 s& M
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
1 F8 N5 ^% I* r
( c5 }" b+ x& I5 S$ o5 P/ W
* V( C, U4 o$ M3 i$ }
1.png
' o! ]  v0 R: O: J! z/ G3 l
$ [6 F  p% j9 b4 {# K0 D& U
9 s" \" u" q8 p' a; g7 j# V, |/ A
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。
+ X, J7 h% @1 O
7 s) B; H6 y8 n% n6 d
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。

& w: ^, L1 U" v3 y9 u5 X

# |7 L! `- O' R5 E: S9 a9 u0 {
监控的方式非常多,ZAbbix支持的监控方式有:
( ^( p1 o7 N* |/ E

' Z- ~8 k7 l) L% |: _
1.png
! ^$ M9 i3 B7 g( Y+ |1 l
8 z7 p; Y" B4 t9 B4 }8 m4 ?, L

/ n; d$ h: Q5 F  _8 i3 [
其中,最常用的有:
0 R& [# a8 \7 u2 ^  M- Z

% I6 a8 O8 D9 d3 o0 ~
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    " B7 `  o9 J- L0 B4 {) m2 R
4 v2 @) v8 t1 l5 ~; u
8 ^- M; K# @# o; v* F
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。
    ; l. ]# A8 x+ ^6 L1 }% C4 Y$ O

3 d7 R2 X' B# o
2 s" v. E9 d) r4 K
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    & c# X9 i6 K: B. d; O1 u) g

3 A$ D$ V7 z$ i8 \9 f0 I2 P

2 X  ?+ c4 c5 y. Z
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    ' d5 H! B: S% O( W7 D4 H' ^

6 Z; }, h0 F* S% S7 R7 f

  _& \$ U8 |; z% r2 t1 U
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

5 y+ G; e4 Y& S, @9 j

" ~! @+ ]1 u$ x9 O. H9 N
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
3 B  C5 J( K  m1 Y5 f
6 E" A6 Y9 J/ h" d6 l8 U
1.png

# H; u7 t) {' {3 S- B9 i8 H+ ]5 i
创建监控项的页面:

( m2 P9 A5 O9 P4 M. g/ R
( t. |! B& z, r" Q" P
1.png
) z7 O+ I6 F1 C9 b. L' v

  W6 w0 ^) ^% j' X( a7 U. |; o) n# X$ c' E7 I) c+ G
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。

    ( `9 t1 x( i9 X/ z

/ T, c; b9 k0 }0 c7 P7 t
7 ~4 G+ V7 r' L, e
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。
    * V& L% x! d$ ~: B
  J8 c4 u$ g) g3 V: t  Q# _( z

" {# v+ p. V+ P: Y
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。
    # w1 h/ S. m; m; o$ y
: w* }5 R; F! @6 m
) N5 t/ f+ x. s1 w  w8 v
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    / u- q, K* t( `, F5 |* |

! K0 b6 l* Z4 s1 }
9 Q* {" a- g, C4 J7 p4 a, ?: \
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。
    ) o$ [+ d* ~# i& g  X0 f0 D1 P6 G- Q3 Z

' H9 L8 Z/ ~5 v/ K9 z8 F
3 U. C; @' Z* p( p1 D: T. m; y
  • 数据类型:数字的进制。
    " |0 k* S3 _# D1 t' p. A

! J, J% h; |3 J( o1 e
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。

; E# y2 W" _+ i# o

  t% b% i$ p* |0 L& I
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。
    ) S. D/ O0 Q8 Q0 @8 R, r5 \: m
3 Z* b' k: k' j' H" L& ]; ^
, {0 Z; G1 U% _1 l6 }
  • 数据更新间隔:监控项的采集频率,单位是秒。
    : w1 u( \& m/ G3 m

+ r/ ^" j- `% m

3 s7 Y. u7 p/ t3 x* A. N
  • 自定义时间间隔:可配置不同时间段采集频率不同。

    $ T) G) c) P: P; S/ U
1 `$ M- N& Z7 d# m, N3 v5 m  l' p
) W+ w5 g* o) `7 x( N1 p
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。

    & \; }( p) H3 @) G2 y
3 X9 W* b' M. V' O3 P# L' T
$ Z$ B; K0 l& p; I) Y
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。

    3 n5 r2 L5 {) i8 A7 k/ J$ C

1 B! f; J) y5 y: p6 Z3 u" T

2 z+ `2 V$ D' ]) B  J+ w
  • 存储值:存储采集的数据或者存储数据的差量。

    ( {/ ~* y3 F5 f; i; j  y; \

$ s* v1 `' L  A( x+ s0 Y8 c" d

( v5 y/ M, A9 m0 D1 q8 Q7 J
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    4 c) W5 s1 k( A1 q( T8 m) H( |7 l' Z

5 }) V! _* U. C2 R- A0 K$ A
0 a. D, ^7 X0 N% j, [( a! e0 @
  • 新的应用集/应用集:选择或新建应用集。
    8 c8 ?. l, o' J: a5 v2 [: {

4 y. S5 A" Z$ V* s; f; E# C- m+ k
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
6 u7 I0 O0 w+ o
6 K0 t: i% R* y+ Q/ ^
8.1 监控项的Key

: g/ l* q# ~; F5 ?1 [6 E2 Z
# d4 ], m9 E5 b) G* t. {; a$ y
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

, {$ P5 V* u' V
8 s' e9 {/ A1 C1 c! R
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]

3 ]/ N. {( T0 Y9 _- N0 f
: P" k+ E3 |; h4 \
举个例子,创建个自定义监控:

! P9 i1 @9 [2 ]; n' M- E& Z% i

' W3 Y# K) f3 N" O0 ~5 `
1.png
" U$ [) o# t, B
2 K$ ]& B. b8 C5 J" u- l% ^
; Q+ T4 h" |5 D$ y: d' |
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

9 R. q* T, G3 t0 }

7 E! s5 o* b, N
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:
- [, u! `5 ]! |7 O. w
4 J0 `1 F( N5 K3 H- u* i
UserParameter=key, command
- p4 }8 L) O- J; B' j+ H" y

4 O* y6 a6 v5 }: ]
带参数的格式为:

6 h- a1 L  s. R  C: N

+ G7 n2 y* V) J. a3 j; l
UserParameter=key, command $1 $2 $3…

/ i! J' u. t& t: s

" n/ T) P' a7 ~. c
添加了UserParameter后要重启zabbix-agent服务才会生效。

' R8 M6 l( w9 D0 N% X
/ i7 O0 b3 f  s: A3 j
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

0 R9 j; T5 a) n- C6 `' X

, F' i# ~) e: G( G, t* v" D
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。
3 n2 w5 S& h8 P. K0 i

! |6 X$ A* s) p- r0 D: r
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
  x4 Q( e/ T0 V" t0 X

( W+ A6 M* T: l0 _. H1 P/ h7 a
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。
3 {( q; F. _6 v, C
" C0 b# `* c7 Q- T* u* A- X
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

% O; n6 [+ s# }) S
: h. N6 E3 |& f0 \7 }+ ^& M9 z
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

$ A. U' r% |7 s
# y: @" r1 c3 D9 J
1.png

! @+ X4 D: m  S6 C  d/ M# Z, C; m: c% ^; a
# `. L0 {* j) F( E3 J( E* ~
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
, m/ i1 p, Z( r0 q* G) h3 s* r
* U1 {# ^. }: R, Q  Q* j. W' I
1.png
7 Z1 ]) _8 D  i3 W3 U0 V
; Z( u3 K& ~+ d% o) `5 k

. |5 O, q* J) V! z2 e; Q
Zabbix支持很多条件判断:

" k9 w5 M0 C* E

+ n* X: n9 r7 r7 K) g
1.png

0 C. p" T8 l2 q3 y) w5 o
* p1 u. y7 j8 L6 _+ B2 I4 \% t+ e0 G3 D9 d
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

; g  b! e; f  J# A6 q# p
5 v' {* f* l( y& o9 u7 z( C
1.png
6 D+ U7 C+ b- f" Y& q: X& i7 P5 Y& q

' h, X0 k5 L' ?% x: O. t
% m/ S, g" X8 d5 \1 g6 {
插入后就生成表达式了:

2 W7 N/ X0 x5 |4 z7 [7 V: M
) I6 K- P( G8 C3 v" k9 ]! ~  Q7 W- h
1.png

, Z% r1 F9 A6 d/ ^4 b8 K& x0 G0 R. Y! ]- B
4 E. R: l% L7 Q8 T( l
表达式支持监控项&组成复杂的判断条件。
9 ]% n- C! K6 E9 `% i. S
1 c5 e. h9 V4 m2 l6 [* q
1.png
' y( g! y, _0 k2 m4 e; z
- L; E2 P* ~' R( F# z2 A

& ]/ R4 J/ x* U5 L1 m+ t( o+ t
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
2 r# i+ K$ D' P' P) O

5 D' m* ]8 @/ f: Y5 R- f
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。

0 E6 o5 u  s% H* h
& O6 w3 X; f9 x& r( d, ^! x; f! C% ?& Z
在“管理”——“报警媒介类型”界面:

8 b, M9 Z/ P4 Q9 J2 |1 \+ |

+ F% I( ?  l2 `5 c
1.png
  d% t7 V; Z' K, M! [2 |6 ^

  b  u6 K+ b% w3 Y+ E( J
7 K: ^5 ~8 h" t* D9 @( O5 o
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。

, \' R% Y& l# q  B. B
: N) }1 O+ g6 ?' D
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

/ U+ P  S% Z2 K& Q  o9 [2 Q

6 E' S6 e% C: z! M- {' r
1.png

" W6 k" n. j, F' u% w: S  {: b
; R/ L$ T& H% T' [; R! X
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

  z8 \# J: U0 c3 f4 v, g1 B" \& {

# s% @& Z3 C; l4 X3 a- Y0 l* A: @
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。

7 V: c5 S# L1 x( u
9 z; w0 R; W- N4 r  v! O
在“管理”——“用户”的“报警媒介”Tab页中添加:

0 \$ o  m# ~5 n) M- k8 H
* u( ^+ H, y1 ~+ r* k' [
1.png

. {, V1 [, K' T2 m7 M" N* ]6 O% \" @1 s0 j% d8 n
; a+ I8 b* ]+ w& s
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:
6 ]4 x7 A/ Y" D. B" Z/ I0 b0 }' J

0 e/ Q# h! o, j( e) S
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。

$ ^/ h- @3 K- B0 w6 I  H6 g
+ v3 Q; Q% }: j* P- o* V
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

7 n, K) k! L4 K! I$ n

" M* T1 i, @4 y6 {$ l+ ]$ d0 F2 k
1.png

, X3 T$ \+ |' j7 g) }7 m' H- K% h8 ?2 k, Y2 S/ l* |
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
; b& {; N/ i( i! S: X. D

$ _) g8 q% E. y% T# n
1.png
: j- w7 S* m" C  F7 ]* [# p  a
0 O: f' c0 _- ]; Y2 ]

, F: c4 K- U3 {1 k
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。

; J( X( ^1 h+ }2 r7 R, u$ @! \

& |$ E) u1 k) l; Q/ R
1.png
! N& k, e( h0 E  `" l2 n  P
( X6 Y% ]" X6 q# q. o3 O6 Q
4 e. _) T5 z8 l- I( d8 E
不同类型事件的动作可选的操作不同:
7 ]( u& j- i' s6 I1 B# f

# n& a) F) y2 K
触发器事件:发送消息、执行远程命令
4 ^4 W  z% B) _  n1 `

- V/ N7 J7 ?4 K" G" S8 ?
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式
+ S. J5 ?: _& G3 S. m
* a$ {( r* p) u( D8 r
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

' I% `! q! b( P5 q
, J0 S0 [! G# g
动作发送消息的日志可以在“报表”——“动作日志”中查看。
6 @6 Q: w# q0 {$ {; |7 v

' ^6 m& S  y9 S
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

; V9 `+ t  T0 O! ~) O& W3 E/ o
/ q  M. s7 I5 J. N7 N) w
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:

  O3 L8 r" w9 x" V* t4 h
3 T7 ?8 G0 D" K$ ~) r
1.png
4 G/ Z. {% a$ E; m. [+ B8 D2 i; U

- K* z8 J- w1 h. Q
. a( E# Q2 k- E! e! C
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
* y! y, H  b8 B) ?

# _  L! y/ X, T. v
1.png

5 t+ i0 E9 y. v( t3 H6 d8 Q6 @9 Q0 {3 A6 v; B" R
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

; ?' L4 l4 f2 Y4 N( x7 {
  g& ^% q4 p* W* G! d1 G
1.png

! g" ^0 X2 H% Z( r1 ]! Z
3 J  C3 H" R' @) g4 r$ C# ~; u7 c4 u9 \& i& m: v1 C% }: t5 O5 B
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
6 e. |# l" O9 ]* j$ ~$ B" t! _5 C
3 w5 l6 N6 |. N" p
1.png

( r9 k/ r, u7 B# m% E2 K# l# \7 k. h
9 S9 U9 i6 }% i# q6 @5 o
然后事件的确认状态就是“是”了,表示有用户修改过状态:
) U4 p) g3 Q' n. r) s) R' ^8 V
. F/ d! R1 W; F: g5 H4 `# f( ?
1.png

( r3 L2 h& ^2 _  Q/ ~
* `1 Q4 F9 Q; @: l' z) g1 Q4 b( ?4 R' n" x
点击“是”可以查看具体的内容:
$ S6 o6 S: y( j& X) @

0 _0 q; b+ h5 L5 ~0 v- |4 H
1.png

' p1 W$ J2 s2 K% n- D3 u8 A& N" |9 F+ J7 Q% t7 I
1 A$ C/ E4 ^$ @) }! V( H
原创:吴坤
, |& Y0 A0 e3 a) w4 x; g" k7 ^3 C% @
1.png




上一篇:独家:DevOps在阿里巴巴的落地实践玩法及思路解析
下一篇:DevOps 的微服务生态系统与工程实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2022-5-23 04:11 , Processed in 0.139347 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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