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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑
- a) ]3 s3 j7 k9 G+ w% \- k! P6 e& ]: e2 u2 `7 N0 Z

2 r0 E& K2 @8 f0 e% z; F0 ~
2 E! p+ @5 E9 t( [8 H( s
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

7 T8 w7 b0 |! L' v
- @) x0 M; t$ B2 o' @' E
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。
% G( Q# Z+ y! ]- B# e, i

) e; C/ [2 R: x; g; p+ B  Y
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。

/ v- t7 r7 ]  b2 z* o/ b" Q! T

0 G1 ~3 I% X! t; {0 v; X
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。
' Y3 {* b) C7 ]3 h
! Z' u/ g: i6 i" q& b7 n" h' K* B
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)

0 I1 ^/ g/ J( g, F

9 ]( z, M. z" R/ _. q( |; R2 P
Zabbix的运行流程可以用下面这张图来简单的描述:
8 j9 s& k4 p6 p
: a& x/ P  x) a/ a  B% X- W
1.png
1 添加主机组
& H9 b/ k8 R( v( N+ c7 i: n$ U0 `
分组的目的是将统一属性的主机归类,便于查看和统计。
2 U! Q; K5 s% ]* Z, s, N% [

$ j, W; T) O' V5 Q* d+ b9 s$ T
主机组中可以包含主机,也可以包含模板。

  A2 w9 V1 z  \

1 t& f2 r" p7 Z& Y( {& x/ I& ~9 n
1.png
6 I" w& _5 w# N* A

  P# l9 B0 Z" w7 `# ^0 J3 o. @; z
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

6 Y6 B. G% D; V- P, W6 N

8 K& t; [" E1 I% y2 O  L  @
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
- q5 D1 r2 x& G; Q3 }4 c
+ o% c% f7 R" C7 E" S4 T* l. u
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
$ B, @( C6 @+ ^# O9 H# N1 x$ w

5 Q- B# i9 O& Y
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:

3 g9 g0 B9 X+ C

" q! x% z9 Z' a
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。- n/ F9 G7 O. ^. |, j7 H0 g! V

( B$ \: q% F) ?  c
4 u1 @4 g# O* ~1 n
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:

6 }! H6 q9 l; x) M- y3 Q( G9 p' b7 c/ }$ E
$ `9 Z' o. t, F1 U/ p2 |
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
9 c! l( r# N) c, }

5 j" T" I/ Q' i! m, X
* s2 ^6 x% P" j1 w
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。

7 _) J  p% Y; b$ {% d9 j2 l% Z: V
  T! H( q  z. y0 R* W6 l
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字. k( T8 _* S: }0 f
/ A0 B1 g9 _7 c$ Y9 L

" k, @( e$ r4 F9 r, v& N" ?
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

8 E) i# J; E% j: }2 [1 j6 x

2 ~8 [) K1 M8 ~8 x
查看刚添加的模板:
9 m; g+ ^3 j" T* n) {, @' X
, c% Z4 k4 C* ~8 S
1.png
7 @6 s) d1 o; h0 Z( A( `0 @; i
% J' q; [, y' D. B- r- I' C9 F
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:4 X$ ]6 S: G. F- {! L5 P- E

% q- W; `" U" m2 ]; b' s

4 |! \7 T, G- o! D/ V
1.png

( x( `- X9 ^9 ~: l8 X) g" U  V8 V* \+ d2 @# j: `
关于如何在模板中添加其他的Items,后面再说^_^
# @+ R! j2 y% p# B
) @8 g) u7 d1 p' [
% e) ~8 p7 A7 x
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:
  R# g! y" {+ w7 E

9 i( G9 }7 X3 s0 Q
1.png

  I( ]" k: ]0 ~! l
# w% \4 T/ R/ _; r, _# @/ W# |
参数说明如下:
1 H/ H4 s. x# r& B0 y, m$ w3 c0 o

