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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑 % R- R9 O' F2 n$ U: a

1 X9 V6 v: U$ W4 Q, q* p# {
9 E# T" V% @; O9 ?- Y

9 s6 B2 L) i! o# J
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:
% l5 R8 Q" |) F9 ?+ K2 t) J; N1 `' z% ?
5 O7 [. f/ E2 _
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。

+ E8 G& x3 u4 Z& y- T! C' E

- }& n/ @! m# W0 e8 Z- |
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
" Y! D$ t3 U; `+ L4 s. J, c; G
5 F. v. J. D4 A- o% f* c* a* s; @
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

% b* |) W1 R* l7 o  c' P

! N8 X$ ^% E: h' @# J, O3 f, O
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)
4 K( ]+ g. G8 S1 q$ J

$ C0 L* [, O8 y4 i* f5 B
Zabbix的运行流程可以用下面这张图来简单的描述:

- t7 p9 U# m( @: Y* b; \( g
; e* N  R" U$ [: |% b
1.png
1 添加主机组
9 }* [/ V, l, Q) ^& D
分组的目的是将统一属性的主机归类,便于查看和统计。
: L7 }+ S. ^2 b" n! j; |! I
7 v9 B3 f# C8 j3 P0 ]9 s
主机组中可以包含主机,也可以包含模板。

( j" k4 Z4 g9 x7 q$ ^3 d- a

. a# H% ]9 O! b0 o8 f
1.png

* f4 U2 N2 T7 E, C8 A( M0 b9 F" Q' O
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

+ l- c& L) H) n

! f$ @, j3 n7 m& V
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
+ Z0 Q" U% w! a' N* R1 T

3 f2 A5 l2 P5 `+ Y: R  A. Z  o: Z
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。

% g+ @. ^. E. H$ U3 U8 d9 |

% J! m) {2 L5 L8 H& G0 i, d; n
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:

2 i" W7 x3 Z# w8 p) N

5 r# L9 m. u* a& J$ R+ s9 ?
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
) F- _! U, o; r& r8 ?* r

& N* n+ f* p! o

" |% C8 c/ r6 ]1 c4 C/ e8 p" j
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:

! D6 v' a) ^( M- f- w3 S/ W
8 V! Q! C5 Y( \' N9 ~) G1 F) g$ \
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。& n1 L3 ?1 M( i/ Q! }* ?

+ Q) L/ u3 v4 P2 I/ {  F

% n0 v/ D% O! s" `
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

