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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑
/ \- r9 s2 n8 ^+ Y. ]# c3 [) s& l7 a$ p4 }

- S# T8 V" _  ?6 N
) A/ C1 q( f5 U! ?% J! w
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

3 _7 [9 m9 a* |4 k

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

' Y5 U3 a, q9 _8 t& U8 U
& {: [/ ]" F) ^9 z  M% d* h2 t
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
* o. z. A% k$ j% y# b+ U3 ]7 Q

/ g# N" b$ @. a# n
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

& {* i) ~$ j) m6 D4 A7 J

  K! {. z$ `7 N- a
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)

; r+ b# r4 v( a' y3 F9 K8 h3 [

. W3 j0 ?' u/ D
Zabbix的运行流程可以用下面这张图来简单的描述:

9 m- i) E6 m  L% x* w

0 w& h1 k. g4 k( K+ \+ n, z6 D
1.png
1 添加主机组
) V* J" }  f6 w( Q1 M4 d
分组的目的是将统一属性的主机归类,便于查看和统计。

4 e5 I9 B* ^/ `
+ Z3 a+ M( s$ U; {
主机组中可以包含主机,也可以包含模板。

' d) S9 `1 t8 L
' q; g$ U( K" f
1.png

; z& j/ f' V& K/ G$ S' A. l
; F% K8 p0 R8 a; x) w1 [, p
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:
. |: N, L2 J0 x2 s

, h: u% q  P6 n3 p. }4 H* G
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
' t. N" R, v/ i* r: L$ C
5 H! `+ I3 E7 Z8 V- S& |5 m
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。

1 Q6 Z; n+ k; }

1 B/ l* H4 Y$ |  B
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:
' T! \& A: Q  m0 K# Z! ^) q
: b0 i3 [( S7 I! M6 f. }
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
. i2 Q+ p. m9 z2 ?+ m* H
* d& p1 v6 Q3 `* O
$ z; u0 i1 S0 w
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:
5 |9 g" Y8 {6 P4 f7 r3 a* m
/ A: a2 C- M9 X" r# m
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
( H8 ^7 v, _6 L$ m  y
0 t6 }( H) M5 L* I' l  J2 F

: O2 G' l9 |' s
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。
& b7 O: }' m: J3 M9 ]. ^

5 U8 @$ h3 l. F6 U( Q7 t7 t! L6 h" g
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
* q: M5 B2 R, T' A  i( v
( n& S: Q- k$ q" q7 d9 R3 Z- t
$ W- s$ |8 d" }
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

* v4 a6 N" F0 r* G5 Q( ^! |2 m  x
! a! E1 _9 ]6 V* K$ @3 @
查看刚添加的模板:

) E1 C7 A+ _* Z! ?3 ~7 K

6 U7 O+ [; z; K  y
1.png
0 `3 u! g- s8 e
! ]) O) k/ b6 E9 N/ j3 b- c
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:4 l: Q3 b# V  n1 F  K$ Z5 \+ X

$ Q8 o* {/ M, x3 ?- R* t

8 w. U3 ~6 }5 o  q
1.png

2 [0 W& g, b1 F8 F8 g1 Q: @
: o0 B% s6 U" }
关于如何在模板中添加其他的Items,后面再说^_^) G: y! K. |2 H/ t6 B
5 K: J. K7 f2 t! ]0 m

6 p7 Q( {1 a/ n$ m* P6 d3 u( G
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:
5 a8 K. Y& n3 e
) c8 }8 T; l3 `
1.png
( I: I! ^, r- ?. }& ^" @

( p, Y) s6 q2 P% u
参数说明如下:
0 m) f! e% P9 p

- v/ F8 M. r- \" n
# f! C+ T2 j$ ?1 H, Q1 G. `) i/ I
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。

3 j- h* ^; R) i$ j  i" J$ w
, s% ]) g+ I, t
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
! L! f9 c+ w4 E' B# f& O! X( t
. g7 a) `0 C# I2 \. V) V# `% I; N% A
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    $ O) ?" D5 [! R7 A

2 v5 Y3 T3 q, F

' t- d$ O2 Q( _- M+ X
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。

    . s9 N$ s( W3 E7 }5 E

  Y7 a/ @  C/ S' H
