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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 399|回复: 0

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑
7 k; I/ y$ z! \  h
) S& @5 P- U6 t' {% D( b1 Y0 c- S; U  ^6 `& W" d" c

8 \5 e' V$ ]4 I
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:
- x% b; {( L* |# F) i1 [
1 {* K. W! P3 y4 u7 Z  E( j
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。
; w2 y* \5 F' T; A. b. b

) p, j1 \: n# r' G: M. x
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
7 [' C+ b! f2 B4 N* K9 i9 i; a
" C2 {% {' O' U6 }
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

8 Z& M6 m3 f/ l% e, V

7 V# [# d$ T. F, X% r
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)
; z! c1 j  l5 E2 h; W' j$ F
) A9 A: }4 N: p9 X. f" Z! Y( {& Y
Zabbix的运行流程可以用下面这张图来简单的描述:
; C) M6 d9 G- U  \
2 \5 |+ I& Z9 e
1.png
1 添加主机组* T4 x) B( L- S6 f
分组的目的是将统一属性的主机归类,便于查看和统计。

1 A+ k+ I+ s! b2 z
7 q. N$ q) W) k: n
主机组中可以包含主机,也可以包含模板。
3 P* X+ ]  {, l' F

9 F- L. W  d; m1 @" ?7 S
1.png

" X9 l2 w2 S8 M8 e  v- U- h* P, w# u9 r! F6 F& b* z1 s
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:
& Z; `: c. H! _( }& l1 M4 {

' |7 m# p4 B9 m0 j. E
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。

1 F7 \. J8 w  k2 D" w$ ^  r3 u3 M( m
! B& u6 h9 l6 y) ~1 |, ^- w9 H
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
) Y6 J( b4 s; o5 Q2 \: G7 ?
/ C( |" c' F6 Z0 z# v
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:
* B# y# h9 b3 o" T7 d

% f+ w: r( e+ J, [- y
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
9 M% T# g, h0 s4 `8 j. s
$ w8 Y, l/ D2 W( ~- M: r: t4 `$ N
, m( ^1 ]: L- ]! }, e
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:
! t( m' S9 @' @- j! i, v% a
: F# A. V: N; r1 M$ t
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。6 X( g" L/ m9 ^  k0 f+ l

; Q# t' M' t  K

- ]' m! a/ k& f( i) J# s
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

1 g* N. \+ R( B/ W/ D  I- H, y

' f; W/ G% b! T4 e  ^; G
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
( s" v# @2 r& e. x
4 Y/ Q& j# I& z, K8 W
* ]% g7 t" X9 g' z
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。
# e/ @4 t! K; `$ o

% l* O7 s& N- U* n* y/ a0 b9 h) j
查看刚添加的模板:
5 S# {" c; [- o' O9 z% `9 y. a' }" R
: W# q- c! `6 H$ I; j5 [, ^- d( t
1.png

- f/ Y" R, o. o. h+ X* ]9 k; r1 E9 s4 v9 H. c
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:$ w* t' |  e8 h5 ?, o

9 }- K7 n* F# }7 c. q9 v1 l- N

' H3 q0 H3 T8 Z/ F/ w6 t, E
1.png
/ G% Q9 M( D9 @# ]9 j
. y1 T, y4 e! q/ \) B
关于如何在模板中添加其他的Items,后面再说^_^
6 g4 P6 }* _1 J2 B. t
. j5 O5 l' d7 ?3 H" j1 P
4 C+ l% C! ^+ E1 g0 P! t  ^
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

* {5 X7 ?5 }$ h7 q9 h! Q) K9 ]

& J$ L$ l9 ^5 N- X, A
1.png
4 k5 ]7 i. y/ E- \9 |" k

; m) w, K8 Y* Q" O5 D) d+ i& U
参数说明如下:
9 P2 j- b9 M6 F6 U- d