* o0 o/ r( y; P/ j
/ M9 T5 P6 B. k, I& k
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
% ^1 r8 I( Q  {( E  ~) n. Y
$ N# f) Q, j- y; k5 b+ d5 V' W

/ o" B, {+ k6 F4 V- o, D. l% ~
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

8 v3 d2 X9 ?3 M0 j* f
' C$ ^& V' \5 U/ H. |5 z5 d8 z
查看刚添加的模板:

9 B, L0 E% C- z2 m- r/ J4 o3 H

1 v; T( ~- [; U9 i" {) k
1.png

; b' \$ X, Z9 U8 |1 N% D
" N! O2 w0 d' @& l4 U. P6 _
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
$ K2 y, W# ~4 Q
2 B6 d9 X/ I. h; A' S4 `( K1 \

3 w9 P8 D2 h( p3 ]
1.png

. g9 G  v  q- G5 ]
7 g6 M, o3 L" L7 `7 {- F" V
关于如何在模板中添加其他的Items,后面再说^_^
/ {, G/ T7 j2 h' c6 n/ t
/ j. m/ V# H6 L; _

- o8 C( R7 v$ ]7 u6 J
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

! \& }, C$ L& V# R4 d: q2 d
2 G  Y: W* @7 c# G( \. D7 M
1.png
3 _9 Y# [) F" x  Y  e2 j2 B
- P* U, U* S# P. J3 M) _8 u
参数说明如下:
+ A& K* Z( y0 r, A$ B) Z$ [

2 J5 [) ~" O* ^( {0 g8 |2 w

' Y! @/ T/ T$ w4 N' n
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。
7 B4 S, w  p* V' m
6 \: ?6 k5 U; Z/ V7 B
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。

# E. E% }( g5 L0 r

( n2 J5 [$ O' m4 g2 R- k( S9 M
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    , f8 ]7 o* `; J' }
$ n6 F$ x- m& w, R% V: T
5 O' W% W9 `/ ^# o# [. K
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。

    , i/ ]; K/ p4 A2 B4 a
' z" P- J6 H# `. l' I

8 y6 z5 L4 V* e6 Y7 P
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。

    ! J0 p7 v+ K0 l( v
# f0 X9 ?% m. ]; Q- o# R
. v2 A, p( Y  R( N
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    : E, b9 Z- b2 l1 u0 N- ?
/ ]# g3 g0 E( R; m& }
, ~& m6 W. _9 x5 V3 z* X
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。
    . A' y0 K8 G" s4 ^" t# d

% C' ^) a7 \- o* W/ I
$ M6 ^, o4 ?4 n+ h+ }) Y8 Q! H
  • 状态:是否启用。
    $ T4 K# Q. C  ], U. y
) w, ?% ~. ~  P3 R% r: ^( p  e# f
选择模板:
8 o  S5 J9 b0 @
# z7 D; ]7 E2 `7 ^7 d
1.png

( N7 `) G0 J: [* q
$ p4 [! \! i3 p0 O# @+ S
如果还想配置IPMI、宏、主机资产信息,依次配置即可。. K# _1 l1 G, C! Y

/ N" G- _' g6 R% a
8 L9 i0 u* W( q) Y' W# t) r) ^5 Z
( G# w! C6 D+ n/ H( o6 z
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

% J9 L' R2 z+ `/ N( b

! H( |: s% C4 y5 ~' M
在所在的主机(模板)中,选择“图形”:

9 u8 @/ \1 {9 {4 {0 U

$ ?9 N3 x% H7 R4 {9 U2 d
1.png

" H. V9 t5 O2 q4 V3 t6 F0 F; B0 [, I8 o# J. C7 |; [" _
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:% s: l( w3 z' j
( u% S# K. c  k! p: x" c! y
. |! t0 d4 |8 f6 \, N4 `3 W% x8 x
1.png

( B) S  |6 D  I+ s9 v  x
: D5 U. k: z3 x! S) v8 l1 I
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:, A: d: \' O4 i3 b1 u
% ~6 c, j( u3 O1 {8 x! O7 F

; K% z7 j  W6 f5 d
1.png

8 y4 I: F# z! q3 v
6 T5 j( Z+ @2 [  J6 Q
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:
$ N, n; T* E5 T  J1 J0 v
# x; [9 d: Q) _! [. [+ m
7 x+ j( {& s1 v8 N8 B
1.png
2 h0 g0 \, E2 {  l% m4 t

+ f5 v, U% u, V4 ~- c2 S, o# q* d+ F7 t. N  u2 W
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

4 R4 B( K* H& M; ]6 H

0 a8 m# e3 ^$ I) }+ j7 `
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

; s! z4 u) B  z1 |( Z

# b8 e% V/ S3 K, g  z! u
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees
+ h) f9 B7 b# i9 E9 T* T' B

3 L2 ]6 }9 Y' a& B
效果如下:

5 C( f: O- `" w0 }# `9 E
$ [; ^  T* B9 o% E
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
5 o7 m6 J% L0 _7 y- h( {/ f

1 V( K+ r7 T: V# C* x# i
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。
& P7 p1 v5 @' R- S: ]

9 G% j3 C% w$ a, [. A$ e( y, s
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

' t# T% ~& S2 M3 u

- b. S# w/ p6 T" e- ]
1.png

: Y" X: @2 d1 s  z: x7 j
8 D: Z/ K$ C+ r
名称:Web场景的名称。
9 v# q! v) `" p( g( \
1 P% `1 Z. ?, D

, y8 K. Z/ o; e( [8 x; K
  • 应用集/新的应用集:选择已有的或新建应用集。

    0 n1 ]8 N- q+ Z- s8 w1 `

( o, I, W  z, S: i
+ u' n2 ^: X9 x* @% q/ [
  • 数据更新间隔:Web场景间隔的时间,单位是秒。

    3 B1 l( Y7 \# T5 M/ H! F4 A8 ]- j# s
+ i0 z2 A' t, E0 Z* T# W0 x
1 m8 {1 e# k# G/ `
  • 尝试次数:重试机制,默认是1,最多支持10次重试。
    % M  V% y$ ~6 c+ F4 L* |- g5 A

! B# F8 N* x* X7 j

/ `5 {* d& A2 K
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。

    ; t2 ?, S+ q: ]3 Y2 Z
0 _. ]- r: m% U/ x
. h  N/ K3 S* b2 ~# f8 X
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    + i! x" N4 a6 ~( R% f
5 t0 ~8 L& O" O" o

: U6 \( b% G* Z. ]
  • 头:HTTP请求的Header信息。

    ! r- v$ u; Q! H0 H$ c
( t$ w6 m3 G  B9 h* u" x* R
切换到“步骤”Tab页,添加步骤:

8 Q$ A* t. h9 z9 J

! k; q1 i& _5 p2 U3 |0 T: u& Z, R/ S. e
1.png
  • 名称:步骤的名称。& @4 a* N4 T, M' d5 k5 o

    + ?; r; Z7 Y! }$ p5 C' a
' Z3 z6 w: s& O' E% M* c
) s% J, }- f, S+ s- `1 f% l; n0 s
  • URL:监控的Web页面(注:必须是全路径带页面名)。
    3 E- }. j1 P, e1 [8 M

! |% t- o+ x0 o

8 b/ E: [- h0 |
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    4 b3 N: _) _" d$ g+ R3 o* z
# C$ Y& P1 m3 q; R
0 `: b. y2 C% ?  R; c" x
  • 变量:设置变量。

    7 D5 w' y7 ~- X. y( i& b

/ ~+ f' e, q& D; }. X6 v9 [* g+ s9 ^
3 Z7 _9 `. @+ N
  • 头:HTTP请求的Header。
    ; x6 A4 }( l7 }5 k, q' O4 R: L

( W/ x/ W0 u+ N$ @) X
4 S( s9 W' E5 n' Z) [" M0 t8 ?
  • 超时:超时时间。

    ( R+ E3 @' R0 I6 Q9 e9 b* v# ]9 m0 d

/ p- K$ Z- C7 p6 c% C( \
0 M' E5 _3 c" n- f* I
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    - U# F4 o9 Q* N# l
% p- X# X8 R4 K5 G% j5 r  r# f

; \  {5 C1 x! U/ W) m$ M% t. J
  • 要求的状态码:期望的页面状态码。

    + _6 X; i$ L, M- p8 h4 ]5 M
( o4 B+ g+ T* ~: x' ^& t
如果有多个URL,则一次添加步骤:
: J+ M% `% [8 l7 K

  z; Q  R+ e3 B" Q# X
1.png

, @" Z# x* e+ S/ u/ [" O! Z5 N
" e9 t! m* e% \
添加完成后,在“监测中”——“Web监测”中可以查看:$ h' T: u6 L7 v3 }1 c7 x

! l1 @  A( u' O- d

8 D% f1 E$ m( J, L) c
1.png
, M+ b) [, U3 y( B0 y3 _

% q4 u0 m& a5 w* a( p
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
4 k/ k. e# N9 l1 A: k6 T3 y4 Q# \

: {/ L8 F3 \' a9 J

+ {  f, V  Q+ b4 q: z- }1 n
1.png

# v% n$ p  I$ h+ `! Y" A/ N8 T5 Z. V$ R  W9 i# F

# G  _! [  u6 ?# L/ B: c* z; Y
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。
$ @% K# n6 K  \2 }, ~

, `" S" y( @$ S8 {' L  t
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。
# _4 S7 R2 Z/ i! G, `% ~4 D

7 o9 V7 {0 |; S& Z2 \
监控的方式非常多,ZAbbix支持的监控方式有:
8 Y: j. o1 t3 |! \; I  g5 e

7 p7 m3 J; x# [  C5 s8 b# t
1.png
* t  H/ N  T$ _0 P. G5 S( K$ ]9 D

* z( V; {+ a/ e' @1 ?3 a1 e8 C+ W) S' H: {
其中,最常用的有:
0 w% `, }4 D! C: y& s
, {6 j  E* Y$ v( P0 a8 S5 M
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    6 r7 d" ~; [. X8 d3 g; w" J& j1 |

( c5 n0 j/ O) I1 e0 V
: ^( v7 L) h4 Z8 k0 d" y# S
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    # I4 w& u/ \: E3 ~% E  ^9 D2 |6 I+ A

4 v+ G2 x  v+ L% m* I8 ^# @+ X1 `/ I
: A, \! N7 m9 a. J- H3 Y
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    3 Z4 H* J8 D2 E. m' ?& u, o
, D- r7 c/ P4 b2 D; }3 `

9 G/ H- _# O- R- P
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    3 O. U2 h6 Z$ b5 B& S/ [% l

* Q: z, ?. j2 s, [1 K7 i* ]' i3 |
% Z$ t" n; K- R0 X' R0 ]+ v  o
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。
7 E  P: C+ `4 E" C2 V) B
) B/ t( f% ?- T+ a! g/ j' U& m# x; x0 s
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:

! W; _# C& W6 d9 T0 I

+ D/ n1 S7 Y: P
1.png

2 Q! C3 g: T; f: [2 Z
创建监控项的页面:

  B: n7 `: F6 F# H! I

* l9 W7 u9 R3 `, q$ E" i( d
1.png
/ T, p3 W3 J% `# K9 k
8 {9 q+ L! n" U/ h. U3 [4 M
4 o4 p# ]9 Z, c2 o( f" j
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。

    - ]$ K$ l( i2 @" V  B  p

! F6 `( r; C9 A: g, |; T
3 y7 Z  j, l" A( ]' d8 M
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。
    % j( N6 U  N  c; _* \, x

- D( }- g7 w' F! o0 C4 O

4 `' B" }* k$ R$ j& I0 y2 s
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。

    2 i5 s6 b1 L  Z. R3 ^

/ |8 b* u" N) C& t" G/ k3 c

8 d$ \0 U/ \6 z, a
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    8 \/ Y5 L7 X% q; d# L( D$ g

6 d! ]6 C5 a& P% c/ C; H1 S
6 {. ^( [" J% D' R' Y
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。
    % w5 g- r3 W% G7 A& V% S

1 g% Y- Y9 b: [* t% m9 n0 q) O0 s
2 u) _! n: L- A+ r1 v4 k8 s
  • 数据类型:数字的进制。

    . ?) e& M) F! O' ]1 k
1 u8 ?3 l' Q* m
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。
7 o1 [& J  C4 T4 i7 J
4 N, u! l; ]. p  D. s& d; L1 B6 _
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    $ J  t( U# \, r1 u9 _0 q

, s% [  m! C) F# H  C. e8 n' n

( F$ z  j# s7 U% k6 c- B! c8 M$ S
  • 数据更新间隔:监控项的采集频率,单位是秒。
    6 q, \7 `1 s; q# _& W$ k
- R8 B& d8 z4 B1 Z7 J
9 O$ b4 B3 C' s# b1 x: b
  • 自定义时间间隔:可配置不同时间段采集频率不同。

    : T) o; |5 n8 y1 u. D- r
# j5 R# n6 z  Y2 b. p  J" n9 ?

+ ~+ n2 e! \6 J$ Y7 k% c
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。
    : E* w# `0 |; y6 A3 z, x
* p+ j+ }, {! N% r' K% |1 `2 f$ U
' o6 [0 {6 h$ c% M% C
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。
    3 R3 e( T( \* r! V" x
3 e. ]# i+ N4 v$ Z
6 d2 _0 X, t+ x9 A2 b3 D, a
  • 存储值:存储采集的数据或者存储数据的差量。

    * q1 w$ a: w' T+ R* n4 L

& f; ]  X% W% f# o' `7 a6 w7 C

5 o/ ^8 G4 R' O  a6 K! X$ j3 ^, Y
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。
    ) f# I( v" ?1 [4 ~9 o9 |* p# P3 s! h
' |2 C8 [+ X8 m; P- {
6 B$ c, e) H+ V% |" t
  • 新的应用集/应用集:选择或新建应用集。
    , ]; N6 Y: G( g0 \

! T- p' t3 i- N2 I; I: a
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
: o1 }' e% H& l1 H" {
& Y: ]$ L. P* h: {1 x6 r5 x
8.1 监控项的Key

" z! t0 n* a9 N# S$ S# z1 |

/ f" P6 d* `/ x# _
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

' L) I- T2 G! N/ A8 c; }; z
# g8 v1 |1 i- k; E, h
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
& `) Q, Z% B' i
! B' I  C. L% H% d9 E
举个例子,创建个自定义监控:
) R2 p5 e% s% @: P+ s

, r! o+ w! |+ S6 i4 d5 C
1.png

$ b, `' T2 l5 e/ i8 Y2 b
/ \- J5 z. F$ ]" @: n/ w+ S1 P* {! i& }& j: x, W
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

& s" N- T* o" V1 Z' O
/ b+ {7 a1 }1 J" g5 ?3 L
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:

* h9 v1 s* W3 ~7 ]; l( H9 g, r8 f

/ q! k3 N6 O* x+ x
UserParameter=key, command
+ \1 [' ?+ X5 L7 o

: Y, T. v1 i! v6 C& v" G5 r
带参数的格式为:
" H: s# b9 {' l( o/ _
( E; V& v) i2 U9 ?. U$ w
UserParameter=key, command $1 $2 $3…
5 P2 L- P$ x/ m! z
! }; K( j: M  V  a9 ^1 i3 e
添加了UserParameter后要重启zabbix-agent服务才会生效。

6 i- r+ ]; Z4 i+ v( }5 F

6 b- W$ s2 }$ Q( n3 w, U0 V
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

- w7 E; r7 |+ [7 H) |6 ]
* a& l2 c. ?7 }
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

5 s8 {' s* e7 Z/ F

/ H& P. k& M" {, t
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
* ^" X2 G" ^- f! ^) y
; L4 i0 Y) d3 q, N$ q
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

$ v1 x: M) q; ^' _
; f, J$ R4 G: S" }
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。
/ u8 y& Z7 ?6 `4 u" [

  E0 t+ _6 v5 k# O3 b0 u6 u
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:
! E) p; v- U- U& Q; Y' Y

6 Y- ~3 e, C0 i; A, u: C2 g5 [
1.png
* j! N9 u+ r6 R# D# C( m/ s% U7 z

9 P- A- i( F$ t9 X3 s4 ?6 Z. b0 w9 l& M8 P; F
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:

# U/ U0 _" O9 h& t- R! w; z

! d# h: A+ J: K" B1 O/ G
1.png
4 A$ t# t+ c6 D1 ]

6 \$ I$ R! M  ~2 k7 q1 t
2 Y0 U8 ]' C- t* W6 b+ G/ m& l
Zabbix支持很多条件判断:
* o6 j: X6 O' m; \. D. r' C

- _0 ]( J/ P6 U/ P7 X; D
1.png

9 X0 \/ s$ {( y; V
- j0 G( m; X2 ?( h% g1 T1 L7 o% T9 o9 y  r; H- E
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

" X3 L8 @# \$ Z/ R. z5 L

: [1 y9 ~6 Z, q6 v' K7 N9 \2 g- X
1.png

2 P3 M$ c7 |& j; V" {) A
( \2 M0 e- U) k
, C2 Y1 t' |* _* w4 v
插入后就生成表达式了:
0 w8 x. G8 O0 R+ L8 f- ~4 }, U
+ Z: W- z; e8 d8 X
1.png

9 G8 C' w0 @# g
3 S" E  U3 s$ S& a: p4 Y5 Z" `% N/ ]5 X  [
表达式支持监控项&组成复杂的判断条件。
5 X" b% M  l. R  y
( m* r/ I: N* |0 [0 I! f. r; m
1.png
3 p" q$ ~( [4 \7 X) V& [9 X8 N

0 v/ ]* L6 d$ h5 y( N* N) `( d
0 p2 @' s! `1 _( d" h8 S
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。

2 p' }, x% V7 P' j0 E: t5 O
, d+ L  w4 U3 S, w5 E9 D
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
& x8 }: m( Z0 Q; i; `' M
, o2 n9 `. ~( T7 v5 K3 r
在“管理”——“报警媒介类型”界面:

  Q. e; ~" k% E9 `

& l* |! n- U; O: H
1.png
0 V' X% J7 \; X* [9 [2 W/ i

. w. Z" B8 _4 }3 K: p8 E+ N! ]0 X( t' {. O8 Y" U+ \
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。

2 A8 K0 W; w: s/ r3 a) t
% i% u  Y! K5 z6 k6 L
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。
2 ~8 v, X! L- g( j$ V) {6 b
7 F- n* y3 I2 }, S/ v
1.png
, _9 S5 T& X5 j+ T
. D1 ]6 g" s* c- `# r
( C6 g5 G1 i+ w; J
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

5 P/ e5 b" s9 d& T5 v
% [2 s% C1 \$ s2 F
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。
7 y  g0 K. ]5 k0 x1 U# S
& B' {9 }: B( X! J  e& q# @4 v
在“管理”——“用户”的“报警媒介”Tab页中添加:
" d3 `+ @5 T$ `6 e) D% P

/ C" |3 f4 T% h% k7 t. H( J7 r
1.png
- Z# ]6 u; B" O7 r" }9 R: }: _
+ [9 R$ h  X( c/ T; T
( D; s& Q; ^9 T8 `  n
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

, J9 u2 u: L) ?7 T; o0 D; K

" O& Z1 K3 m& j/ |: X
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。

8 H" U8 h# r$ D  B) |- K8 A
7 O! P* R& }. V+ \% z
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

+ S. P! G0 h8 w- i

( X7 C# F% A% |  H6 s3 r
1.png

2 F( P" r* j: B2 u2 k8 P& a% N
3 W! o. L9 d" I: l/ r2 t8 D
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
8 u! X; c0 ~8 f! _& [, a

& R! x5 ]  s; c* Q) e& m
1.png

% L8 e+ |3 |* Y' e! B: E# ?! Z5 D1 n
* H! f; g" ]' t# ^* p6 L. a# {7 m0 U, J- h8 F/ P
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。

0 X0 R' H, p: L

& B# `4 X( j/ A( C* {6 G' G, n) _
1.png
9 _$ \) `& Y, z" M" w! R

. r: B3 d# X) Z: i# B+ A8 q' N4 B6 Q% D. r6 Z# E; X, A+ r+ f
不同类型事件的动作可选的操作不同:

# N+ h! F) c* o6 i9 h% {7 `' \

6 p: U5 E# g/ \& p
触发器事件:发送消息、执行远程命令

) j7 o6 h2 ]& |" k5 |6 `% [
! b  K8 p% J3 n6 F! e0 s
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式
' _/ `2 W" t% n$ m

, t/ ]1 {. x; h# `9 _" F/ t! h9 {
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

9 p  g2 G9 r% B3 `1 X

" w, S; H- Y3 f  N
动作发送消息的日志可以在“报表”——“动作日志”中查看。

- r$ ]6 T) A3 ]/ J
. P) c/ {/ p- s
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

7 F% \, p  F" G( ~) d+ x3 P: e
. P( k: s- F* x# r/ P
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:

) Z4 }% Q+ V5 i7 O/ k# [

9 z5 C: k( E4 p* s- K! d6 G9 y/ f
1.png

; q8 }4 ?# ~' w2 M
2 k! q  T% O# H* c
5 t% W. k5 f( W$ M3 M7 w$ w/ x4 F/ _5 v
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
3 j: _: w0 l4 B

# G9 s# N/ H1 y5 V, Z
1.png
6 ]5 S+ K3 }( `3 N" m& O7 v

8 R/ s. L. s" K4 q3 M. {
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

7 n+ D2 I5 F! j# W# d

. N( e  K$ {) D* g8 ~. M
1.png
) o  T2 j5 `- m* V! w
$ R: ^+ b& E/ _* h' X+ L. T6 q6 l
  X; L  U. r4 W! P1 N7 _6 h# M! E8 {
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:

4 H/ X% b0 r  B. |$ e1 O

1 D7 p- Y8 `8 I8 A) D3 v
1.png
, a  R" t. ~* ?* s6 Q. o+ C

; }# M& Y: x. O& ]% D# H
9 Y% {8 x* p8 _2 I
然后事件的确认状态就是“是”了,表示有用户修改过状态:

6 S, p" I, s. S" ~# ?+ \2 D
# S# Y7 u( J, I3 [- C
1.png

- V, e4 z! y6 O; J6 s, O9 h. X( ^( C3 t4 L2 Q& _

+ |" R5 B$ N6 j4 K
点击“是”可以查看具体的内容:

4 i' ~2 h$ k% d
7 V* Q6 Z: }5 \- ?6 ^; `! S- `
1.png

; {5 m/ w1 q$ D1 ~: P( N6 L( u' H1 O
' E. ]4 r4 }% Y
原创:吴坤) b+ Z0 N  w) E( \$ z; ^
1.png

本版积分规则

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

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

Baidu

GMT+8, 2019-3-24 07:18 , Processed in 0.247610 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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