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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑
  \9 h  ?1 s# Y2 m6 i; D. i
- b, K' L. f$ }# _7 l: m$ a% K3 e+ Y) }* [6 g

5 N  X9 `: c$ L! ^6 b# v
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:
6 P- o" j' K" S
& Z$ A6 ^4 ~9 p/ {
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。
8 E/ [4 m* Y9 g+ l
" H- }$ x0 k3 o; P
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。

. U4 g+ a, |, _2 B

. l1 D, u* k0 ~* g" {4 H
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

' V. R. {# c; G' f  Z# R

& w/ b# |- ^  t/ T2 P, p
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)

9 n7 K" }. d7 Q% I3 t' @6 _2 h
/ j* X6 \, J( a8 ^" k
Zabbix的运行流程可以用下面这张图来简单的描述:
5 Q' k) E  v1 {6 K7 Q( a* {. [
4 J& }0 U5 G6 v6 {! @
1.png
1 添加主机组( I( _% S. J; E$ f: R8 e5 S4 i2 n! l
分组的目的是将统一属性的主机归类,便于查看和统计。
* R- k4 ^7 m# o* d8 L

3 z- h! H% H0 ~& V' j9 F- n. l
主机组中可以包含主机,也可以包含模板。

! f% Y9 l+ t) ^

6 K- Z& d0 I2 u* ?  c
1.png

$ q8 p6 k. x8 Z; l' h) X! d4 S( K1 j) E! ]. R
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:

* D5 p0 V9 Y/ M9 X% @# p
8 O4 d6 Q2 J3 o9 z! T6 [0 L
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。

  f2 ]! b+ U, _! ~: }- Z
+ I5 b, o# _3 c( g2 q: {6 ^
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。
4 ~, [' M% M" {. {1 o
/ d# N4 y+ l+ w4 T. s) I% u
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:

8 ]/ l) y: u8 W& V4 x
. b0 }) y. l! ~: v/ f# D
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
8 X* `2 N0 f1 M3 H3 F+ L0 \3 F

! ?) l/ _3 E1 e, V2 s1 o9 o
/ w2 {! B2 j9 @. L" I; F; [
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:
2 c1 p% j' ^% d
9 e% U* u) D* N; T; h
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。
/ J/ n6 r- e& l8 z4 ]% c5 k$ L+ U