- P1 W; @& A# w; Z
. F, x6 ]9 b: J0 Y
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。
% r3 ?$ }; A1 K( C" c

& B" ?4 w, f  |3 Q/ n3 H) h( f1 S
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
8 a: c+ T; X( H+ l

7 n+ ~+ R) ~' ^/ }6 j& V  H
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    1 V, r7 N5 `/ B% }# V' ~- u
) v" C% e% y2 T& D3 g  ?

+ a4 H7 r" W1 u
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。
    7 S& z( \, ~3 |0 j. t
1 H" D) z, ~5 v
8 M0 D7 ]- b! A1 G/ ^1 D' I2 a# }: E
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    ! H" r, V5 f4 U& w" H1 L; K
1 R& h. z2 a4 X4 g- L: k3 P
$ u; N  a7 K. c, H
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    # E3 {: e1 W- N  D: b, s6 t
) b: M0 L- D0 E! u0 P4 t$ q4 h& A
. @+ h3 ]) S! Y5 G
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。
    ( x/ l7 [; i7 M9 ~* r- z6 I' N

6 f& W3 G9 V( r8 v8 z6 z4 o" x) D
% }) k0 I& U/ [
  • 状态:是否启用。

    ' H/ m4 V7 f1 H. w

2 ^" W9 b, E) ?* F# Y
选择模板:
; C. h! `0 A$ u7 V! q( t- E. ?
7 P+ Z) X7 }( F
1.png

4 Q0 ?( p* u, z6 F, e1 Z0 P
/ j5 o% S4 h. R( l' H/ E
如果还想配置IPMI、宏、主机资产信息,依次配置即可。# Z) g+ @$ `  i* c- r( \
; C; T1 Z* b1 B  U% o
' L# _; T6 r. a4 _/ m, Z' m
. e8 X2 d: n* `" n1 e0 w" d
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。
, J3 \: b1 P3 k0 W

+ z. T2 r* G& i% b9 X& M- ?# Z
在所在的主机(模板)中,选择“图形”:

( E  @3 \* F' ^

/ U2 I# u6 l$ g9 y' |
1.png

& I5 p# K/ y* y
" A3 M* B2 A; K1 x' e! o" P6 o, b
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:
* T( B) Z! R5 R9 u) H* l* x
) G2 I6 d+ |3 c+ Q0 E- l. p

$ I: W7 l' S" \( ]% K7 c0 M
1.png
: s8 [! p" `/ \8 D

6 r. |. F5 T9 k1 G$ @- y
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:
; T- N, s. \9 p" Z  h
1 S2 }+ o5 O% z. l9 x4 G

: w6 ^0 M- J2 B' P* M; C' n
1.png
- w$ _! v( }/ r0 B

+ [+ h; A7 O( k/ Q) {7 J% k
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:
+ L+ s  C* ]) e6 z7 H6 R& F

2 q  t) R; X4 {" ^* r$ D9 ]1 y

' ?4 {7 t3 ^" G  q
1.png
! u, I0 R7 m0 K: `7 c# U0 b
+ j: t; M( y/ l& V3 X

3 }, [" y" |2 j! k, I& H1 f
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

4 n: j# e: m1 M4 U  T' f

% J) C3 X/ n. a; b) B
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。
- Z9 a1 O! T9 {" s5 D  H4 `
% y+ u, w( b7 d& Y. R, h7 Z
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

, v2 _6 }9 `  d/ y& G3 `! L
" d5 L. M* S- M2 i% }/ t
效果如下:

  J9 o* r4 y$ M0 H
4 j, p' ]+ C. q" _) s
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
; s: `1 h' y, B) h
  m4 q( z. D% I% E9 ^; K- a
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。
3 R* l8 j2 N* U0 P. \3 ~$ G
: b' B% K( W0 Y" A) U
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

! A) S( W6 b: ~0 E1 ~

, s% w" B8 X% k  J3 l4 j
1.png
. R7 L3 \4 L* F0 S; |
. d6 r) V1 e, b8 a/ c/ U
名称:Web场景的名称。
! R: G/ }& X0 \  `
( L, |/ W8 K# A6 Q+ a' Y8 ^

& q* w4 f1 n! J+ W7 _* [: P: j0 F
  • 应用集/新的应用集:选择已有的或新建应用集。
    8 a: ~2 s3 I7 T. _1 X+ ~. M) c
& V( a$ ]$ B- m7 n0 ~* D5 e
" w5 Y% Y2 r( G, i  y! A, f1 H
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
    ' i$ {4 G/ }: Y3 u
/ s, ~% x" T% p, E
: l/ E3 A- @; N- ~: x# H
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

    2 `' B& L. I  I0 \3 i! Y
8 ^/ [6 ~( i0 S. }- k

' O8 k: J" s( x8 `, k
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    " [  n2 N% C5 f. n- @# c% h

0 U: C1 d+ Z; q2 z$ i/ M" I

. Y, v3 q& q6 p& a( y4 C
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。
    % t% S( @- E# C
! Z/ P. @; s; U

, M& j5 p; q6 M
  • 头:HTTP请求的Header信息。
    " o: S; D; A. N' k( v8 Z

& {0 @& q% [7 u8 h% F
切换到“步骤”Tab页,添加步骤:
) R! M6 o) |" c5 m
& Y+ ~) S8 X9 o
1.png
  • 名称:步骤的名称。' g& J* n: U8 s7 h* M

    # L: c; l2 i7 t' A- `# M
/ A/ |: s% h! A/ [  \+ @. L
) ?% ^' O( S8 s$ R' f
  • URL:监控的Web页面(注:必须是全路径带页面名)。

      n, {: \$ G9 ?- `
) z! Q$ q7 f- t8 o. u, S9 A0 L4 w

3 t! x3 E1 D3 ~0 e2 m/ X: \
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    9 G# s2 M7 r5 \" W- F

" O4 g0 _8 z2 i3 p6 n. X8 Q

! A/ D8 P; M1 k5 ?
  • 变量:设置变量。

    % I7 q" u( I, h0 H: q0 P5 w$ o% G' ~3 u3 N

- B6 D" y2 J7 v+ g/ Z
" f1 M5 o; [- F) u: U$ F, t
  • 头:HTTP请求的Header。
      {, n8 z, ?# l9 O$ f

5 c  M! e) M: V
! M1 \. }: m. q# I" d+ c
  • 超时:超时时间。
    6 H( }( J" i( M. v4 R6 N) \

9 g, v8 M( c1 V4 a5 C7 V5 M1 S  S

0 W* ?. R/ N6 g3 V0 n5 N
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。
    * e, Q) v3 {! S# K9 V: g$ R5 c! V

  ~' K) @1 ]/ `
+ X4 G6 G8 a( q* l! Q$ w
  • 要求的状态码:期望的页面状态码。
      h8 I3 C3 @7 d" y+ T* X# _3 Y- H

! k8 C, T8 {. l
如果有多个URL,则一次添加步骤:

; U3 N: ~- G# W
6 r! o2 [8 N6 W, n6 Y; P) x& Z
1.png
- S2 K. t& {9 z0 k, d

2 ^/ w; A9 s: _1 ~4 T9 n" ~
添加完成后,在“监测中”——“Web监测”中可以查看:1 B2 U& s: K; r1 L7 z  `

; h6 y0 k* `; J+ ~8 e2 W6 H

, [" N$ P: I, H- b' O2 ~0 w" b
1.png
# \% G& j; f) ^& ]0 G$ _$ B- H

, }% u& {3 I2 p9 t  m2 B" `
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
; j5 u& q, e5 V4 q8 u
; q; g0 M4 _: E+ l5 M9 b( y/ {8 K
. F+ W* y& R6 l) J7 G% t0 v
1.png
% s1 C2 n% ?  g% R. W: f9 I. Y
8 K: R" b% K. \; l& o1 E5 }
( X: K2 W' t, p* E# K) Y! T
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。

( M4 J3 X" V0 y: b: \1 k4 d- ~
$ f: ^# ~, q* ]' f- J; G) m% ?
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。

; b( A; s% G5 h- m) r2 q; q

* Y$ W, F( f% v/ M1 V) n: y
监控的方式非常多,ZAbbix支持的监控方式有:
$ p" t* i0 A6 W0 Q; R/ r' j4 v

  W% x( V, n" N- m- r. Z
1.png

" c$ p- E# l1 Y" S+ m! b* u# M3 n
. j5 I- j. E; u" Z
其中,最常用的有:

5 J  P) J, \" w
6 u( X3 ?* i, p7 g
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    7 _. [; E+ w1 M/ P2 }& u9 u6 h0 U
- l6 J- O6 R7 s' |; z
- S7 l: I% f: l' ~
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    3 c4 J! |! R. r* h6 v

) k7 H$ Q8 y$ A  c5 C% D  C
4 p- J! n+ N: I' ?
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    4 f6 H' o, \- W' r# z! y
( w( G! ~8 f. O6 a; L. R; |( Z
5 |$ U' s: Y. R: S/ m7 r
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。
    3 Q4 n; e3 \5 _8 G; M" d

3 x6 Z; u" W- o
% s* U6 F: Q! v. @( D# X+ f
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

" n% Q7 x* x7 w  B

! S8 M2 z# u9 M) _! S! k, e
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
0 c. ~: @2 F3 w3 ]
+ I) D1 S. ]9 p
1.png
7 o6 T! s2 B7 l2 ~$ \
创建监控项的页面:
' G; m$ G1 C9 v0 S$ N

2 X1 f" H! `. Z. o+ i
1.png
! S0 _6 ?* Y: M& R- V7 {1 V  J
2 f. e2 g* K4 N1 c" l) ]; q$ g1 _2 C

0 |2 }: d! f  S7 A) W
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    5 n. U# |) ]3 H1 |4 |
+ y, @: b- E0 A* _" v( w* G$ ?. R

' q8 d  J% o0 T9 d
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。
    + s8 o2 Y2 J% E$ B  v6 W

$ a! h$ l; ~* S

" W/ l( _4 p' [0 Q2 I4 J
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。
    % m6 f" _) B( h1 W2 N$ D8 O! ]' L

: F  f6 B. {0 j6 V2 ]/ d
/ _, J2 V* j' N& r  m
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    + q% \7 w1 s- q8 l

: b# {2 K- c9 a: M9 h5 @3 g

- n* T) B, v% t- h! y& p" Z
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    8 j& p8 v  q" K+ H; K4 q
: f9 @% C1 V8 W$ ^  ?: z( P

/ [; y* N  R5 D  v  c
  • 数据类型:数字的进制。
    ' T, Q& A# u4 K4 d2 v% a# G" W9 s
/ r, t7 A1 W8 |' y# S3 r
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。

% q' m, q6 P0 U' P0 N" O% c  A! ~
9 n% H6 K5 U( L- ^
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    % x" C: O/ H/ |

  H6 {1 D- ^, A" }! a
: ?9 S! p9 ?+ e* H
  • 数据更新间隔:监控项的采集频率,单位是秒。
    ) B' A& h' Y- b4 M, ^; ?; T7 T

: g+ p$ {+ o4 O; \$ O

* Q, L: v7 @  g
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    $ C4 K1 U* P7 i7 g4 [
; u$ k0 ]8 m' R
4 D3 n+ u2 H0 P4 s! q
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。
    . A/ j' J' {$ i" b! m3 k' m8 @

& U- F& }) J" {# u- `
8 ~) n! L4 c+ ^1 N, G
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。
    : Z6 C( o! A- B: a. C1 ?1 ^

/ d' n- @# I- b4 r8 @
9 L3 ]- a7 [. I' x
  • 存储值:存储采集的数据或者存储数据的差量。
    0 F- h6 W0 T7 J. o& q' ?% T
- f3 K0 ^& }( ]1 C( ]9 O9 V8 ?
; G% w7 A# R1 n' A* o+ J
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    6 y  H4 N( [/ a( l, L

  T5 v/ O# ~. {" o; c- }
7 w& T/ y8 Z& E, k0 R5 ~
  • 新的应用集/应用集:选择或新建应用集。
    & i# W1 `' ^; ?( x% G6 T' W
* C& X6 F- o6 z  L7 C
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。

8 d. x) F( F: v* s7 G7 ?) y2 |

, c' l9 \4 |  m5 v3 W+ y1 ?. R# `
8.1 监控项的Key
. ^  \& P) W8 }7 B: h! g: z. r

/ }% V3 b  n! X- J5 v
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

1 w2 ]) q1 z- ^. K

  w, a% A8 ~# A/ P; ^* u, L3 _6 e
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]

; [% T; Z+ W5 ?4 [& K5 N
' ^$ d3 ~$ a3 c* a# V' O; ?
举个例子,创建个自定义监控:

6 v- {' {8 e% V3 h4 x  I6 R7 V" y' K
0 I4 Q% B7 E" h, V8 |" _
1.png
8 U' {5 A! `  _, T

0 I  F( j) a2 O5 y0 _- }9 Q% q5 T4 `  w5 p1 m( j+ y$ f6 y
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

' x0 B* `: n0 |  P3 c/ z1 ?
6 A& D' o4 E$ s& O. J
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:

( u/ n/ W& }  H. l3 J

2 _8 w9 V1 h% ?- Y+ |. r# Y
UserParameter=key, command
" ~) T* e: J  S7 o: y) }- Q7 X! C
8 m) e) [0 S/ P$ Y
带参数的格式为:

. S3 B9 O' J1 m$ F
$ ?4 r0 ?: ^* }% g8 d. [
UserParameter=key, command $1 $2 $3…

" f3 g! ~; L7 \
1 p9 h& z, [& e1 ?( C
添加了UserParameter后要重启zabbix-agent服务才会生效。
$ R6 r+ t" D" ^8 D9 H
' U# u/ B  V5 l" {" I8 }0 y
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。
! P& }. U* O+ A" N) Y
; r. V  ^+ P, O$ v3 F8 ?
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

+ p  f. B  J( B3 f4 ~# i

; w5 t7 `+ Y& j' @
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
  D" ~+ I: M- g, s$ l7 k  n# _

3 Q  c8 s5 G. |1 q  Q  n4 ^! @
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

1 g* l/ r5 s4 a: _' E0 @
- L+ }  Q$ O" w9 r6 E
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。
/ ^8 ]& t0 ?" O. O' v3 T
  R9 g8 F0 t# d, \- T$ F
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

6 T8 i" m. m% s

. \* f; P% c. S- I! o# p# c
1.png

3 ]( ]( |8 S+ _. Z. x
6 F8 t7 ~1 D( d
8 G7 |* p9 @, `2 p
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:

* l9 k0 t  i3 L" D
5 D' N2 Y. U* t. C. x
1.png
% N7 t) [% n& S+ S- n
( \9 @3 h/ F; I7 z
# i! v7 a( \& l
Zabbix支持很多条件判断:
9 ?( ?6 h9 o% {  @" f9 ?. G

2 _" ?( h" K* M. i' [: I* \+ S& J
1.png
8 H$ `  K% G/ k1 D' }

( y- g2 H' _1 k$ D
& j; H0 L( z- O7 F' O# M6 m& U+ J. q
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:
9 V) U1 w: w3 J* u, U

" ~/ J) v; \2 z" E- r+ S
1.png

  u& g% V# t5 r3 y
" d: V  X6 @: Z- V( I* U
: v- b5 w  R1 x' E' b, `& {
插入后就生成表达式了:
! \- @! z2 s# h( N* x$ D; g+ e

. g; B" ?# G" k
1.png

! [6 g% c9 o- U% B5 u' Q
3 I' a6 @/ A; T7 J1 v+ k8 A- D# u; h) _0 v/ ^( z$ A# F$ u
表达式支持监控项&组成复杂的判断条件。
! N5 }  {  `' L) V  [
, _/ t. T! e/ i- r  h
1.png

# Q$ r% W! p0 |- o
' Z, w$ T4 f9 Z) [1 E6 u( J2 J, f$ a  K
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。

: I0 Y3 u; ]0 N' J/ T. K
0 L7 O  k6 a3 a* c3 `% b
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
$ _& U7 X# l6 @6 V& H  d

- o+ `5 d6 _# v+ a" D  {
在“管理”——“报警媒介类型”界面:
: Q6 s2 p6 Y4 f, G* j/ V
& q, Z) J1 E, {& [- S" q& M/ X
1.png
+ s; t* M1 {2 }. |) w1 S

( w7 S: k5 h( y5 J
+ S, Z, S8 }) L2 z+ B, O6 R% L
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
+ L( n' v1 O1 p3 q- i9 \
* r8 z/ ^, x  d0 {0 o3 r
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

5 _& n! W' J, D* ^  I
0 e! \1 d+ c: u( J2 B
1.png
3 O) y5 S2 g& K4 g
7 x+ n4 D6 F* [  N+ C  R" m

0 R' m3 [/ ~& ^( `  M/ a# G
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

5 \6 h' E; o+ q, j

( ~4 S- G6 h7 H( Q/ l* }
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。

0 z+ B* {2 [) V' l$ f  B; C3 t

" R4 B+ x/ v6 H1 c
在“管理”——“用户”的“报警媒介”Tab页中添加:
: Z% h, x; t9 E, V
& @5 Y& P6 S) e
1.png

4 [6 j+ j1 a2 I" |% \0 d0 B
5 C; \. j. y2 b' }: p2 y! n1 s/ x$ ]* e6 n
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

/ l* B6 ]9 x% d" @( k3 ~/ i1 A6 ]! I
4 y& I% _3 f) W  u6 Q1 `; A1 r9 m
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。
' k% k# P1 n5 m( c9 {
4 }  P* r0 x3 U2 _7 g
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:
, z* z# _9 A3 q" g( i3 z
& v1 h1 F# e$ M/ ?5 p# a0 u
1.png
: M' k/ n3 {2 V6 W

8 M7 a6 a1 w$ D- I8 ^$ ^7 ?/ ^
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
+ T% @' v9 r. P! B4 p( A8 W6 q/ o# U7 B
- P* g' U# s- N9 i! a' N. t
1.png

0 ]* @) K& y' R( z/ u7 z& z1 h: O- W3 x
! ]9 a, u4 r8 k  f
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
' J& p# R( \& ]: ^
- z) O5 c$ s) W8 K, w+ Q
1.png
! E! u" Y' z4 {% |% L

+ ^7 V$ p4 L( u& Q$ K- X$ H0 l+ O5 E
不同类型事件的动作可选的操作不同:

' E2 U% R  T3 P  A6 P0 j

6 ~3 v/ ], _: K/ U; C
触发器事件:发送消息、执行远程命令

8 ~( Z7 |* Y6 N) U: _" |. @

7 W8 B/ x! t! b8 R# x: r$ G* ~8 ?
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

1 a+ {; @9 l- z" I

% a6 h7 a( L2 N% k/ m8 u
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

8 H( \. X1 F; F, ]
3 c/ t5 @4 ^% L8 {  L
动作发送消息的日志可以在“报表”——“动作日志”中查看。
8 X. X$ p, o- O1 f- V' [- Z
8 u# B3 s$ w( b, d
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。
( J8 y2 w# e& \

1 @. Z1 z& J' d
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:

) j$ u9 Q/ {! v) {1 q: w
# g- v9 t4 @4 r' G
1.png

! Z* K/ o9 d# |1 _3 t7 V  R. ?" Q5 I0 f

3 }4 I& S" M( z0 I  R! ]
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
' }* L% Q/ L( Y8 ~9 v& @/ K4 S
5 L6 m+ {$ Z, \2 D
1.png

! r" i$ B0 {9 J6 r% ]- f$ z
  J4 ?: J" B6 W: X
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

4 z" b+ {- }* \6 H- Q

3 D* |1 ~! b2 G5 j0 i
1.png

! U2 i; L) Z7 \/ W8 K& z
  o+ G9 r( l( P) O  K. x. c2 r, j
) ?$ u# W: S' c# I
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
, h9 S! L  T# W& p
% ~) n& Y+ K* E: F% L9 e
1.png

/ @+ E- |$ z4 E) b9 [9 y8 t/ }5 m' A1 {; m, Z1 t& D- v) P  M
1 v, e" w% \1 P0 R9 M
然后事件的确认状态就是“是”了,表示有用户修改过状态:
* _% H1 C( K$ E* K" K
/ Q7 m% t/ S0 }1 \* _
1.png

- x6 z" y# p/ W
5 c7 P; f& Q0 i; M- ?" _: `: p5 [7 i8 O1 n$ X! u1 z
点击“是”可以查看具体的内容:

! T# {0 h$ W: H
* l2 Q1 z+ V  I) f# e+ r
1.png
- a: t% C) ]6 F' x9 x1 G
" [: L3 C7 C% U8 x& X0 l. N& Y% d

1 t; h/ G+ C) R原创:吴坤5 Z' r; n: U' y; L
1.png

本版积分规则

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

Baidu

GMT+8, 2019-6-17 23:33 , Processed in 0.253454 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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