! `. Q: ?& m8 B' J/ h
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。

      O# Y) |. n* }' i3 j) N3 ?- ?
. `! [& e' |$ d7 J3 M
8 C! Z% S4 X2 T
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    ( I* J$ V2 z0 B# B% y' P, Q
5 x$ ], w1 s, I  l3 G0 _+ _
: B% U8 A* [6 A. Y8 B
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。
    . j$ `8 E  o4 c2 {2 R) G2 {6 [

9 k/ e; C! U0 q# o* V% `. `

; \! i# p. ~: \' s; {
  • 状态:是否启用。
    9 j4 F5 Y! Z) ]  M+ J7 ?

9 S6 @* L- g+ {2 B0 A
选择模板:

7 s0 R. |$ V; C4 _( p
6 X% l% ]# E- }
1.png
% t7 g- b; I$ M/ j* Q) m

  A5 |/ Q: \' O
如果还想配置IPMI、宏、主机资产信息,依次配置即可。
" y; R( A* u7 T" G/ j: m
4 I' ?, p8 c8 K1 Z
; b( n3 P& e" `4 t# m
/ V. J# q" t5 C% o; `
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

; \) v' d, S: i" @) \2 B7 F

. C* ~2 W7 |2 N% c3 G; o0 Q
在所在的主机(模板)中,选择“图形”:
( f) M1 @7 f# o' E# S& q

% U6 R2 P9 M7 @( P9 k; G
1.png

+ f+ v4 W/ @: o( I8 R
4 w  `0 t7 X2 j7 i$ x2 s( Z3 r$ ?
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:8 O, Z: q& ?# k! h  h. K

+ m6 [# }7 S0 C

4 O' O# X% D8 t/ o2 {  w
1.png

$ u7 e; F0 y, l5 k9 q+ x! |- t/ U! r: U: V7 [$ Z" r8 n$ I' X
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:  }, M) \0 F+ X; g: \* r4 p. P
$ z' p4 H1 G$ n" H: o2 G' b

+ X+ j& K+ L4 c: I- ]
1.png

! V0 ]/ S* W2 I- |2 w5 s$ S3 J6 \+ {& I
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:+ ]' H) A& {- {; o
5 C* ^' [- u) z( q. s/ m' A

% d# U8 \3 b, k' Q
1.png

9 G) o: J: G& z+ |
' i, u/ L7 `6 C8 u6 U& s" ?8 m" c% o/ \
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

4 K7 W  k+ z8 O' G, |4 ]/ i2 n7 A

5 M: V7 v. H% @- k6 u
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。
- G4 Q$ F, U% |

4 d: i& P' V& E' o& y) R6 F& M
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

$ h5 X% F8 Z8 e: e4 ?, p* v' H
7 v1 |2 d' c7 b% G; f
效果如下:

+ I& w: n# l! v/ H
& {' r. `5 p) e2 S4 V" a
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
) R! @8 \1 e+ C+ t& `; {5 A: b
7 }$ b8 e" e! W' ^( L
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。
# [; t+ D7 A" C
: Q/ S9 Y% z+ }
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

9 H9 ]3 _+ I5 q9 D3 U+ ]  d/ e9 H, B

4 V7 |2 g5 h) D! c
1.png

2 x9 Z! e/ h+ F9 _
; n. z  C5 K/ |, m& A1 B; a7 u
名称:Web场景的名称。
! S( K; f+ x  n' E$ d$ A

! d+ i. ~$ H8 j- R9 `/ J
- Z  d, ^0 Y1 c; F: I, \3 M* l
  • 应用集/新的应用集:选择已有的或新建应用集。

      T6 s, J& r* T: w- @! @) {6 D

* ~8 N1 p/ P9 @, Z* D# N0 z$ {5 l

+ K3 a" P0 _4 N$ G3 x
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
      q4 ]) Z0 y1 h
" A. ~! L! v& Z9 Y  A, n2 s7 l' ~
- j* @( E- T3 ]2 j5 U- Z8 @
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

      m- L1 `$ d- u* i6 g; `

