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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1918|回复: 0

DevOps微课之Zabbix配置

[复制链接]
发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:38 编辑 5 z$ \( {4 D+ y" E
% M9 B/ y$ M/ Z* L+ C& Q9 l; m
4 \9 ]3 i. t/ D" M
7 g8 y8 z- T9 w
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

, u+ p+ \6 x' y
6 F9 @- x7 `+ j. h* N, p7 g. S6 z) T
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。

1 c! J# ?6 [% d8 E" V; Q

" L' Z9 O- w: Q) l
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
. B6 S+ a0 v- \: m5 `
7 Q2 y! Z1 R; `3 K; A8 D
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

/ H$ a7 c6 k7 j1 I  T
/ Z, \' |, @( k" R' @
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)
+ X/ K; z4 \! t4 b

8 G' A  k- `& C' z( Z
Zabbix的运行流程可以用下面这张图来简单的描述:
4 q& y" R4 D# u- P# t& g
2 R) c; U2 {( {5 R0 a6 f. o( S/ L
1.png
1 添加主机组
) H' q. }5 Q  t0 u( X
分组的目的是将统一属性的主机归类,便于查看和统计。
4 g) m' J" L0 G+ b' n7 F" X
- B% E8 l4 O% ~4 `/ g6 j6 S
主机组中可以包含主机,也可以包含模板。

6 f) Q* r( r8 ?! _# h' H2 Y

  ~' V3 c* X, l$ j4 @% N
1.png

+ f$ O% K' f. Z: s  i0 t
! B0 L; c* b- W; b0 b  ?! ]
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:
$ n$ e: |! G. {) b! W

( L( b: o% }* n  Q' ?
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。

7 F. L3 F- f" S. a* W% F. G, z
8 p7 j$ b& t2 C, m( Y
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
  ~1 p3 i5 m; f0 P) j& d5 k
  Y8 C; f( D) F) s' J& k
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:
3 L! t9 q- e+ f  o" n2 j) i' Y( ]4 z

: k3 C9 R4 Z& Z5 A2 C
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
# R; d) m# [9 Y/ v

4 }" I$ a) v; p* c1 m

+ [5 r7 L9 r: h8 A' U0 c
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:

3 V5 u  T& g3 h
/ M* k- Y% x3 x/ G7 c
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。, q9 v9 f1 ]8 h! f, l. Z  V$ S9 x
0 V; m, W3 C$ L+ n$ ?" H

4 M7 Z+ k" e( `/ V( U" y
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

% Q" @( |) T7 Z  `+ y& B, r3 j
( y# r7 o& P& G7 q5 h; ]
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
( R2 v4 B4 C( ~* i" g( X
4 ^6 C3 U" p- Y8 l
% A! ?" Y0 L2 Y9 G5 o
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

; V8 f& E  H2 V6 l& U
/ \  ~5 I3 H5 {) n2 p$ k
查看刚添加的模板:

2 t7 R- B* @: B/ L; G4 L8 k

* J" r1 j/ V; N6 x. ?0 E4 @& K
1.png
" u0 N0 N& t) s5 k, d  H

( @$ ?" @; H& H0 T3 C0 p  v5 T
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
# n. D/ U8 F5 L' D0 t

4 R  C$ q5 f/ |8 F8 |& H7 o) T
8 |! `# }; Q- Y; n& \% O
1.png
1 R% A+ N: D& }0 g+ {5 U, W

  k& S7 v+ v, Z, I, x# o
关于如何在模板中添加其他的Items,后面再说^_^
/ J2 b  H! ^4 b

+ p, c, J# G! N# D% ^2 N! e

& R7 a. q' H+ g( A% I& S9 Z
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

" |. t  m/ C- k; n4 b# L: I0 a
/ I3 t8 l* e* ?6 m
1.png

* a% D5 u0 L* o9 y. V( m; D

# @( e; B* w. B6 M
参数说明如下:
/ Z4 r2 B0 x6 V
$ L, i, l( Z5 Y* ?
8 P, ]( ]& |) k/ \
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。

% ]5 M1 {' s, G4 g3 |

1 S3 J9 M# |, T, E+ M- l& @, c
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
' o7 H5 p+ ^; a7 s1 _

0 b$ i! m2 n& H, S0 B6 M0 _) j
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    + R. o; J2 Z$ U/ [4 H
6 j. x; T8 Z' t$ s3 w- p

4 j" a2 K6 ~% X* k3 e
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。
    " ~" T# g& z, j3 {7 M
0 |8 T. L* ~, v% r& g
/ M# }# N$ u4 b9 W0 b
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    9 t% t; A/ t5 S& G

* g3 |0 y3 U$ `2 n, v0 q

6 f! p6 D& f/ B5 `1 T! p
  • SNMP接口、JMX接口和IPMI接口根据需要添加。
    2 e- `. A# @1 `4 p% a. z
7 v$ i  P8 M7 q# L) }" v1 u! L

; L' V! a3 h3 w& f  I! b
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    6 Q* H2 `! O2 h4 V+ S% W
/ y1 P6 G% l7 M+ ?( y
7 C" G, ]8 ~. R: n- n
  • 状态:是否启用。

    $ D2 \' J+ `- Y$ L
' f4 L% b0 S8 E4 b) F
选择模板:

3 v4 q/ x7 ], C) @% F

5 h: T3 V' H  b- s0 S! n
1.png
1 L$ r; U2 e! y1 P  n
" j( q  |! J# @+ E+ L2 y( H
如果还想配置IPMI、宏、主机资产信息,依次配置即可。$ e( [* A& x. g/ I4 O* n. K0 y1 Y: ?- _
6 A6 b8 I4 b7 M
. k2 C0 o) Z1 v: }# x/ W

, n$ @: Y7 R, J( x( ~5 ^
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。
9 S# J$ l$ I2 g# {* v. S0 H
# I$ l: Z6 h. y% ?( X) J9 O( D' }9 S
在所在的主机(模板)中,选择“图形”:
7 W. P% L) Q1 T$ F3 D% @; J

3 i9 V6 E- G, f/ u8 ]
1.png

2 D- [) v4 `- {% m) T
: b2 _3 d- A! F: t/ J* F$ W" s
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:
0 q) @0 i; X1 E  r

' a/ w- z& o/ W( s8 _
3 y# E+ ?. @8 o
1.png

. w0 `% J2 S$ c" ^+ V/ l
( i  j4 s' Z+ r: t) @* T6 p% O3 Q
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:7 w' W' \5 s# G, k/ V

/ I3 k0 P9 ]2 r% d- v  \  D

# U0 z; U+ C1 @
1.png
' u9 f' E9 t' l5 W
8 D3 q8 n5 X" r) t' s# T# ?% Z
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:
/ s+ T9 g% Y6 T+ K) B- X8 H' q; H

6 o: Z; k0 B! e6 V( y; \

9 y5 }; H0 V  R0 ]! M
1.png
4 [' i) T/ J, U+ {" t

5 h9 g2 g( n. G; r- R0 f9 t+ E9 T- l- K' ^
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

* ~' g; C2 }8 F* `* x

) {# s9 `- M. Q
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

( r; z& I1 `3 H: V* B

' X: Q& [# {# ]& R% u& s1 i
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

2 i, c, }3 X3 J5 e. d9 b* J( i

/ s, E+ W( H( Z! l7 E
效果如下:

7 q- |; i' X+ Y3 w2 D
1 K0 Q+ |( D6 O5 E& p+ E0 r
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
. W4 C, C4 o+ w* t$ [) f
( V* J; k/ E! I, [- K
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。

) N! W  ^/ _$ D- K, M

$ M# \' j. b3 H; k
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

3 Y: K" V# p$ Q4 m
% m* J" L+ K5 M/ V* x
1.png
) Z* e/ t/ Q; }
7 D& m/ [( E0 S
名称:Web场景的名称。/ ]6 _$ T% |; w) G" {" T8 C) O

; I' W# [9 z3 k6 M

3 A' |( [& O" d) ?
  • 应用集/新的应用集:选择已有的或新建应用集。
    - C" s: w, Z5 s1 U2 Z8 T) l. n
: e) h/ r; [! C! b, m
( w! G+ f0 [: n& l8 B0 t. Z+ m
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
    - N* x9 H7 `" A" S$ Z
7 v8 |- V% V& @' R5 Q. B" k

+ F+ C1 O7 G& M
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

    , T; M3 r; B% e) c6 z: w0 B' n
/ u0 W5 s& a; W! d8 {
0 u* F$ x4 x- D. _/ R7 S
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    5 O% M0 z8 L1 i% t4 ~& i% k

& v% p2 }  y6 t

7 O1 T% g1 N9 A
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    0 F* H& a& Q/ M0 E
8 X: b/ L- {! h) F6 U$ J
- U3 A* Y; f9 j% O- G9 x
  • 头:HTTP请求的Header信息。
    / T+ Z2 z6 C0 y. n
$ E0 \. s, b' ^7 }" ~) C
切换到“步骤”Tab页,添加步骤:
! ]1 P$ h2 B$ j" B% c5 V# v: o

& Y4 o, |( y3 [* t3 x0 Y
1.png
  • 名称:步骤的名称。; a8 C5 @; M6 _) C& c  I. N' j5 N
    " w9 }$ N3 a2 l2 y" b. o+ V9 `
/ m0 a  Q0 @, [. s* E0 X
/ Y! _* z$ L- o# p; ~! R; O5 x
  • URL:监控的Web页面(注:必须是全路径带页面名)。
    # S, P& I$ f2 F" |

* D% L+ Y7 o$ f, r7 y( r3 X

& y# J: p6 M9 r
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    ' `9 o- X% u0 ^. K# [4 J3 Q
3 r. p% L: I8 F
, T5 G# H  \6 M6 |
  • 变量:设置变量。

    & K! B7 V6 x5 s
6 g* F% u: t: s/ \: O& h
( s- X2 q8 ]4 c- }6 }1 u# h/ P
  • 头:HTTP请求的Header。
    0 ^  E: Y9 m* ?, t7 G
! D8 ]4 m1 M+ |5 D' W1 X  J$ h

1 m& Z8 W: y' e
  • 超时:超时时间。
    5 w" d/ V' S3 ], q
+ w5 I; Z) z; e: D- \( O$ V

6 e/ y! b. g. \* `4 O( h$ ]
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。
    7 F' w* H& @8 L2 R, {# }

( Y" G) R% X8 |/ a

( r3 V  l) y( A) O/ }
  • 要求的状态码:期望的页面状态码。

    * H' i. ]& v: H& |9 N1 Y

  }6 f" y6 x1 b. y1 j/ V2 [+ d' I
如果有多个URL,则一次添加步骤:

- z6 h; P# P. T

  c5 h: ~* Y3 o6 j$ P
1.png

- _" l4 A0 y2 C( h- U! W' r& A' v  F4 G: G1 x1 P
添加完成后,在“监测中”——“Web监测”中可以查看:5 q5 n3 o) Y# m
7 {. _6 L0 {  U; ?4 d# Q
) a6 ?; j1 R  d2 T6 x8 y
1.png
6 m3 L1 |9 n# e5 g+ d: D6 J9 A

' `( Y$ L- ~$ K- s$ [1 q3 J
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。; V3 M1 g9 V5 P/ C" U4 C
$ z" G9 y$ T7 _; i" x4 O
3 H( Q+ y9 T" s+ G8 U
1.png
" K+ [; \/ m: _; W- l& _9 `
7 O$ p$ b: D3 k5 N8 j. w1 @% a4 z
: j6 c3 m* ^+ u6 d) y+ w; |
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。
  r7 L& m8 C( i4 |7 _7 R6 B

2 F* A6 F( Q% P' K& z+ P* m
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。

9 z1 `. g2 s( O  f+ G

* A' l7 b& H& B  w* A* r
监控的方式非常多,ZAbbix支持的监控方式有:
/ ]0 ?7 n+ p, B% R3 n' F- i4 `1 s0 G- Y
. b+ `9 F. d, A  G
1.png

+ P& }# }% s' q5 c, x* w8 t6 c1 n, ]" }( R0 L& }& \& s

, y7 _0 ?. H6 _. ]/ [% O& e
其中,最常用的有:

/ i, D+ C; ^/ B

6 o* V: C6 a2 b$ _
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。
    7 F# m9 k: j% d, I8 d$ b7 f0 F! v
3 L! [9 s( L# v+ n& H

: j( ?" s8 ?( L& F+ s/ ?! Z
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    ; N  v' E/ K8 |
1 X' k  f3 H1 x( {9 l2 m
/ w/ `# k$ e3 }& a  w: k
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    7 H- h, z3 |! k3 V: }7 o
5 D8 g: t% E: J( z. Y

' ?6 ]( _( u2 i7 s' V7 M& f- C
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。
    0 C6 N9 h* C1 m& V$ f; N1 D  }
7 i' J/ l, [: _( y- g) c' Q

2 c7 Q9 o- J1 I; v( \8 i
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

& k9 x2 V0 L$ x& x" Q+ A
1 M" @; O0 X$ \
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
0 _1 }6 W: ^0 L) y" y$ m
/ A5 Z, Y+ q# E
1.png

$ T, V: t6 j8 m$ j2 ?# @5 g5 Z7 u
创建监控项的页面:

; l% g) q, M8 A0 j8 q
7 H' H/ U/ S. R" t# Z& t- L
1.png

9 Y: D% w% J4 g0 F6 a$ V' D/ X% ~
( x* v5 t1 D$ C" e/ G
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。

    $ ?" G1 _- A* l9 H1 B- u
$ B5 Y, U1 k3 B; ]9 L
6 K* D2 _! ^& D
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

      o& Z, h; N1 w
5 }  L" e1 ]- A5 U: [3 ]/ p
- J5 t+ @1 g3 m9 i8 U, L% @
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。

    , ~- N* J: V& H

1 L1 z3 y9 ^# A) G' y8 J
) P# `7 O% Z  F/ ?1 h/ }
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。

    " t* Y8 V1 w; z; L; M