8 S, {$ I$ f/ v$ j' u8 b

8 `( ]# S+ r& A! Q
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。
: p5 ?+ b9 i; C
( |; S' ^1 m/ H' R  h
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字
# k4 d, S5 H' r3 ]
: F# V0 `- Q8 f' I! h8 ]7 [

. z# a: @) f' E2 G9 S: o# @% X: w
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

' {- U' P, f  ?

# ?" S& [1 W, x# h
查看刚添加的模板:

5 L3 P5 |8 T2 N6 c! n1 v: ]( Y
, C* y+ y. H) |5 t7 R
1.png
6 Z- K+ P9 z! G- l7 \
& C% d9 S; P3 u: E+ Q- P1 h8 L1 P; J( e& y
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
2 K$ G8 x  E- p7 M  X% U

: `8 \" ?9 X: M" c! _

# L1 U8 m7 ]. J$ w9 I  G
1.png
, {: E5 c' L. A5 _4 W1 A
3 E9 c4 N7 i( V4 |  e1 D; a
关于如何在模板中添加其他的Items,后面再说^_^
( y2 f# k9 p0 s8 {8 J
5 P! x+ P' i/ ^( `6 ?
2 n  V- I( y4 M, \, ?
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

; b8 h- \* H0 v, [% H
7 `7 ^* u2 ?! v0 ^3 v) _
1.png
3 l. z3 f) Q0 _( k$ [
5 a& O2 p' Z# P* \
参数说明如下:
. h( Y! A8 s3 E5 J! ~3 ^+ y6 S# Q
# B% v" w  r. t6 B7 {1 @4 ^+ [3 ~6 n
/ D0 C' Q$ O& W
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。
1 W# l! A2 R' ]0 q) C
- G- g% d. D2 f6 c
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。
# y' ?- R# v! x2 y8 |' @1 s3 J
8 L$ M$ Z) Z* r! Z$ e& W7 a
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    # h5 h4 p% S1 y+ _
; J, {7 G* r- W6 {7 I) r
: x& x8 S! o( a2 {7 G: _* C
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。
    4 F( C6 G" I6 L: ]  s7 b

: d3 Y1 ~8 |0 {; t, e2 p( H
' n" O- v- C, |" B+ @
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    ' [, e) e* W1 Y- J0 Z4 }
0 g. O, E+ _0 V/ @
' F" m, D9 W' |$ N- J1 M
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    - O  d7 c4 |+ H/ f3 @3 e
1 N+ e1 e3 B' r

! Y( T& g0 f4 h8 ]- N& ~
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    - J4 Y" R  ]9 A) {7 `8 b+ F

5 j4 d6 N, K! s% G1 @6 ~9 V! Z4 Y0 m
' U+ F6 p) S( K4 h3 @
  • 状态:是否启用。

    8 }, c/ N' x# ]6 n
6 N3 `0 P6 I9 {; n
选择模板:

0 U' d% m/ y9 v5 b# @

. B6 s1 j* R1 x+ L2 l9 y: S
1.png
/ [1 Q4 v3 J, i7 B/ B2 I
1 c3 }, S! |' U# [5 ^7 f
如果还想配置IPMI、宏、主机资产信息,依次配置即可。
$ o, k$ }, _6 v. a4 p% X

2 O. F; W' N5 E, N% Q
" N0 B/ |1 A0 ?# L8 J
- k4 t1 L, u: p; E% }- e4 X* d, T6 K
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

) A: U2 |; o: k+ {' E/ N
( I7 m* a8 L; d+ D; K- ]% l. o
在所在的主机(模板)中,选择“图形”:
0 p$ x, R! x: J  @& e" f3 q9 r
0 m6 a/ ~7 S1 T: E+ _( F$ }
1.png
2 N; o% [2 ?; V" j, g% D* @. s

  M. z4 F3 S, _6 e# X
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:; `9 |, T& c4 _/ j" X* m6 V- A$ J

( L) I1 s' g$ N+ V5 b4 t9 Q8 L

1 u; [) }7 y, I" I* e! N% ?
1.png

8 {- I- J* z9 @  }0 T' w( E
5 b' M) w0 x+ l5 S9 C, E" A: x9 u
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:
$ D! w4 i, |# b7 r" D

6 z+ T1 |/ u$ s

4 d, }1 o( Q+ J# M/ t
1.png

& V8 u( y* f+ O0 x1 }2 k
* V! T; r. Z8 K9 e* F
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:. b# |$ z9 A. P, ~4 X; s; y0 X
5 @( Z" c2 Z5 p* v
9 j. `: Y4 C& t8 C
1.png
0 o; b; C2 u9 {: I1 _( p
3 C  ]! E/ ?% Y* ^$ p# Q

, t! I5 Q, K% s9 R/ K" w
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:

) K. n- i7 s2 J  ?, w# X4 K5 t
" X7 q1 N* O' ]1 e' S2 P( Y
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

2 d+ z$ h! [) _( [$ G3 d9 I
+ k! t4 q& i, A0 y
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

3 y1 f( E% N6 [

% ?, F3 H4 U- h( h; _1 J1 f
效果如下:

3 m/ T7 x) z1 t; V; R' }* Y; m' O; R- g
5 R  T! V9 p$ F; ^$ @
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。

8 D$ J" U. V, E" ~8 `

" w# h# Y# Z. l" |( z  z
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。

4 k7 _6 |$ _3 e; a* I

  S" C3 X1 G4 a$ P8 l% P
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

: b4 y8 k* k2 @9 k
0 q6 r7 P; h" H( t
1.png
+ z+ M2 O0 F3 |4 j5 P
% Q% s6 D) u4 ^% q: K
名称:Web场景的名称。
# x' d; c& ~+ b# _

* v5 k# C3 U, ?  s6 @

- [" {% q" B+ S1 h: J$ W: b% m
  • 应用集/新的应用集:选择已有的或新建应用集。

    $ t1 u: N3 H0 M' v
* M4 Q9 c) T/ S6 p

$ ~' V7 k; D9 B, L
  • 数据更新间隔:Web场景间隔的时间,单位是秒。
    + `! }" a$ ^4 f+ v5 R+ C6 S3 B1 i4 T
  ?! T) t. a5 q4 K: g
& c, {' @9 K% h
  • 尝试次数:重试机制,默认是1,最多支持10次重试。
    / K, g3 |3 \/ E: p' r
5 g5 z; t; I. J+ A  @  ^3 Z, ~
- s" F+ n9 s5 L: d7 n0 {8 ]
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。

    ; [% p  t+ O" V5 j' a8 `  ~; m. K

4 s! {$ k; s, P6 O1 v
9 K, C! a- c1 Q* m7 O9 l
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    8 T! L6 k* ]/ [$ p/ ?

, m( Q) v4 `( g. i( |; G: {. K
- g; j. O! K+ P$ Y: M" c( n
  • 头:HTTP请求的Header信息。

    . S$ j8 n4 N# E: z7 }: p& @
/ N9 H# r( H7 Q: G  ]2 [
切换到“步骤”Tab页,添加步骤:

" c1 k8 }: L0 ]/ I, V6 O
2 f$ Z' d6 q4 p, R  O1 W
1.png
  • 名称:步骤的名称。
    . A) s3 r0 U# n3 p& T7 o5 l5 N3 l
    ! d+ ^, {9 U: b* j2 u( R, q
2 c* S- d% J1 g6 R# v
' }5 I' B# F# d& T3 J7 i6 L# y& ^
  • URL:监控的Web页面(注:必须是全路径带页面名)。
    4 ~. K8 F2 z$ S+ ~8 f% B  n9 m! J
) Z# g; O  {# p; L5 S# \. Y. Q2 S2 s
+ L  {* b4 G8 w: W9 E$ z
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。
    7 a- ~& s8 Z- N2 t
9 _6 d5 ~" r' l& I& v
- ?1 ~0 P5 ~* r
  • 变量:设置变量。
    # `$ f" a& F$ ?& s* ?5 y+ T: @

8 _# l( N  L8 s3 U
2 O( l7 l; v3 m) A
  • 头:HTTP请求的Header。

    9 b$ a9 Z% j; X0 m/ c

5 T5 J5 d: W$ K  L5 \

8 l6 v2 X- u6 c$ x7 f! i0 V
  • 超时:超时时间。

    $ g2 v9 _5 ^% q1 Z

. H3 P& [- B9 A* Y

8 B  [. F8 E. H6 ^1 {
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。

    - W* ^8 I# g5 S6 z" o/ |, x
' k; L# E) i4 I6 C
; v7 i" D  h. U8 _
  • 要求的状态码:期望的页面状态码。

    # Z  G$ Z7 p/ ~0 Y  d" H

: m1 ~! Q# C( r% v: V
如果有多个URL,则一次添加步骤:
: l+ x/ M% F, z2 ]$ [* K5 I
& b/ ~' t% `" m1 c" r# U- z% M
1.png
: l2 v3 {# }5 P9 n6 J) M9 B

7 w; A* |+ X8 g- O
添加完成后,在“监测中”——“Web监测”中可以查看:
& y/ z1 u8 t1 |" Y  j- R
) T! i2 p5 G6 n( {; J

( @* N$ t* t, p2 v! y& e. K
1.png

5 o) i4 Y* {) s9 T' y% |: M4 n, y* {% `/ N
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。4 X. Q& C" _0 b' {

: B! L3 X" G* m# m4 L. Y6 Q3 j: a
, V% k. c( _# _6 [+ f6 b. P1 f
1.png

( ]! t0 R3 q8 o- q0 c/ H# y. v4 W5 v8 @
. W, w  z/ s, ^& c5 b5 ?; W# E
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。

+ o+ R, Q% {  G4 V, R% d1 X7 K
; U( W% Z" w. U" h1 H4 ]7 @1 Z* g
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。

( W2 N- L+ i, ?& A" b, m: L) s

9 c7 D6 F9 n& g; Z
监控的方式非常多,ZAbbix支持的监控方式有:
! ^! `9 V6 R! z# p
- r2 p, Y5 \, Z( p# t
1.png
0 M: ?3 T: x2 i6 p) m& J
" P: H1 S* u5 `. M7 J
8 N: c" k& i; J7 p& f' W( a
其中,最常用的有:

, O5 z* ^4 d' }. O. W

$ r7 a) G" w8 `0 T& U* A" w! Z0 g
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。
    % ^+ N% k+ x. v& _

1 D5 s. M7 y! V' v/ W# E5 _2 Y

  n4 {0 Z1 n$ _5 H2 g0 |* s
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。
    7 K1 v5 {  @( q0 k/ H
: F5 b) W7 ]8 |+ S

, j' [  f0 }+ j& T5 i% a
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    5 ~  e8 q) n- W3 p( `4 Q* s

6 W' X4 c2 R$ l3 K

* v1 f5 i4 Z7 g; M
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    ( F: H! G# K8 ^3 ?+ T
9 J9 D) E. L  J6 i& u- u
! u. f/ D) L/ `/ B* Z
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。

9 s/ o+ w0 @8 ^! C+ D) t
0 K8 h1 z; \( c1 Q5 T
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:

# T# p) V' ^0 d. D* h' c9 f6 j% F

! i* V1 h' ^" R0 o2 ^
1.png

& L; y- K- f' ^: k& a- D: {6 ^% |
创建监控项的页面:

( Z5 K3 B/ m4 d% k
# s% s9 X+ y8 g
1.png

! y( C7 o5 J1 p! b8 P4 K1 m3 k
/ c6 m& ?( R1 L3 K4 h! i
7 v7 k" f( B3 X- D+ f% ?: P
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    1 }; ^" T7 `* C& ~( N

4 C; f+ X% \5 C1 r( z* d

9 l8 y  d. W# w5 x! |" {" V1 l
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    ) B& T, l% ]5 f3 `- e# e$ _
  @1 I' \9 q) F( d: y; F* V

6 _! z  Z! x' C
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。

    : ]+ C2 ^: A( p7 O- N6 j7 ?
  `' t/ U8 [- q* v7 }6 r
" x2 m: q) D- s
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。
    5 l8 F7 q: _* n/ G) X, N

5 k! s5 j# H6 G  j. n- w

9 L4 B$ p  L! Y9 }, u) N8 O
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    7 |) H* Y9 w, ~, l
. C3 V. c* l6 f" I

& ?* _# N- e' R  ~2 L
  • 数据类型:数字的进制。

      N' F1 V  p: s) m3 i* {4 D+ T) S4 q

4 |0 Z& d1 i; @
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。
$ h2 \6 u5 X0 C4 G1 l

) D9 w+ E. U( R7 _
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    ! y7 ]$ f. T1 t* R% u# c

& ~( s3 a5 o; J& q, b' Z
6 @7 ^. F+ V3 D- I* y' n! z# j
  • 数据更新间隔:监控项的采集频率,单位是秒。
    1 A4 G# c* r& Q" h$ K

5 M5 O- C0 f1 S) }# Z4 N
# }$ N; S3 b# ~
  • 自定义时间间隔:可配置不同时间段采集频率不同。
    0 m) Q3 X" h# N9 U( I8 b
+ V! ?7 }5 a# k2 g8 q
9 Z. S/ Z; T8 g7 G, Z
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。
    1 R: E8 O2 ]# {6 |6 o% L, b
% ]7 b+ s, b: S' y9 w

$ K8 ]" s3 u2 Z3 d: g& R* k( v% h
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。
    ' f- @  V* _$ j$ N: l5 j
! K8 r2 f! A1 l2 I  _

; c( d6 ^- |  K& p
  • 存储值:存储采集的数据或者存储数据的差量。
    5 n8 C* l' Y' w! K( J$ H
3 _8 f! R; k( w
% l$ q; ~+ G6 v1 \" Q
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。
    - k  X$ }+ O) c- @" P8 H

* }  c9 h7 C, J: G% |1 z

5 E( G' S" r1 J1 T& p$ m7 o
  • 新的应用集/应用集:选择或新建应用集。

    6 ^- U+ M. n) i* c

/ u1 j1 g. j% J2 G4 I4 d
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
2 m3 z+ R/ d& P5 H

! N4 k+ R/ y. n0 [
8.1 监控项的Key
; @5 N2 s3 x6 d! t/ c" U9 m

# ^* B% w, f) f2 D' A/ [
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

  O; D8 Q( a8 d- C: p7 T. S3 P

. M$ b7 S$ _" u$ ]- e
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
# a. O% I: m  z  @1 p

* E( m/ F/ R! f3 s- i, B
举个例子,创建个自定义监控:

; L; A. u) e4 o. ?

& L0 i, c4 p6 U0 t( L
1.png
% F; K+ K* ?( V/ i* q/ @

$ M, V+ R- f1 H/ f. o3 j
# G! Q" A5 m+ K2 C
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

  g+ r+ @/ H0 i

3 B* x5 [; J) C) \
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:
' y: z$ }1 F! O+ D$ V, W' o
. A- r6 P% [: p. K7 ~
UserParameter=key, command

( r" b3 t( W  X9 H3 i+ C/ F1 u1 S

3 n8 s$ J0 g6 R" B% O
带参数的格式为:
# \7 Y2 P6 H9 s9 u& t

+ J3 l5 y3 j4 {& B: m9 `
UserParameter=key, command $1 $2 $3…

$ j4 f% _( g* V( }: X
! b  h3 ~/ m; S" R/ F
添加了UserParameter后要重启zabbix-agent服务才会生效。

8 S0 k  F! W2 P: v. w) C! V

" o# B7 |1 i% C! [- x
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。
- G3 t9 u3 [% g( m

" I; e6 l9 V3 ?
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

+ I. {1 ?9 Y/ q9 v0 G

6 d! `  g0 Z% ~, V
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。
3 G/ o' A; }9 T& @
2 G; }) @: \1 h% x0 w* V) s
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

. h+ V: ^# }0 E6 X7 c9 _, k/ \

+ {( |$ j7 `' f( Q2 `( y. }
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

3 _) H& N) j. {5 L- v+ u! h

# w4 L( Y5 D7 J1 ~, A; z+ c. w
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:
$ C4 h6 ]3 F3 R+ y$ ]: w$ E0 q
6 p! p& r0 Q' N
1.png
0 X) J# l3 ]6 k; X) C5 I/ J# x

9 Z5 K# ^! C, ^; A' i  W, F
& V) c- t* }1 ]: j! d% o
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:

" H+ ^9 o: G% E( q
9 ?) T: U) j! l$ n$ v1 ?
1.png
3 E( f- |# d% f  b- E+ a5 l
2 ]. U+ E% w: G# q$ @  X$ _/ d

3 r; r5 l8 c, K; X
Zabbix支持很多条件判断:

& e! P  W& [, h5 n, S! X

* a0 |! U1 n$ L! Q9 x
1.png

. ~& `4 ~0 x6 c8 _- R; D6 A  }4 I6 P+ m' n9 A8 k* z

( [; O* g+ v6 o1 {
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

+ @8 j2 p6 U* y

1 t! ^0 O4 |: w- b. g
1.png
( k, k: e2 x/ L3 x2 q
% q7 M" o- _3 G/ H5 C* V

" n4 e; Z2 b- C9 q
插入后就生成表达式了:

2 X# ]3 o/ D* H  o2 ^' |

! K" o+ A, S4 ^
1.png

, W  v, z+ I2 Q1 t3 W6 }
9 T! X3 k% l5 a, ^2 i" W, D" X( s
1 T" ?  [0 h9 K6 n! c
表达式支持监控项&组成复杂的判断条件。
" C: f2 r+ o: {% X7 O! p5 B& r3 c: c
4 o, R$ y  \; Y5 }4 W; X
1.png
0 j) O$ ~% o% v

: m& Q( {! J% z5 C- _! Y3 x$ ]. L
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
) w6 r, k- z4 i8 w! f) F/ @
! b0 p$ s& L9 K: t  _
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。

' M, X7 O+ x7 i* f* T4 U5 {; O
& J% E- C, c8 r* m4 N" A
在“管理”——“报警媒介类型”界面:

: H+ D" k6 V4 _& m6 m; H

* k5 @9 B1 y# r1 T- i& K
1.png
) I  v" M' |3 ?; P* [* L
8 m, v8 G* ^5 Y' ?0 v- x

' L2 W. f7 X# g0 }
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
  Y4 X: l; W# ^( j: t+ d4 X

' z. Q. C- I# @) [& v' r4 S2 y
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。

8 \6 {" Q, k! _$ a* E# ]" }, g
& S' f, C* m( {4 G% n
1.png

8 b( I5 V) E4 C1 \& m$ t7 n% J
  {$ f/ G4 Y. Q0 J. b9 s! \2 O/ `/ d
1 n  G% ^, O* Q6 S; O# H3 _$ f. u
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。

7 G+ S& O, L" O* d9 K1 c6 a

: n9 v0 C+ s, Z; ]
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。
, i: o; Q- p, v: \( Q9 e

% W( H- B$ M! {- A) o
在“管理”——“用户”的“报警媒介”Tab页中添加:
5 N4 z2 P& e6 f( h9 N2 j8 H. d

4 N( z9 K, |) {& Z. x3 O6 o
1.png
5 X& p* U+ ~4 F, L
. j# y. W; r. y/ o# C. `
$ N/ z7 L% Y; [- G2 b
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

% a* A, ~0 E: g7 P! p# y7 |
1 |% _) x: b0 C7 w3 n9 u
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。

0 F( `$ E+ y$ G3 M% \, n
! I6 K+ g9 U0 p
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

; X+ m& T% @" e, {- Y' \

# [/ E( c  u0 W; Q7 Z6 p! W
1.png

1 W* i. N2 }! t5 z" k1 V& r. A
, B, R# H, W  ^$ k
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
  T; d( f" t& _( o6 A$ E& t
+ C5 b2 P9 o  p( E$ `+ a1 n& M
1.png

; k6 X! O7 F0 R' b+ _8 x/ U
+ D3 v. U" N- I8 K- S" Z& R2 q: x. h0 C3 z1 W
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
/ Q$ o& i" C. c( \! I8 ]6 q3 t  \

+ G3 ?8 K5 |" U! O
1.png
: \, r2 h5 I$ ~& P( k0 G) G8 N

' g( A6 e- H; I+ o2 Y" g! G
, P" _8 J3 o9 t2 P& }+ `# Y0 L4 p
不同类型事件的动作可选的操作不同:
. |) I/ c/ i' h0 t3 W

, _/ ]. I' ]$ Q: _% L
触发器事件:发送消息、执行远程命令
- B3 ]% P, y0 v! y+ L

8 j! C2 u& D. q2 d) A
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

; U1 T: R: [: M2 V1 p9 P
" b, ^" Q  B/ s: F$ Y
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式
8 x8 ?! m; g: {- m- y3 \; y

* B4 b) N. D; Z
动作发送消息的日志可以在“报表”——“动作日志”中查看。

7 _2 C2 r8 g/ `. c9 k: w

- J- F' w/ D9 s+ b7 L' T
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。

* `) H8 I0 B/ {' z' a8 `
1 d" f9 _- t3 ~) v, V/ W9 b
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:

; }! Y; v. B0 Q$ `) |

8 S  [" @$ X. Y  E: M1 Y! m
1.png

- h8 J9 p' m$ ?' ~/ z, \/ h4 C! Q) }& O  a