; C8 f# W2 K- v; g7 W+ V8 F
/ r+ N: @! C3 o) `. e
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。

    ' w2 m  u; q; G' Z7 E3 l! K0 c

: J/ I. T3 N" ?& V1 b+ D

* b& Q' v& |; [0 k  e8 F
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。
    7 ^9 i* F5 p$ q  g* q
% p% U( v0 u  m6 h" U5 m2 i
! n8 [9 F4 E( A8 y! N. P! ~. O
  • 头:HTTP请求的Header信息。

      _9 ^; Q. Z+ ]3 c+ ~
. K& E$ S" |/ `1 ~
切换到“步骤”Tab页,添加步骤:
4 ~, @8 `6 t* j" v. `$ E3 G% P

* W% `2 v4 M4 `0 l0 A& ~
1.png
  • 名称:步骤的名称。/ Q/ ?/ v/ b. g2 ^# `3 u0 B0 y( h
    " S# O, h; m, A! O# d- [

6 B4 U8 s( P6 b" w

& u4 K) u( }3 L1 L
  • URL:监控的Web页面(注:必须是全路径带页面名)。

    & \% f2 @" }! ^; o8 I3 Y6 {
+ t% J$ U; @( z! D3 t
9 L- [3 r! B2 q/ L1 M
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    + Q% C& ^  _! M

9 f7 M# X. r1 ]2 k5 q' W9 ?

, Q4 \1 @3 U7 |5 Y0 @* \  W* x8 w
  • 变量:设置变量。

    2 ]; J: d' O: d& q# c9 B1 n' I; G) d  C

8 x6 }/ }: P' I2 d7 `9 M" h
6 N/ V6 i6 }7 ?- m. z1 M
  • 头:HTTP请求的Header。

    2 x9 p0 E2 h* u9 z

1 P  B" R! y6 a1 u, b3 F, Z

$ \& \2 N+ K1 D$ p- s& C% e7 {
  • 超时:超时时间。
    $ s- D# ?" e( ~( m  c; ~
2 K3 r* d0 r* Q/ D& V2 _

5 P; e2 Y' u, H
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    ; k5 B$ w( v( n2 u% {! a
4 k! c- A! f# q% u

: R% N7 `6 M$ Y4 Z" H$ l! I" t
  • 要求的状态码:期望的页面状态码。
    9 \/ l- @2 N5 B: e' B: |6 T' E

, D) m) ]/ r3 c  b, `$ g7 y
如果有多个URL,则一次添加步骤:

% I7 r5 H7 z' r
; ^  Q, w. D& h/ ?7 b) H3 L
1.png
3 h3 B. m+ ?3 h2 ^, H# w) q
) G( P% {, f; B! D
添加完成后,在“监测中”——“Web监测”中可以查看:* J5 q( V# h7 _3 Q$ d; k: Y  f: ^
2 T# ]) R6 W2 J+ N9 F3 \
7 D" V9 J9 `3 ?2 [
1.png
5 W5 Y# o9 N$ i) X; M3 f4 S7 ?
$ a1 P, \2 V2 d" f
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。. k4 N  i2 w) F- |: X3 B/ j! T4 P5 l" C
+ u5 ~: V  q- l+ D+ z/ Q8 o) {6 h

# P! }% S* D8 w' |2 {- v% K
1.png
5 u, G/ C6 w3 z1 L" Q4 V. |1 ?* M

* |2 n1 x& E( K% T/ ?& b3 k
; e7 S' m; ~9 V. @9 W
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。

, R' [2 |& M" @) I. c/ M( G9 H
1 r& ]$ K* |) p& ?: T; i) C
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。

& h% H. ]4 S  y' h* o7 n  X
; e* N& c, I: ^, L$ C# h
监控的方式非常多,ZAbbix支持的监控方式有:

  h4 z% d' V0 _! F: h
- d& `' E# {* a9 _& ~1 }
1.png
8 Q9 i8 Q, k( G3 {

5 l' Z' \1 v4 v: ^! g9 i
' [! l* ]- q, l" g0 a* }3 v
其中,最常用的有:

  ?* w, f/ i3 n$ O

, B, Q7 t) ?9 o4 w% ~% U( [
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    . L: N2 i- z( U$ w0 ?, Q) O: o

3 o( ?, r& ^" o
5 q- |  i6 b6 S: o; K7 }
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    0 t& p4 n% n8 g  `, a- n
  G7 N- @! L( s. K

" D' B- f' X4 U4 O' @
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。

    % o- u' E  R2 q
8 n8 D2 a1 @9 C) }