! C( |, ~1 Z6 O$ ~2 H
' r8 d0 R0 H3 G
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。

1 ?9 {8 h. m* K3 C1 ]% L
6 N/ \9 j4 |( K6 A6 m
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
6 R. a! |! C1 v/ w
4 y7 w, f+ D' i% h# R
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    ' l+ s: H. h/ ?5 E
" s% s7 v8 @* G% T+ J/ F7 M

; B/ W3 F; B8 m8 U
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。

    5 {2 ~) W& a5 `: g8 S
* c. S+ Z. W; n' b, J' W
) W5 a1 w  \1 m- ^  N
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    : F. W4 B+ A# V
4 N; m! \  O4 x3 l- r* o& }

+ R1 E' u" _! C; r
  • SNMP接口、JMX接口和IPMI接口根据需要添加。
    " {, O  R+ `; T* z# ]; b

, ~) }( E! v1 E- F/ E
+ K" ^1 e8 |2 Z6 Q7 n2 z
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    ( ?' H* P9 S# @  Z& R, j

! ~9 J1 J/ J/ D* g
: F8 g  D- A# {- {" h3 x
  • 状态:是否启用。

    % w2 d& }0 w: g; |2 o  N1 s
% x0 E. z9 C$ o( J" Y6 u) o, ?3 }
选择模板:
- f6 o& m0 M: \6 ~1 D
3 u+ u; }3 P/ h0 Z7 b
1.png

$ a1 t3 v% p2 t4 K2 G  }6 O( g6 R( k6 [( r+ N
如果还想配置IPMI、宏、主机资产信息,依次配置即可。3 P! S8 \' i9 \% q* m. s

1 k5 x7 w1 {" a$ u- _4 [

. I4 e& u+ G& ~) j3 \  Y. M; O! c% x/ Z
4 G. J3 h6 Q0 [; X1 O7 U+ T
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

. ^) U7 ^6 L' K6 S, O) g$ v
+ `* i+ C( e; Y2 T
在所在的主机(模板)中,选择“图形”:
. D6 V' y3 n3 \6 Z  R+ S+ v

6 x% P- v0 _  g9 l
1.png
! t) T" L  W% {# w

5 o8 z& \8 l6 O$ `! p/ N4 m
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:
5 h/ v; E+ W/ G5 ?  ]) a7 c* D

/ Y3 K, q+ T& e. R7 D

) N; l: m, `3 C
1.png
  A, n) ]* e1 A/ Z5 R# ?

% y) i: T- I: Y4 f
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:  E& k9 G" O% Y! R: u- c

' W$ o% @4 e1 G) d) C- ?$ X  f+ v. r+ [
+ P2 S' m" ]: U! m
1.png

: D3 m! m% z- O6 e+ D/ R$ o+ `% e6 U+ c# p2 K2 d' J/ K( o$ N
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:" e, ]/ @, ?$ f# I2 i; }

5 X$ L- K" @$ j4 T4 |' m  W2 n- Y1 b

2 `2 O* f( b9 _6 p  G- o4 N8 ^1 x
1.png
! T& E8 ]1 v0 B

% h" x+ _; E) h
, G7 W* F5 b! b/ q) g: b& q
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:
7 Y8 `. M, p# j0 k  |* u
! E! G, N( ?0 J' C, Y, w3 |
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。
9 J' D# e( p! i8 k" q3 F, {

! b# }! k- Z. B/ r7 w: [. [
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees
/ F9 Q) q5 D9 H( n& p; J
# G& ]: O; w" g5 ^( D
效果如下:

8 O* o( v5 ^8 y7 y8 P' L5 g- g6 p
# r/ C# i9 X9 u0 b! y8 v3 m$ h
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。

3 d' c8 K8 Q/ D! @( B3 t& ^  t

* ]1 c: Q& g; z" N
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。

* e% @4 C/ n: B& k% w: k
1 q1 ~6 _5 r. {2 k+ \
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

: e7 ?) r" G2 f" n0 Q
" {$ s5 k3 w4 e) i. I0 A
1.png

  x9 v' F+ n% }/ S

( j. I) ?% O. ^, [: O
名称:Web场景的名称。# x* k) L7 S  K. S- N* C

: {7 ]5 l7 K  M% A9 {& a7 Y
- U0 Y5 W  f$ f2 a) K5 p3 W
  • 应用集/新的应用集:选择已有的或新建应用集。
    : R1 X% t9 `! r& c5 ^& K( W
7 ^( a/ |& Y0 e+ g: \# a. w
% D& C0 \! O+ ^
  • 数据更新间隔:Web场景间隔的时间,单位是秒。

    # V1 x( |7 Q5 z+ ^
0 ]1 X  g4 `" _5 ^; V

: j/ F! t' F0 Y4 r7 o; ?: L4 f
  • 尝试次数:重试机制,默认是1,最多支持10次重试。
    0 |  e9 C$ w$ Y8 R* Q2 ]

" u8 U0 Z  z9 Z4 O6 u( ]
: ~- w/ o2 j" s7 N
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    / T) e0 V0 L; L% ^# _# {6 U

( U; z9 m5 o! c# _4 Y9 i. U

- C3 Z5 q# e& i
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。
    ) H1 v+ {9 c/ |5 j
$ r# Z# V( C: a8 {
  X3 ?+ o  o2 I) m/ g
  • 头:HTTP请求的Header信息。
    0 r- _- m5 U0 T# P
5 B3 o7 _$ S9 }9 {
切换到“步骤”Tab页,添加步骤:

) _' D, d; A' c- ?