2 F' E; t0 Y) q5 b

0 j; X: v5 T3 R2 ~" d# Y% f
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    & z/ t0 b0 I. P7 R) t
" K+ C' ]. i# H. R; T9 l

# v% f$ q- m) w. M! y1 H
  • 数据类型:数字的进制。
    * E. B7 u5 U1 F
4 z' l6 s' W" K
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。

4 Z# f+ f5 Q/ u4 \! N1 J, f7 E0 a
& P; i! h/ ^  C: O7 X
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    # s0 y& n/ ~4 I$ i, }9 r; ]& b

/ V- V5 r4 d* d. h! P3 r" W

4 N; {* H/ E: I6 z, o) x: b
  • 数据更新间隔:监控项的采集频率,单位是秒。

    , s* u- L( d2 \  T
0 r( [4 j% ?3 P

. _$ V4 v6 p1 s  P
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    . C/ C3 m0 O# N0 n' ?$ |) h* x

& Y- G4 z6 ^+ o+ ]
. m) ^1 @4 A" c. e7 k1 B5 Z
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。

      v9 d- E/ {3 l* ~0 [
( y, Z1 _# L( _
. q- D* b6 I0 A' l* O% q
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。
    9 J& R: v# G7 _- }" X6 D+ a
6 {; T8 `( s: h
) t! l# ]9 v3 @$ e0 P
  • 存储值:存储采集的数据或者存储数据的差量。
    % b( Z% p* L+ ^) M! ?0 _6 g
' ]# u  N' H2 O& p/ K0 k: `
% }/ r" l; `! A$ z) r- N: F8 v& H
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    ' p2 t( ~4 ]! _) e

" p6 x7 `* ~. i3 L! v, w  o& U
2 I* s4 A  l5 i7 f% g- }
  • 新的应用集/应用集:选择或新建应用集。

    8 v& j5 _% j6 [; X. B0 ^
" W, q0 _1 a% R8 [; P' h' i
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
' u4 T) f4 o3 M6 r* ]% L1 q% G
0 k4 P( a, e8 P: \
8.1 监控项的Key
4 ~2 R: n! Q) E% J# h

9 y% a' \! a/ |9 F# X
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

+ d1 s- i) w$ k4 y! ], l

+ e, M, J2 M9 M8 `  |  E2 r
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
( a0 C; h1 I& g: w& K5 V* P
' Q+ _5 a0 M0 V* r8 Q( a2 N
举个例子,创建个自定义监控:

8 O  l# l8 z- o& w

7 E# l* P. u/ L0 H' n, I8 T
1.png
! u3 L2 z, h! }
5 C! z7 F4 S$ j1 Z: C

) N2 F5 R+ c8 R, F- k+ M9 p" D
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

7 ^: [* t0 H& F
* z0 P5 i% t: Y# d) a  s
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:
2 o. _' ?% ?! \
8 r: h- d3 {# u2 ^' L& {
UserParameter=key, command
/ J, [# c; u; V
+ P! L, F& S6 R' r8 [
带参数的格式为:
" K! o& J  |+ s" N7 V
# w* L. f/ ~5 D  q4 m
UserParameter=key, command $1 $2 $3…
9 W# P4 U; I5 r6 I. w" ~
, w  O) z) n3 n; u+ h( }0 x0 `1 @
添加了UserParameter后要重启zabbix-agent服务才会生效。

6 E. \& c7 B# O4 Z

$ Q) w, S1 n8 z. T3 r- Q
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

6 Y0 C3 x& U9 U$ X1 n2 C4 S- l
7 r" R" |  L" G/ _  U& n0 O) s4 j
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。
/ m3 y9 ^% C$ ^
1 ]! G' s; K4 o8 A/ R) \( q) W% v! A
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。