& J0 \: T3 [! c; d& s
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    1 Z: D5 @$ u- y: _6 h3 z3 x" A8 s  Y
, P$ w8 r" z. A2 M
/ E  L, I. t0 M8 e3 d
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。
0 h! T# ]  X" {
- V1 y% L7 i5 V6 J! [0 z
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:

2 e7 w: E5 J. ~  E& m6 {0 `6 P# A

: ^0 L0 {& f: q. o* I0 T
1.png
1 @7 L+ q/ Y! Z
创建监控项的页面:

3 k/ W! g) v6 `

7 {0 V, Q4 }5 N& x
1.png
) V/ \' d7 w) \

5 |& O4 X/ C. j" z* K9 i3 ~" G( p
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    : q1 r3 A1 |7 F
7 a6 [+ ^' W! j8 z" Y
0 H7 i; h5 A) Z2 T; _$ F% P
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    % ]1 J) K, f' ^" x$ Z% K0 ~

; b' U( ~/ _* Z, T/ t5 t
% ?. o% M* l% v5 V* f$ r* _
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。
    : b& Z& \: q  S8 r# U/ ?/ K

  n& q7 F# J. }1 @$ }

% K8 T0 D# V9 C2 A0 F
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    ' ]& k2 J0 i& C* l" e. v: H
$ t+ j- R2 L4 {; W: H1 F

* Y, [8 N5 M) S0 J! D: R
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    5 G( o" F0 z# B( h9 l

2 l% i. s; h: ^/ u2 l! K5 w

; N: N% L; c0 V
  • 数据类型:数字的进制。

    ! v( E$ K5 a; i/ n4 v/ J! ~
9 M/ i- X' d$ M& i6 o' M2 \2 t3 a
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。

; s* q. W, d" U  ?* M6 S4 u
- d$ U1 M! c: h8 {( m, Q
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。
    6 y* A& E8 O7 _# a& |3 q8 s
3 y, t& v6 i  I8 @) Q
7 ^% J+ y5 |+ D0 K9 h6 Z. A8 t
  • 数据更新间隔:监控项的采集频率,单位是秒。

    0 C( H( k  f$ K; c9 S) L+ R, H
1 O' j' A7 S$ l1 v0 ^3 }
8 i) c7 Y1 o( c6 n1 i1 z  H
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    " v8 ]1 k. T# l
2 A: j3 v% Q6 g* Z, y9 H

$ g, v8 O5 M4 {" m- `  T# c
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。

    " c4 c9 v+ m5 D3 @0 m; V

& L* F/ w3 @) N
6 w8 A% U3 }# S# [- v" y2 K
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。
    ' }: ~2 s: Z, J1 I5 h; e

+ z! M9 E  n5 o, g, W& g2 X
$ d7 N3 e) P( T7 X# `1 \3 w1 r2 Y  P
  • 存储值:存储采集的数据或者存储数据的差量。
    9 h6 {# e' N/ i  M: m$ o1 b
$ n1 |  [( R  ?) u* R# s4 P# l- q

3 s% H$ u0 I2 R1 a' K4 d6 J
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    3 D& H0 G7 ~& s( o3 O
5 X: q/ q! c& w+ ]
$ b) H: y7 e& h7 W  J- z5 `
  • 新的应用集/应用集:选择或新建应用集。
    ; ~' J/ R/ |) T9 F

" t7 b1 T( x" _, [  v5 G
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。

$ [+ o6 k! `( i2 |7 f5 S
, q2 ?4 r  p+ g$ B+ |  ~
8.1 监控项的Key
1 I3 o: e3 K) t

- T5 o2 J0 O! a: R$ I$ b5 u9 N
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

/ n* C, |% _# X% K

; d  s. l0 B2 H/ N- H. G. L
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]

' ]+ o( i# n, d( u4 b

. S2 [+ {& A$ E* U
举个例子,创建个自定义监控:

& |* Z  h2 }; q/ q% t6 g
! l, k  m5 J: G* u- o* U0 L
1.png

( s- b' V1 X9 C' T- _( U
6 C# z1 r8 b5 ~: ?# w
& \/ p6 j  `, `# B1 z
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

2 W- q: K+ w' H8 C

/ C" S# {2 r9 g
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:

$ F4 B$ }6 Z+ y6 t1 A; I/ h

2 `9 q# w, @: v. \1 I8 W: Y" }- Z
UserParameter=key, command
. R" p9 J! x, ?& D+ T! _

( G& {% m6 a  }5 d# u6 w0 q6 M
带参数的格式为:
8 |" K. f( o$ S2 F* B7 b& l
$ F5 j! R3 S: i1 q( ]' l
UserParameter=key, command $1 $2 $3…
( n# q3 \0 u+ p
* ~8 u' S- `! }% Z
添加了UserParameter后要重启zabbix-agent服务才会生效。

: W% p4 U. W' P

1 ]" O9 j4 s% K  J& K' \9 r
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。
0 T! s: }/ N0 p4 o: w2 J

  o* o9 ?9 g3 {/ w/ T" i5 G
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。
! b( _' |, {! c1 e* B4 V; l

5 l+ z( {$ h* g- C1 @
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。

# X0 _# i: S3 J3 u8 K9 g6 s* N0 `  @
4 s  q5 l# A8 }4 y( T( e
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。
, B! F+ |5 V7 K3 [
& a! `' G. C" a3 q- {$ X) o" Z
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。
: n4 s9 @8 n: p6 j9 p& e+ |3 r8 t

7 ?; f7 _0 i0 d& v. k3 [, d' Q8 g9 W
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

) i: U4 C8 G: k9 D' \9 S* t& G4 r: {! _

  d; l! H- W! G* f6 X  }
1.png

/ b0 B7 L& e7 I/ r
' a/ t, j9 i1 q5 s6 @4 b& j3 H$ w; b* c' u7 {. s% C9 E" }
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
# Z4 t; x9 v  t. q
6 m% W7 _* f/ ?2 U/ y  g
1.png

! }, |! l8 p( a2 i0 f+ Z2 G- u; b/ Z7 F0 H5 c3 Q5 F0 r1 a
, U6 @0 Z1 e/ U* L2 n6 i  L
Zabbix支持很多条件判断:

2 _; @! a( P0 m, o) p- Y% b3 {
7 j  l; `, A: c5 Y
1.png
; E8 L- s3 ?% l8 y3 h6 N6 h& Q

7 h8 C! O  P3 B/ g- U
/ S5 a' k- h7 o
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:
/ |7 d' w% V/ w  Z0 @( ?
) G" h  m. \" Q
1.png

' v9 {/ N. W3 w; T, g) I, Y9 B. y; j$ g/ A8 b1 {. b  `

) H5 J, A, s* N$ R4 u% e. z$ y
插入后就生成表达式了:

* ]  G5 T1 U5 n) T2 z1 ~3 \# O) W

; L5 |7 \! I) j7 O0 U( B
1.png
' q3 x, r$ h/ Q/ \9 [

7 [  ]; N- p$ ]9 d! t3 d% [2 C8 U( S- Z
表达式支持监控项&组成复杂的判断条件。

9 k* L$ [! D+ \' l2 b$ O

3 j6 Y6 J9 k- M: }8 H
1.png

0 Z, B7 v( K0 i  P* L) r
! C2 i5 W/ t* u7 L( I/ f- _' g
, |9 U# H3 ]: T& K
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
( v! c4 k  y( d2 h/ ], Q' b3 Y
3 O: ]# X& A9 d
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
# U) c; R& M1 ~  S* G& z: a
" N3 u: Y- I, k" h
在“管理”——“报警媒介类型”界面:
% b5 S2 |* P5 H5 K3 w1 m* u4 P
/ ]& L0 R, d" {
1.png
5 z+ ?: q0 w1 i

3 A8 q- w1 `. @2 }5 H/ s" ~9 C4 p2 K5 }" D
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。

: U% z: k" f2 H, P
" f: b8 G" O, R+ p8 ]
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。
/ D! L+ L- A- ]! [

- L3 {5 [" Y' `7 P- O
1.png

' \) h! Y# _  J+ s* U
0 r  o5 k( x9 d$ J" \" n) ~% {% A! V
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

+ p2 R; l0 E4 Z; w) g+ Y; T' L
: T. j+ R8 |' S
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。

& X! q9 \: G+ Q$ r

& T8 z, r, q+ K5 g9 \! Q8 W
在“管理”——“用户”的“报警媒介”Tab页中添加:
5 e( y) X- d$ L7 W. \
+ d' R0 L8 ?' Y+ p0 A
1.png
# G+ Y* w, m0 C2 Z$ U) b

1 p1 H9 y- D3 R$ }0 D, K% a
5 _4 x: l- o2 q0 h8 O
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:
5 s- @! J4 j/ B

  Y" z( ?) H  p, L6 a! X3 Z) k& T  c
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。
! P1 o( t. P& {, }1 r  i
7 ^2 N* A1 e$ i% }3 i* N8 k; d* u
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

( n( u' D  m/ J+ f2 M0 [6 e
. p& |4 q" Z. Q
1.png

: I% x- h9 u1 p+ z
1 P, M' j0 U; K. j5 T
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
6 Z0 {) s( O# L& f# r/ f( K
: b' h" y6 c1 G& X
1.png

( _2 G; ]' j. U% P! x) _7 [
' O) d4 [9 ?) F5 ~. v0 D; B2 S
5 S: G0 L3 u6 c  J' m  a7 M7 {! @
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。

+ g& Y( r7 Y* m

: [: t* O7 O/ b1 B3 i7 {
1.png
; Y9 F) n) P; [) e

& c9 {( B+ I& [3 G; [
! J; ]  b) b: I1 ?5 a# N
不同类型事件的动作可选的操作不同:

' B: Z+ R+ {+ n# |# U* j

0 a" U6 o( s8 ~: [6 B- M+ N9 G0 \
触发器事件:发送消息、执行远程命令

/ z7 R& V/ d7 g. P+ v( p

$ R* `( f4 B3 }3 }
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式
9 f% t( b% K9 v7 P0 E

' Y, d+ W5 y, c, w/ Q" v8 c
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

8 P# e( a" k& c6 f
3 b! m* v" `; z( B
动作发送消息的日志可以在“报表”——“动作日志”中查看。
- V& _7 I, a$ K8 ~4 m
+ N/ y. H; z4 u0 X, ]2 G0 k) k8 w
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

3 D  H& L; K9 \6 j7 _" M
' ]) ?! b" c$ ~7 p8 p& v! Q/ D$ k
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:
. M5 @" [& G" H- ~! @0 _
! V# G6 K+ P" X5 x6 Y
1.png
- n" s( h5 I& H: ~& n3 D
" V5 h' n- {1 K# f( R* a& m$ b

% t5 d3 n( `+ B8 p2 d( {. [# B
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
+ K/ ?' H9 `: e9 q
* X6 n3 \$ _3 L" `
1.png
6 J+ _1 |: @; T# l0 p7 @
4 \# ?+ _4 n1 P
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:
# i% Q2 y+ Z9 U

3 P" [1 {% |2 ], C8 i
1.png
/ D/ M" v, `8 ~
3 V$ p8 ?; F. w, t1 m
3 C: \5 I( O8 g5 b' S( m" K
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
5 y1 h% U* m9 Q

7 b3 g+ n3 Y2 h/ I8 O, q4 i
1.png
' E: }# Q# m3 R7 t  J* Q, h$ ]
! \# Y, ~! j% O& [

7 ^% P. o% j; i+ H& Z; E6 e" f
然后事件的确认状态就是“是”了,表示有用户修改过状态:

+ j( L. K% Z3 B, |! A
, i' C0 y3 R0 m* L
1.png

& j! P: l2 o) R. F* M3 Q" L) X7 _* e+ x: ^: V0 B$ w# H0 G9 t
3 y8 Q/ w- x: J
点击“是”可以查看具体的内容:
* Q- {( |( |& P6 l* E# `
3 Y2 {2 D( Z) Q, `/ @
1.png

; h( }+ c6 W6 _$ u# P  e& E6 ^
5 _% b$ K! h! m" y$ I, {( h; N% C( v# s& G- D. \+ x! S1 e
原创:吴坤
" q; }; @4 L5 y+ @" i! o' U
1.png

本版积分规则

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

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

Baidu

GMT+8, 2018-12-15 20:35 , Processed in 0.289296 second(s), 41 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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