" l& O0 h( c+ z& y# c- p
1.png
  • 名称:步骤的名称。! n% v5 U9 x. g% c( w4 r

    # h2 X# ~8 F! ~- d( c' j9 F& N

  O8 B' Q/ m. f% x5 I8 P
$ D, J9 g. g0 c3 Q
  • URL:监控的Web页面(注:必须是全路径带页面名)。

    : w# |! V' D( k1 k: r0 \! t
5 R+ N0 Q9 W/ g( s0 W, j8 Q

7 t6 L. b3 c' |; F' g: N% s  O
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    5 M" Y9 o2 i) S; O) k6 E, o, F' C; Y

+ J1 U3 o$ s. p! B' `
, O* p4 h: C% w' X. p0 O- R( G
  • 变量:设置变量。

    ' o- Q2 y8 @- k! k; W, D
* q- I" u! U: N* f4 Q; _8 r
9 a9 l8 @# X, z3 c$ ^: Q) {; O' k
  • 头:HTTP请求的Header。

    0 z( D; }) {9 ^1 V/ E4 |

: u2 C, X) m6 S/ C5 d2 @' E; b

  K9 K: [: L4 ^) ]
  • 超时:超时时间。
    ; I7 [; a! b, T9 k- i) I. U

- b" @2 J6 q6 k* G

; Z; f& m; n' l* J# j6 i$ [* V
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    0 a. r+ g+ i; e# A, G

5 G  ?5 R  b- ^. E- p

5 P, I9 }* M4 r. u5 G0 Q6 g' i8 J, }
  • 要求的状态码:期望的页面状态码。

    , {. C" ^. v0 e" r! X

+ q; ^( R" e2 Q, b( E, A  j/ C
如果有多个URL,则一次添加步骤:

; N. J% z- o. G0 W1 t9 `
/ r( B% t. r+ t" r1 x; F: W/ X
1.png

- k) ]. ]; q5 L% O! T0 Y1 |* V8 {3 J! N) w" h
添加完成后,在“监测中”——“Web监测”中可以查看:
4 }8 Z4 x+ r/ N2 k6 k* d7 u

2 [) R5 D1 f7 B; ]
" g% ]0 Z9 H+ r# v+ q, b2 ^
1.png

! E; Q1 v% C/ l7 `9 k: z) ]
, v0 r) _8 R, b* f
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。
2 t+ I. [5 [1 Z5 R4 }. p# w
8 X9 u$ P0 g+ W) ~1 o, l) k; N
5 O3 ~, ]5 v, b3 o. j
1.png
# e0 G4 a& I) I( d: o5 J

2 @3 R3 S* q0 _! q3 T$ _& I% F" u; r3 E5 [
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。
3 m. I8 T/ a8 ]  g( Q
$ N9 f( i5 `8 ~5 U; x
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。
- E0 g* R$ c: E

. O: U. v4 G) ^; w$ K7 z
监控的方式非常多,ZAbbix支持的监控方式有:

5 h7 V  k* S- O0 y3 R. V5 O& n

, i1 G& X! E  A+ @
1.png

  m8 a, Z: z: f3 D: d) N, q9 R3 k/ j4 e  K2 U8 m* P6 \$ q

" }. o' q/ D/ G# Y7 B6 w4 r
其中,最常用的有:
9 q7 J, y8 Q0 R( O, X: G

9 P9 K. {& t0 G) G! |- p( l4 m0 x
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    0 G4 c5 E2 G/ n2 w6 d
2 V- u8 L+ h! y  l

) g5 I/ c  H  u# t
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。
    , a, g; W7 A1 [9 N( `

) s5 Q" ?6 D  P' a: s
; O* k5 D- g; Q" R3 s( X
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。

    / n% C- S8 a: |+ u4 k! y- W* b2 o

: F$ A# @' |; l( M% R+ n# u& H

$ V" `, }4 O9 o# N9 \( P5 H3 e
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。
    5 `# R4 ?1 K) E$ M

$ `7 v" {# B% J- k. H% B0 i
# z0 n# K' A( P0 X
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。
9 }3 ~' R; I+ t/ e1 F7 r
6 L: |% Z: ?" m$ Y& X
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:

8 X2 q# e. K5 u
! g8 }0 h. u2 Z# s" h
1.png

# f2 a1 P. l/ M! s
创建监控项的页面:
/ G. e$ F( H0 X" m9 k; h

0 }! `* Y3 C; y9 A
1.png
* i1 y! k' s, c/ B# m, E$ j
" E# p# E# s/ G! P( L  |0 Y+ f8 @
) V2 M5 h8 c6 L: v% ^3 \6 ]
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    6 K$ T5 v& u6 G8 n) ^

3 A# ]4 n/ v. [7 ?0 g2 c
; A1 v4 E2 B% L; b
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    2 A% n5 A; |+ a4 J; C3 F$ }" h8 s
0 c9 _! C3 f8 y- ?' K$ Y" p, N3 l
' g. g+ H4 E/ M! F& m
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。
    : i& V' ?8 U1 }3 U" g  v

% f' D+ P( b0 a! Z
1 X5 R! a, O- }
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。

    4 ]/ V) r2 H" Q) P9 }
2 [( M" {& k+ x3 ?6 j& Q
4 w  u( I- @) K' M( o
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。
    ( z& b+ @; Z. u; A

4 f- K, O; S+ D8 ]3 o
' Z$ {* G5 d4 q, Z6 [
  • 数据类型:数字的进制。

    # |3 |+ A5 _& O0 w+ e. f

6 x) O" i, q% k; L; a* C( _
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。
7 m. G  J! K' Q. [# B# o6 g+ K

3 a0 \$ B/ |4 i: Y
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    ) k3 ?5 ~' l$ f; T7 E' A+ f# b
6 o5 h0 ?9 u% w$ d; V; C

1 ]) @  [* V" `) P9 _% y
  • 数据更新间隔:监控项的采集频率,单位是秒。
    6 Q# y2 R) u7 v6 T
3 B! ]+ {" n& k% t4 u

& O3 s( _7 L9 j7 O
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    . D" \$ n* x/ A, j: z
6 Y8 @, K6 a/ U' w
: P/ u; l  i6 g7 w' v- F
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。
    ) M  F; q+ N3 \* M
& f2 O: H- g! M0 ^# K% ^5 T
/ w8 M8 |: g7 l7 q( t! u$ i
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。

    3 T: X; I7 I* J3 k8 B, [

& _& E+ {( ?0 P' Q7 ^8 b0 \% |
) [* M8 k+ j! l- n) ^& F
  • 存储值:存储采集的数据或者存储数据的差量。
    ) i7 O3 s8 T8 |- Y- z
" V$ e$ ^/ p" w7 T- w3 x

) |' E3 l# K  C$ G
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。
    ( p  B, P# U0 P* W0 v1 Q3 x

2 `1 L% X. l3 _+ }6 I$ P: m

% G% p6 T' k& l/ ?' c2 [" z' j2 Z
  • 新的应用集/应用集:选择或新建应用集。
    , E" k) j6 @  F' d" i0 d
1 }6 G- ]( Z. V
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。

1 \% D1 w, J/ a" F
7 a1 g6 N& d" u5 |3 X' q1 ]' K
8.1 监控项的Key

& z3 a  k$ [, F  M2 E9 G1 P

5 b: y. _" `2 u$ a# ^2 Y" h5 {6 q
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

( z, w2 c6 o. }! |

" G  z; O2 C& m5 f/ N$ M
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]

  t( a" p/ l! S, A* ]# e, G

# o0 O* m' v# f: G" \+ U5 @
举个例子,创建个自定义监控:

0 l* e( M7 S$ C4 m# k% Q

3 P1 o% L8 K2 `2 A" j) {  r  d
1.png

4 @2 c2 }1 W3 o! B
  e) {3 S  b1 m* R( B2 F
) ]0 s  r. ^; p$ R7 w; R. i" `
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

& m, @3 P; I1 z7 ]9 u0 `( n0 M

" C7 ^" [- Q; ^) w
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:
: Q$ J8 }: ~9 Y' f/ U4 I' `4 c* V

/ @$ L# d* V! h4 x
UserParameter=key, command
/ \) C! |0 |2 d" V9 o/ S
; W  L8 k  W- ]9 q+ q) s
带参数的格式为:

8 d, O: V5 m' G
+ D, [8 I5 c; R$ G  D; M0 I& ~
UserParameter=key, command $1 $2 $3…
& t0 [( P; I3 ]: ^

; {5 P4 q& N+ X' }. f5 L. e
添加了UserParameter后要重启zabbix-agent服务才会生效。

, k1 q/ Y6 ]5 O

3 [2 ~1 v5 R7 ], N. h
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。

  i9 y8 _3 w# ~9 a

3 x. ~" f( C) `5 g' ~
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

5 Y" l) `  k9 t0 o
# i9 K' x5 d% R5 r
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
9 r( ]" S$ c5 t2 C) N

; ~) |$ ^. C: t+ g( }2 R. s
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。
* }, }0 g1 j' T( Y
7 U; q$ M/ x% j9 B$ h& d
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

; X- ~4 w. [  f! \& N. c
! w& C' }* W& c4 i# C9 k# D
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

* [( A  b9 P6 ?8 w" Z

, n5 m  ]6 ]5 d
1.png
: z% \. d7 ^# v* e
/ B# Q* F2 m. g9 f: T9 n% a# b

" y! p& x4 `- q: V( ?
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
: L5 \9 X; q+ b

4 q6 _2 A. `4 \
1.png

+ w8 y7 o' o) D0 k/ O6 s# {" l+ ]8 R
  V( a8 b# i" }; ]9 i# s
Zabbix支持很多条件判断:
  g( A# v' E) x/ u& D

/ F( X) {. W3 Z7 v+ ^( g1 G
1.png
% B. _! z, @0 m% E* g

8 P8 o* L5 _$ D, D) T+ h" g8 d
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

5 \% D$ b: ?) t) A. i. C' H

, P* H0 l& g$ T( G' T" E
1.png

. G/ K, m1 _/ m
$ H& \( r2 K; ~! f6 N
  k; _  e! q7 D- `4 `+ `
插入后就生成表达式了:

: w7 R* q" T( A& w9 A$ R) a9 J

/ Y9 R. M0 x5 Q3 C6 P* E7 D
1.png
) k# }' t, O+ C" g' S8 S' W

# c$ t& v# ?: G8 |) @. r
  K- y/ a5 w( T" D3 e! U4 \% z9 f
表达式支持监控项&组成复杂的判断条件。

$ h% k: D/ l  `+ O- k

! p: `- G, f7 ~1 E+ i! e" ?. ?4 Q% Q
1.png
3 J7 _$ }# L1 j2 E8 x

! W  Y' z! {. c: A* S/ p
( j7 K* ]1 a& b, |- v3 Z7 T
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
/ U& m6 Z' |3 d9 a" W2 [

