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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 69|回复: 0

DevOps微课之Zabbix配置

[复制链接]
来自- 广东广州

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑 7 y" {2 t: S$ W+ c

! J, n9 n. e4 `
- x) d6 G1 X+ q1 m- W

! X4 [0 w0 g( S( z
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

* j4 b5 H9 }" J1 A

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

+ N/ ^4 H+ g- V/ D5 h) U, @
; y; P8 p" z3 u+ O
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
' r/ v# a) f- q$ t  P* n! ]/ O$ Q
9 d; ^) n  H2 k9 d
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。
! q3 _% F, f- Q) s5 u; O, p, I

1 q) ]8 G- I* O' S' Q% z
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)

+ x5 X- G( `2 W" Q* @9 N% M+ [
1 D- n3 B( k5 m3 d
Zabbix的运行流程可以用下面这张图来简单的描述:

3 X, ?. Y' N5 e" ]7 G1 g
  p; {) X7 T: l9 I
1.png
1 添加主机组' n2 s! i# ~2 D' e& K
分组的目的是将统一属性的主机归类,便于查看和统计。
& ^7 H/ Q' h: n" B
1 I6 n( i6 B% B, m
主机组中可以包含主机,也可以包含模板。
/ ^: `/ Q5 f& W* ~1 I6 z) a. t- \/ d" |
( n0 v  w! S/ w; j4 O/ `
1.png
0 N) g1 U4 c8 e% W" Y5 W4 E) e

) \/ x) J7 j; Y9 A
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

0 s+ `2 \6 e/ X

% S/ X. W; g% `; V+ c) F
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
+ W; F- g! k& L
+ }# ~6 J4 T) x0 _$ i% n
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。

4 {5 [+ E% A, K# i0 u2 e2 D5 e

+ }5 N1 e4 L4 \; ~4 V8 h; m# ~2 C4 Y
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:
0 g$ t9 _- A9 l: G4 I$ R

- u) A) O" T& K' ?( i$ f! e
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。9 h* ?" `. r, t6 ^+ t2 T0 l
, M- B$ J% T8 @) E" r

0 G! U5 z6 j5 C
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:

# b# o& B% |# }) i3 u/ w8 i

4 M- p& C& Q4 T5 C7 D  T
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
, a4 [4 h) Z, C8 ^3 t$ j6 M$ c% L
1 r' w" j8 H! n6 ]
0 B- o! r! V7 r/ b9 @3 p
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。
& ]- o) W  Q: M+ F+ T; j