$ N; o/ C: Q: F; {% u9 p5 ~
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:

. b, h# [& s" t9 X4 ?( z" t- L
. B0 b1 K) |9 Y" D3 S- i
1.png
. W6 H: g& W( K2 I* H, V7 r3 O

" s* H. K: Y0 R, R$ m8 J/ t- S
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:
& O& X9 X& _- u; O

! \' g6 l6 S9 M6 f
1.png

3 u' P- X7 f& U  i0 N4 k& o( x/ E0 L/ I' s' _

4 t0 I1 B. f& h
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:
) O( F# x3 n+ @9 h1 r  ]
9 N6 u& ^: `/ \5 h/ \. c" D1 y$ r
1.png
- a- [* {' g8 ?5 N8 O
- @4 y0 M" |! c
2 d: w6 o: u2 m# |, v
然后事件的确认状态就是“是”了,表示有用户修改过状态:

: ^1 H! \* n! \' y5 z) x0 D
4 \6 m  D1 L$ L# t
1.png
) t/ F2 p0 C4 K, y4 \

0 e/ J) i! Q( i
; h# K0 `# u+ E
点击“是”可以查看具体的内容:

- N; }" l/ I% O# M  p' u$ e4 @: l& E- G
- Q9 N! C5 {2 M4 b
1.png

5 I1 X7 O+ W" ~+ A# k' L2 d. \3 {5 A

' j( P3 H6 V4 {% c% u9 k4 f原创:吴坤
- a5 _# |# Z* M' A1 u9 ^2 ]9 n
1.png

本版积分规则

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

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

Baidu

GMT+8, 2019-4-25 00:53 , Processed in 0.242703 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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