5 U; Z; @& |( {( D
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。
, k$ X% S* Q' ?5 e5 A  P* z; Y

! {8 s( s. M! B9 o2 i  i9 s# s1 r7 Q
在“管理”——“报警媒介类型”界面:
4 l, y& M$ h  g0 l* I9 u
# [/ q' w- {  @5 v! G( D
1.png
5 d8 [! t% _0 ?- M0 t' p
4 y; W8 _) r4 h

5 ?% e. F. X1 {: j' A6 j  i# ]
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
0 v; R, v) }! b

! Y/ r6 M$ r1 v" h
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

( x& r; @$ t$ f8 _

4 _8 Q7 f4 p6 G' M: n$ C
1.png

0 j1 O: D* I2 {0 M! g$ E. }
$ A+ w& @+ Q0 ^% N5 f& D: }
7 s) h2 a9 w6 g3 h4 z' S
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

9 A* p# Z5 _. W* l0 X# M7 W
% w8 C7 C5 u* c/ \
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。

0 Y, P6 U* n( a* ^
# {+ ~; D2 z- s2 r8 R
在“管理”——“用户”的“报警媒介”Tab页中添加:
& e, w# E  V# T
7 ]/ N2 W$ O! _
1.png
  z# S, E7 s. R! u( S! B

' n3 ?6 h9 \  q5 x" T& i. X4 C! I- H  P4 T7 G
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:
" ^9 [7 H! Q5 F  g" r  S2 A
$ B+ p& r6 t; p2 k9 i
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。

5 {, P2 d+ |% B! [6 g4 Y% Q

% S- ]: b: u4 L$ ~
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

6 r5 n# E3 [3 ~: k, ~

4 E" J& u0 a! o
1.png
0 b& x9 ~; c5 h+ ~

5 w3 ]4 d, [2 x7 l1 `4 W, s5 l2 `2 R4 ^
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:

8 K! N: y6 |  K! |& j8 ^3 c
5 q; B/ l7 j/ N5 E
1.png
3 M% Z( |0 i1 \1 O+ i9 Z
0 w" l3 i8 w) f$ r
* r6 d  Q8 m/ |# R
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。

! x1 E& p( p$ H; X

  Y! z. N3 H5 ?( `) d/ `
1.png

! s/ h  g+ g: p1 [3 @0 y) \6 ^' V+ O2 i7 I

( k4 u3 L+ s  `! h8 T! B: R
不同类型事件的动作可选的操作不同:
9 `2 E: V: h9 ^* R4 `* H

$ ?7 ]: y/ ^, u; g5 A$ |
触发器事件:发送消息、执行远程命令

+ m7 n  }2 e7 S0 r& v: Q' h

5 X' k! y5 C  c4 K
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式
+ r$ D$ t9 b/ b8 X8 Q+ V3 `; \
4 ^) ?! L$ B; B2 z: j4 N
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式

% v# O, X! X) ^" ?+ a& x! {+ h& q' |
6 y- S- U; X; l1 f
动作发送消息的日志可以在“报表”——“动作日志”中查看。

+ G" w) {- K2 t. ?5 ?' ^( A
" A% L! \1 A9 M6 i' n, D
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

* n* @' E- }; N1 Z& s

$ R% J+ T3 B1 p6 W$ o4 r+ a, S
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:
3 s1 F" F- [# a# x
9 ~  P. @0 j2 h. L' }1 W
1.png

- u* U- J6 O" G7 @) I. h) B5 u/ \9 s0 F8 U
9 Z% p0 E9 Y' ^- W5 t0 @' o
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:
) `' i. K4 A0 l! l

/ P# L% n9 r0 a! @9 s
1.png
& J' p. g( T4 W0 u

: I. c* C, _" `2 Q5 ?
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

$ a4 V& A& d$ V& f5 W
+ }0 C# z3 m- I/ A' {1 [/ z7 Z. o2 J
1.png

% o6 ?! b6 _  d) |2 Y. q  r# K9 p& g( H. n5 T

# y4 \2 ^5 w  _$ ]% o. ^9 H( G
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
) J" k  H: X" N  U' \7 {

% R7 O, c. F! E  ?  v
1.png

& p0 q9 [1 A( ]) d6 S1 y0 |$ W7 O0 d" v- d& c
7 N. k4 T# o- `' e
然后事件的确认状态就是“是”了,表示有用户修改过状态:
  y% ]5 U/ O) j- x" ~

# }; `" ?' k$ H: W
1.png
0 G" J6 G; l3 a4 E0 i- F
4 A! Q" Y3 Y6 A5 O% z

  z7 v, b4 K/ z* [$ h+ `! V
点击“是”可以查看具体的内容:

8 A; z: h9 d1 D: F

. [5 ~" }! \7 P5 D8 ?2 ?- i
1.png

0 h  x' Z4 d- d  O+ J7 D: Z; y2 x9 J' E

$ s1 r& v) p$ }  z; K% s原创:吴坤$ n  n8 X7 [; |2 Y6 h8 I/ x( k7 G
1.png

本版积分规则

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

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

Baidu

GMT+8, 2019-2-24 14:10 , Processed in 0.292985 second(s), 37 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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