/ X# J& _; `+ c4 ~) b
- ]( d' i' x. T% j- C, ?: ~
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

  h6 ~4 ?$ X$ s' \: @& s8 S9 g0 R

* d5 G" H' D) _% I& [# P) Z
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

% ], }. W: W$ F
- G1 I1 R# s- H" D
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

% P: |) B0 U, Y- @% s

/ n( Z- z7 l8 _" D8 H" U
1.png
8 f; E9 @/ ~, }7 z8 _7 O
& m+ y6 {& ?- `! }" @  y
) x2 c3 O6 W8 I3 }
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
! Y. L8 M8 Y! E0 |% c" E4 W, E0 y

  K" `' P# X7 D% o
1.png

. |) J1 \' i7 E2 I% E. x6 [1 [. a; Q% p; e2 T% b, z# {) m

" Y- e6 v7 z- b+ [5 \8 U- L* T" X
Zabbix支持很多条件判断:

; V8 L: J1 X- c1 R

% m# n/ x# `8 z# r& \8 a+ a6 ~% p
1.png
1 N: J. e; U: U5 P8 l! g

0 x1 f( B  ?- c: d  w. w5 @% v, ~2 @, L9 w/ V8 u
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

0 Y; f8 \5 `' _: H3 R3 b- m8 d+ _
6 ~1 A8 Z- F, L
1.png

/ }4 n% [" `; v9 J3 A
" C7 D3 x) f0 E0 J$ {# ^: O* A- G: q( p/ J
插入后就生成表达式了:

: {. V- Y" s  [3 n
3 T* L/ o/ \8 _9 k3 H
1.png
" s, Y3 t! p! ]5 I

5 D3 W1 b2 y0 O* }3 [- E9 Z, E4 I& ^. e; w3 Y
表达式支持监控项&组成复杂的判断条件。

3 a, P! z  b' ~
. W  l8 T. n& ^. n& Q: ?6 v
1.png

+ H' @2 I2 s, T
& n0 k$ R& N# W8 N, D, O& w# Y( V) ~& o' ~5 K4 T; w
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。

; D4 a9 ]- |0 ]0 x+ l