, J' Z' y- N4 j8 O2 h: }6 O
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
! D1 Z- v" M+ k1 g, N! y8 Y
4 V# G3 m3 U  w* O" A
5 Q- K- t7 C' y9 R" H6 M& E; p
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。
1 A$ x% j/ {0 W

5 m- q( |- m5 e4 H: l
查看刚添加的模板:
. N; G$ ~; P2 M* y- Q( \: l

( T, H3 ?7 ?6 k' t, X! X2 Z
1.png
0 Y" }& Z/ p3 a# `1 q. \0 ~
: @0 c8 K6 o6 U- N- F
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
: n( I" r, W" U, M" E9 s- T
" S7 w) v( m9 @4 @

0 F0 F2 Z% z5 E( W
1.png

+ e5 v& q0 m/ N5 D/ u
4 H: d* S- {$ o0 V# E; E8 ^
关于如何在模板中添加其他的Items,后面再说^_^/ x8 B( H7 Z5 y4 O& S9 i# c1 M

# H; E  M" S, s7 {
: s& y6 J7 `$ U( @& m
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

% J0 F9 F' q; x/ z7 `7 X5 k* Y
( {! Z/ h! t9 Z  w6 n  \
1.png

* F/ K( S* E( x& m. k2 `' R, _9 s* e' b  d
$ k! g( }( l3 g
参数说明如下:. y: }- ~* w3 ~: {3 o2 k; a/ O
# b7 J1 E  J/ p0 r; t) I3 S7 @5 P7 ^
, b+ D1 l& Z/ U/ c6 g% S$ T  V
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。
! ]6 ]6 J5 Y! c
. l: @, `' ?7 h
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
. w) g3 p- P6 k( k3 Z7 g4 E- [. U

* \7 U, ]! E' }- }5 K& j! H
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    + u. ~( |8 R2 w/ N3 ?, B+ ~) N( J
) @3 c2 v: T; P; W5 D2 F( G; }$ {

4 C) V& C4 Z4 ^! P; Y7 t: q1 a+ e* ^
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。

    % a* ]' E* F$ x- K1 P+ j
% R: x/ H( r( V' E9 N

/ [- h' c/ c+ l9 O/ Q
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。

    " w7 B% i! Q  g

5 S5 b; H! A" E

4 N! S/ B* K$ m# `: f
  • SNMP接口、JMX接口和IPMI接口根据需要添加。
    . J% c; F$ R( w9 V1 a+ R

, C. ]: {5 [/ X& g1 s, }
% J, l" u- X! ^3 c
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。
    5 s. z8 {$ ?+ W- |4 [; {4 M
& M9 F: S/ y4 u$ b; S6 Y

" k* ~2 [9 v3 v" U5 K! z
  • 状态:是否启用。

    8 N% q' i7 l; O* }; Z3 S

1 ~. r: g; @5 @* x
选择模板:

3 z/ q* |" h% R# |3 F! [( s3 s

- R; o6 }/ |  _1 Y
1.png
* `. a/ |% U9 ~+ r- X
$ ~# c* ]3 ?- l
如果还想配置IPMI、宏、主机资产信息,依次配置即可。
) T( h- p: S: u0 G

# h- R9 c8 P9 a, j7 i; Q  z9 `
% X" i6 M" @  K' z% M7 t
1 G5 r5 y" T  ^/ Z: T
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。
% D' H+ _1 }0 p$ Z4 Z2 O7 e
9 K  {; _1 i7 {  U& g' z
在所在的主机(模板)中,选择“图形”:

$ G* ^! _" `& L

, h2 a1 ~; o0 X' }3 B  t" f
1.png
/ `) G' v- c* A  w5 ~5 K
% j3 h% M- N) H
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:
% Z/ m% ~$ N4 s/ R7 ]3 c5 S

# ~  A  y6 k, F$ ~; f" d* f5 h) M

$ X! Y! l" @; N2 O
1.png

3 @5 X7 u9 u# _2 B" _% m8 y& X+ b0 ]3 }3 E" c$ W9 R
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:
  i* g% d* H% a: n8 E7 }# ^

9 O! N3 B) s# |6 }' D
5 y' G/ E0 S, C1 Y. h7 p- }
1.png

. j3 P; G- n5 A) j, P$ \8 r
1 k$ ^* ^3 M0 @0 U6 g- I1 U& T
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:" o4 a- E/ u. Z
: j- ]2 B1 f' m5 u
8 E9 u4 d; F  X! T
1.png

) m  b# ?4 Z7 ^3 K6 b  ^9 S) T; ]) b2 h! @
( B4 {* a3 T6 ^' A4 q- w( E9 x
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

0 {' W6 }9 G+ Q  z/ j/ s
+ y5 t7 ]! K) A9 _) q: D0 G
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

1 F, R- ?: p! V0 ^. J9 _6 @

0 E; k: _( s- L9 f6 L) y; R
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

* A7 w3 h& b4 S" p* Q# E, ?! |

# [. \' ?$ Y4 u7 L8 i+ Q. v
效果如下:

9 F( a6 G5 t7 O8 H$ w$ V/ Y
9 @# O! h9 R) H* {5 Y% S
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。

& F( G4 q# e5 b0 j* F* I  P6 L
/ K! s# Y) B, X  N, p6 O: J. g- |7 K
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。

+ ~& I+ j& s0 v5 {1 V: k* r
+ h! ~# E5 j7 Y: t9 c- L
点击“配置”——“主机”——“Web监测”——“创建Web场景”。
( M( t$ X+ \; I1 r6 E7 @3 F1 H

' _! l9 d1 P/ P, K$ K0 V
1.png
2 C; z' Y  o+ j- Y1 D4 U; P
  `8 Z9 Q/ A! U4 a
名称:Web场景的名称。
) B! U# A0 F+ ]4 u; Q+ r

4 E- h" ^* w3 q7 o4 x  t1 Z) `

+ g* U8 _/ [' W9 U, Z
  • 应用集/新的应用集:选择已有的或新建应用集。
    # B* |; G8 s7 j$ x" t
5 S1 p2 v  i. P( ?% F: r6 B

* U5 _6 d% }3 H  b  _- M
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
    " Z+ U* h: P' t) F

5 k$ Z+ e+ i. t# A
" R" T. k1 o; T
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

    1 u! F7 @. u* h) W8 V8 |/ |* H" I3 [
# |/ u  ~& v) L* j, a$ C% H
' a3 ^" P6 ^4 ^; \8 {
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。

    0 a$ I* a0 n& S6 E0 i  d

+ |" I3 V# Y& D5 J1 c! {% D2 k

( x/ _$ r1 E' I( f/ R' h! V
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。
    2 ?) D- i& i( D+ t+ }, X
" u2 ~: N7 L7 J# D* r  K

7 n$ Q" w" ^" ]9 f7 c
  • 头:HTTP请求的Header信息。

    + i( q) r9 t+ T2 S' u8 J' g

3 s  D% h" Z9 A3 P* q
切换到“步骤”Tab页,添加步骤:

" ?* ~8 @( g5 X9 m+ J9 y1 A
) T' G' a. c0 L# _$ o5 {6 |; p
1.png
  • 名称:步骤的名称。0 X3 S3 z: A. s  r
    + ?/ Z0 j; b. L5 T( r- \

# G" J* F7 o) |* {: T% b( q8 c% h
1 L9 \) N) y7 M) D
  • URL:监控的Web页面(注:必须是全路径带页面名)。

    : |% R  |, H! r
$ q  E7 Q( J$ h* W8 @! I" n6 M1 _2 w

5 f0 R0 P6 @, P' J# R9 M
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    4 c* L& V8 Y  @( \! {
6 m1 \. J. P  Y7 b8 p6 R7 @6 q$ q
. J3 i1 n) ^* C( Q' c0 x: V$ }
  • 变量:设置变量。

    8 V  _" K& ~; U! M) m& |4 r! ~8 ]
- m0 }5 c" I9 M
6 y8 h% \" r( l: U; A
  • 头:HTTP请求的Header。
    . A7 _( ^" ^4 ^) G$ u
; P) f+ B) |9 Z0 U1 w3 E2 |) B

+ K( N0 K( D! G2 P' D
  • 超时:超时时间。

    % C) J( w" B" V* A" q6 I

* Z7 s8 ]' E$ i2 [& l5 L% n1 k( b( y

  T5 ?/ H+ w& e* k. ]2 C( H
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    * g# ?* \# F& _# E* ~* r+ t& J0 N; V6 J

% b- ?' N! n2 J0 }
" a! f/ i4 H7 f7 h8 D. p& H$ |
  • 要求的状态码:期望的页面状态码。
    9 e9 A6 T) M1 Q5 h0 Z! B! Y
2 ?3 O6 [* X! Z4 r3 H" v
如果有多个URL,则一次添加步骤:
( g: R5 C& k' U. E5 V
" }$ e2 w: A/ ~& T3 M: i
1.png

' ]- J1 P# ]: ?3 L( j7 ?3 `7 s, U4 M* Q6 d: ~4 M: }  X' N0 m  K
添加完成后,在“监测中”——“Web监测”中可以查看:) @' X  Q5 S1 _: H  }

7 `: s, S3 d; }7 K$ }% A9 r4 K  k5 }5 f

5 R9 m& O# i$ u# b$ R; e6 E
1.png
2 }& ~. H( `4 a4 W" |. b2 P6 K
' B( r. b1 l3 X& t+ {1 i
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
' F6 `0 R6 M' g6 I! Z

1 X/ d; Z0 K  [) `) T1 u

% A; b8 L; A. v* i# S8 |" p
1.png

, Q2 B+ Z/ W# p6 {+ J$ X- F4 m, Y- N( @; L0 I1 u

- s* @; C/ ^: z
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。

: X* Y/ |, P6 u9 f
6 o# \$ {4 |) m  F
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。
) e# X0 d0 P! V( u0 _% \

; M0 c) \& y) N9 z1 L6 d; c" p
监控的方式非常多,ZAbbix支持的监控方式有:
- E2 c$ s) _% \6 w5 y6 `) D% f

3 h2 L0 t5 `, W) V3 ~' s: N
1.png
& |- n% ^/ a4 A) `: y! |6 t% d+ u  E* i

4 R4 p8 Y0 v1 T! m8 S; [
) U! V! a) E& H0 T( \
其中,最常用的有:
3 r1 C. h( \, N; T

" N7 y) f% \2 ^7 j  P9 X- p+ t
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    : U' W* U' U) j

* d" r' ?, Y( D! I: X8 o+ m) b

$ q# h8 f2 D- U. ?$ Q, B+ N
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    % n. l9 k/ l2 P: F
* N) _! C) w" c* s4 C4 Q; d

( D5 @; H) x; Y2 l+ Y' [6 P
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。

    " o2 D/ o* W) X4 D

. ]" R3 o. T- `- r# `8 F! ~
9 r) [  e- L5 {/ G: H3 E) P3 T4 V  T
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。
    ) Z! s6 I1 b6 K7 n1 J6 n
7 R' w4 R- F  X. R

% {, w. P4 F+ P& e6 O
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

$ t8 a% U. J' C4 F1 {
3 d$ g" c0 F" e! g9 q* D
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
. Q6 d$ W8 U6 R
3 H& \& P; V5 ~  `/ L; W/ f
1.png

, T5 _: _7 e" ]* U1 W
创建监控项的页面:
, d/ H8 F+ u* E

( U# M; d, g& ~7 I) l) w' F9 A2 Z3 ^
1.png
+ g, }1 n" V5 f
( @) P: L7 ]( X4 x: N4 G) P
5 I2 e+ o2 A& [5 @4 a
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    7 f* c: r, r6 n- x

, b/ h: E" L% I) i' q, w
. w/ X( y( v2 n5 a* A8 F
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    5 r. f  U9 s# v1 S- ?, K0 o

5 g% [/ I3 Z/ |( H2 u* H& Q
2 {6 ~( Q9 B  @7 T
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。
    % E' u6 y5 @4 j  E" u
( z5 z+ N+ U* D* B  w

3 D1 \1 @. c+ }+ y* V5 g6 J. h" |, a7 e
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    0 a6 b2 T% E9 f7 S
# n% `; M4 T9 Q0 _: I9 @( P, Z

1 S0 h* v9 K7 E' y. A: B
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    . X: c1 P* L3 B  @1 s/ t0 _

4 o7 _% `( H, n& `8 g# G' M
6 H' A1 D# E9 n" P9 A2 Z7 q
  • 数据类型:数字的进制。

    % M" `$ V/ N, V" w5 S* k
) H/ T+ G  j9 ^) y, i7 P; p
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。

6 V+ Y$ T9 f( t$ a% K6 F

( X2 A. c7 ?+ N. }% c
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    1 A/ I9 o: J4 a3 N6 W$ D- o2 c

3 a5 b9 n; E' D' B, z9 L" Z' [

9 a2 u; X" S$ m/ I/ H
  • 数据更新间隔:监控项的采集频率,单位是秒。
    7 V# t9 s7 _% j# s8 e% m. A/ q

/ u) @$ b9 e, J/ W: w
( o1 x9 c- P$ T* ~  y
  • 自定义时间间隔:可配置不同时间段采集频率不同。

    7 G5 [) ~9 M" E5 R! G3 Q$ C
+ l; J# |( {. ?7 M  T" o/ g

7 o  P; N9 l: r# q  U. u
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。

    & r6 z8 `) ~- g5 }9 U9 J
" l0 j! A% p6 N
+ U) L& H  }- ~5 Y3 r9 j! J
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。

    % _7 V9 n2 y) f+ O  b0 I# N

& \  V! r" M( \; i+ N, }1 e1 m* S
6 ?: s! G$ f" P9 {4 i
  • 存储值:存储采集的数据或者存储数据的差量。
    . N# Y+ B6 h+ }- @4 s

, f. `6 I; k0 W0 d

3 i1 }; Q; P6 Q4 m. J" ]4 \, H; J: u
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    ' O* h& `2 i7 J  P
* T7 F# v8 x( g2 k3 [( B2 I! Y( v
7 T/ V7 B4 E4 N$ |
  • 新的应用集/应用集:选择或新建应用集。
    - g2 F) X* P% b  v9 ~- q! Y

8 F! Q# k8 h9 [
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。

. A, p; v. c3 j% u) R; O% h$ I

, D! C# E) x1 A0 b. h
8.1 监控项的Key
4 g; V8 q7 `# T3 @$ V

) R% C+ ~0 d% ]* ~& u+ j5 p* U
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:
, }2 k# }" q+ H4 y& ]

$ l/ {. s+ m- T$ n* h
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
, S: ~9 P- ^, r6 ]! ~
+ W) L' N# l9 C3 Q0 C% z" B
举个例子,创建个自定义监控:

4 S- k( X) N0 x3 b6 V& c

; I* n; t+ j/ N% T! x
1.png
: J% a  z/ X2 i3 L3 D- k3 ^7 [4 O

  a: E% f5 l+ O; x+ n" z
2 g5 |/ z& A6 `* v4 _( f; a8 S* A
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。
& V/ {/ D$ j- @% ^

7 u) v& k0 b9 j5 Y
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:

9 I. U9 |9 Z5 u2 g- W% m/ K

4 v7 ]7 Z4 H  ?) c
UserParameter=key, command

. P4 c6 h* P$ F+ h3 O) E  Z
; J" a% W3 X# D# j& v, S: z6 g6 D
带参数的格式为:
, u; m: s$ x8 ^% Y" E9 \

* v( G& I' e+ M0 }4 |' h; w4 g; O
UserParameter=key, command $1 $2 $3…
% m7 r  ~; T. _7 y; e8 p% L1 V8 ?
( Q2 l/ F& \" t1 ?7 m; A0 X- z
添加了UserParameter后要重启zabbix-agent服务才会生效。
8 m5 S( y9 v# A3 b# @2 W
4 N5 s9 H, w  H  ~  m( @% d1 @
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

( D3 w2 B/ l, w# Z. b4 w- {
& G/ c) x1 d8 @& ?
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

& B4 l; K8 O. O4 I/ N# i# E/ }

+ U: ^1 w4 {3 ~0 _( t
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
2 x  d. [( D/ \3 i/ F3 G

+ a# e) m7 B# `
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

) Q1 v/ z) P6 T. g  o7 P  R1 M

. u7 g! A4 g  ~0 R
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

* s9 b3 P0 ~0 \' B# C" y

5 k! y. w6 J$ n
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:
/ B2 @- F; W' m# T3 O6 c( l

7 P: m$ H( q- T* j
1.png
* O. s8 V+ {! K+ V
% ], Z: ]0 Q& p) i' q

/ d" d, @$ R2 i& \5 ?  D2 y3 b
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:

) J3 A3 {! |! h9 R3 v  l0 J

/ l8 Z' B1 R, x# C* v( O& A  E" E
1.png
& Q! m% q, F8 w% {( M. z; |

# j$ m* Y, |0 x, I' N7 S7 c, o* T$ `' \
Zabbix支持很多条件判断:
& L; _/ H/ d7 t3 m: h
+ z* p! E9 B& n/ Z3 g1 \
1.png
- E% P. K. b; {  [! b

( z* w: e; k* p- M) q" F7 F' |! ^$ J5 ~& }
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

. K6 n1 N( c9 ?" L

, D$ T4 Y% G4 [# Q% S3 R
1.png

% X5 v2 ]  ]% n  B/ U8 G+ P6 m4 Y3 w3 T

4 D* i' n5 T+ p7 t; l. r/ u
插入后就生成表达式了:
: S4 g/ z& d$ V( E. Z6 C2 x
$ f  W- T1 D2 W" f* L) n
1.png
& K5 z+ n* S4 F& w4 _- S& [

! _" P% O5 s" n% q( p! n# c- K" k! m3 \2 M
表达式支持监控项&组成复杂的判断条件。

, u" Q, F0 T9 ~' F

6 @! J5 y! F9 I" z/ u. \
1.png
# f( q; {9 {8 D
( @/ @# T  |; }+ |3 w$ {0 d3 R, u3 _

2 z, F5 {9 F, k3 }0 A
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
: ]9 O7 B! t" B& p  L, ?7 W" H

4 ]' f% K$ W9 ]8 l* j5 W  k
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
' n- E* v+ C2 x  d6 I2 l

! i" A! [7 q1 K+ F+ P# T1 f
在“管理”——“报警媒介类型”界面:
' S5 g; |9 N, d6 l$ o
6 x0 ^2 E( R) s: {, c; M
1.png

& J+ Y5 [  p; n+ }' @/ z9 M' V1 e" @3 \' w& N* u3 [

' o0 b* i0 k- R; k% b+ V
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
" T  i+ c/ w. C5 B. `2 t9 M
# N  m  T8 \9 p! R4 `1 i9 X
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。
' p$ e% f) N8 \

. E* d! M+ r5 ]! n
1.png
4 A1 e" q8 O# [
6 t( N. r9 Z% I( D5 {1 D+ V
: P6 X! I5 k4 k
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。
: t% D7 v$ v) s
% q* X4 U  e. k% x+ F6 q& z, U
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。

& f/ U/ D4 A4 V: @9 K7 a- O. v# B% A
7 z( Y4 d! k1 C! ]* ^! s. q. E
在“管理”——“用户”的“报警媒介”Tab页中添加:

- H# G$ A" b, h" o; J! t- f

7 k0 L: ?# k$ G; m9 s
1.png
- [6 m: n, \$ @  ]9 G9 j4 R: S6 k  t, {

" ~+ ^4 i# N# m$ X2 ~/ X8 C5 a: r
& |; i& \9 ]7 K  R. q
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

3 y' m; W) T" ?. M

1 G! v8 R. I8 _5 s3 X
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。

& t7 _0 g9 z- p3 E

& w# _+ x4 c, R4 P$ G7 t
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:
9 x& f1 F9 Q1 `6 u0 _( Q

& |5 R% M" w$ w  {8 p' `* {4 ~
1.png

/ d. s5 b" `7 ~# I# W
8 g9 X  y6 o: w
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:

. {+ G" D( j3 b9 {& m
  Y+ d. @* T! ^: C
1.png

5 V* e3 b5 E7 A8 I3 [" k
% P# b7 X. v' u) @9 O
& R( o  c( Z1 l3 X
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
9 X' y0 I; c2 y4 v
* I3 X9 g7 Q  X' L
1.png
2 I5 [; x4 l: V7 \

" i" I: u& r3 E% [# N9 L( I9 P: m3 [  j$ R8 C# V
不同类型事件的动作可选的操作不同:

. w5 j, C, m* J- b# N- k. s
4 |* S0 I( a& N7 l
触发器事件:发送消息、执行远程命令
; {% F9 c' z! n

$ K" D8 |& w: U/ U! R  W
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

/ \3 j2 o% _) `8 g
9 [- p. l( b, p8 H+ [8 m/ V
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式
* c9 e1 W8 [5 `9 e, ~! m+ q

; N. B( i; p* \/ @8 l
动作发送消息的日志可以在“报表”——“动作日志”中查看。
9 Q: j" x1 c- P! l7 O& j
& g+ t! A1 l- u1 X# b* z
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。
3 ]. W, L( d+ s  C' u1 x

2 C  u& T$ W2 b( a& ^
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:

! O9 z3 B5 o6 f" u  ]: Z6 a2 y

1 n% ]8 m  z: N& i6 g1 S; g
1.png

! F) v$ |( a* U9 T" h- V( W& B6 m7 c3 O9 j; s( b6 [

2 s3 N" g1 U) f0 ~/ t# X  b
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
: D. ^% Q" I: q6 Y# Y7 M
& |7 V8 e# s! d
1.png
  L4 o5 G1 w4 v, i1 r
. W/ G5 r' w, s" @7 B; i
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:
" s) N) e, c; S) M' s- U
; t4 _4 {" @% Q9 l1 Q
1.png
- C/ X4 l+ m* b! ]
* W2 T, a( g7 v, @& F/ U. f9 O
1 s. U9 P6 m  M+ P) D' f
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:

4 q9 u* u& a; `+ `" B+ _' \! D0 I0 l
% y3 s& n' B" V5 v4 U5 Z- H
1.png
. W, D7 q5 }$ g4 B% j3 |1 `
' f( a0 a" L4 x4 O
1 \+ c- O  }4 z/ \0 b/ Y# R
然后事件的确认状态就是“是”了,表示有用户修改过状态:

/ A4 g2 J; |* |7 R/ j6 j' f
( y1 u' s  X7 o9 i) d* Z% x# f
1.png

: |: t$ [. X$ L. P: z8 `1 O# V2 C' N3 Z& o+ p* q# c( ?$ G
7 f) g( \1 b7 w& z2 B; b. f3 s
点击“是”可以查看具体的内容:
5 V- Y  h2 {" ?6 x- r, `
0 Y  [& c, o, b5 L: L5 c
1.png

: d$ v- ~  V3 B$ [9 Q, `( J0 I& ]5 ~+ t; D. k) M

- s, A7 s9 j  y+ ?; A" @原创:吴坤
! f' s0 [( @/ A7 X* N6 ^; k
1.png

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

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

Baidu

GMT+8, 2018-11-20 04:31 , Processed in 0.253216 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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