" |5 G* a9 s3 x7 b
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
% [+ H  U- F1 ^! p; h

( x9 n7 T+ b" |5 O5 M
在“管理”——“报警媒介类型”界面:

" A' m, k+ R# |* T4 z
9 }/ _3 E# E- N& p6 U
1.png

: U: b4 h, K' w1 [" o, u' j6 d0 W5 \! v5 v) k6 c
# R5 t. W' a' V: M( Q; v, {
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
; X3 e2 y0 |9 @

- b' B7 E: u7 Q* @6 q- L
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

* g" [5 s; r. R

3 A8 Z" z) q+ b5 K6 U
1.png

, K4 g# G, v# N  {
+ B& |' p/ k; C+ w9 ?  ]- p& A; F5 }4 E6 a: B) Q% m
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。
0 K. D  `; g% d; [, w! }# ]5 g

6 r- s" r8 W3 i4 Z5 H. P! `
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。
* D2 h6 V" |: O" b" z

3 H$ p6 X( O$ X. F3 k
在“管理”——“用户”的“报警媒介”Tab页中添加:
5 U- Q6 @! U+ n+ D
+ }$ \7 H* s: S- s% f4 E
1.png
5 F- y) e/ g; t) R6 m. V

6 [* f5 `: r3 c7 x! B8 V1 }% p# l  \
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

/ P% r0 m1 x( W

$ ~( K9 @8 p  x
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。
4 n5 c% |7 c# x2 l4 `
0 v, j, f) H+ y2 [
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:
0 s# b! K: o7 u; W
- W2 m; f( o7 U( G! N% J
1.png

1 d) W: Q( m) \; h
. \  u8 P% t8 M$ G% g
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
. T4 J* `, ]% g1 l

$ h# Z$ }  F: V
1.png

4 C- J# D! R, D; }  N+ S" p0 q' r& b
5 F, q# N/ Q1 {7 P8 I
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
. M7 p, D4 d' V
2 }2 T0 }+ k8 r. T5 i
1.png
; h! g0 l- [9 K1 A# b1 p

! f- T" u. ?; j9 W! i  w/ ^" }; F- \! B* Y3 ]7 W* e: _
不同类型事件的动作可选的操作不同:
3 S$ j; _8 G- [, B# `7 }
, m9 n# T6 T1 I
触发器事件:发送消息、执行远程命令

9 `1 L" l" O) a8 q, V# t; I
9 b8 J6 R0 Q, f2 K9 J
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

$ {. ?$ i5 R4 a5 d

, {9 ~) j  B7 Y0 V+ a% O
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

4 D% L4 Y9 S# C* Q

8 p4 [: k/ ]5 s6 g
动作发送消息的日志可以在“报表”——“动作日志”中查看。
4 O3 y$ u4 g* V9 u
1 i- I  k- U9 n9 k
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

1 ?/ X& J& W' M8 N
/ n! u: N. Y) G5 A/ m" {9 h& r0 f% d/ J
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:
+ _+ C$ ^& k/ c/ Q* S; Z; i

# g. t$ Z' N: X3 w7 Z
1.png

1 ~  b2 P' Y! ]/ E" t" d0 h" V, b( ^& \9 z5 v- Z+ ]" v2 u8 I! ~5 N
1 x4 k  E# y' ?
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
5 G/ J) n9 {9 L! @5 J; v

+ M" \6 e9 D2 B# j
1.png

8 J: M/ u/ r" w; B. J2 J! k+ l  W6 r' S+ i- k8 e$ h; |; O
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

( j) m3 y9 `: E! d% f
% @. @0 e- {9 ~( V$ T# x
1.png

8 D( U! q, Y' d0 D; U: T  w1 z# l# Q! V) A; R5 R. ?/ _

4 J" R) O) U6 @$ z' J2 Z  B) C
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
+ \6 s4 f( }! g, G6 u
' @: y7 e5 U/ U- Y- \
1.png
& W* W" }$ h. h3 y9 K. @- k8 K
0 }/ y1 |2 |' y1 {( G  b

7 t" K/ b9 p5 p0 E% E) m; R7 Q
然后事件的确认状态就是“是”了,表示有用户修改过状态:
! q# O, o( }4 F3 y# w

: {4 E- |2 D  K
1.png

8 f) Z+ t- c+ U7 g( ^4 |* W8 u* l" @/ \/ G5 v5 V8 t6 M! ]
; S% l( {8 ?/ R% o
点击“是”可以查看具体的内容:
, R$ L3 z( q: M

9 b3 ^7 g0 n1 e' ]
1.png

3 r% l, D+ p0 Z! V" L) {4 O* t) L2 o% l$ n) G9 h" R: I3 m

  D/ a# f" |0 V  x原创:吴坤
& j8 P. n6 \' K( C' w$ K* C
1.png




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

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、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, 2021-10-20 18:13 , Processed in 0.127967 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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