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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps微课之Zabbix配置

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

参加活动:0

组织活动:0

发表于 2018-11-5 11:26:20 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:38 编辑 2 L) o8 m' S, P. s! g! q$ G: S4 J

2 F+ K/ [1 u7 E; f
- S( R/ S2 e; L* J
# M8 \5 z! C0 D9 R1 T  a* K
本文介绍zabbix的快速配置使用,介绍配置流程,通过浏览器访问http://ServerIP/zabbix开始配置和使用Zabbix。
0 配置流程
Zabbix完整的监控配置流程可以简单描述为:

/ S# g7 D9 D& w( d0 E
9 V/ a# n9 `0 u2 j4 V  A" ?- x% I2 W
Host Groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)。
在实际使用的时候,Items、Trigger、Graph通常采用模板进行配置,模板的特点就是可以对相同需求的监控项重复使用,无须对每台主机进行逐个设置。
) d6 B5 q5 ~. |7 K

$ v7 ?8 d5 b' ^( P4 ]6 q4 O
对于使用Zabbix来说,配置Graph不是必需的,因为没有配置图形,数据的获取也不影响,数据。但是对用户(Zabbix的Web界面用户)来说,没有图形,就无法看到可视化的数据,因此,需要对最关心的Items添加图形,以便将数据可视化。
) d, A( V! c3 T( D/ h! Q

$ @8 |8 {" u4 r/ f! o1 V: c4 P" Q9 e
配置Trigger不是必需的,但是对于特别关注的数据,需要对取到的值进行条件判断,这时配置触发器就是必需的。

1 R3 A/ p3 ?) N' u

8 Z, O+ t& X  S5 ]. d
另外,如果想集中查看图形,可以使用Screens功能,将多个图形配置到一个界面上。(遗憾的是,Screens功能并不十分完美,只能满足一般需求)

' c3 I0 t2 v" T7 _$ B
) i# I5 G( z1 ^  E- U' g2 ]1 {
Zabbix的运行流程可以用下面这张图来简单的描述:

6 l$ l7 b' ]0 w# s/ M& `' E: h4 K" @, t

3 B' f* U+ f# H/ B7 {/ X/ y2 B
1.png
1 添加主机组
4 U' W3 K, s' h+ U) s; r
分组的目的是将统一属性的主机归类,便于查看和统计。

! |. [) {! A$ J/ a( |9 X( w  N

8 o* _4 }- i9 }+ s- d8 m9 d% _
主机组中可以包含主机,也可以包含模板。
' o; I8 Q0 i0 R, G& _
+ F  M) m5 x' Z) S9 g( }
1.png

9 P7 c& e5 Q* O& _, L6 q
9 I: Q: `# h1 M( U' l7 s7 q+ i
如何添加新主机组呢?方法是单击“配置”——“主机群组”界面右上角的“创建主机群组”按钮,跳转到添加新主机组的界面:
" K/ x; K, y* @9 ~7 d
  x; v4 y, R, K. z/ Y. [
1.png
填写“组名”,从右侧列表选择主机移到左侧列表中,将这些设备添加到新建的组中。点击“保存”。
; w7 G" H1 s; c# S! v- d

! x- c$ F  z! P( J
2 添加模板
监控项、触发器、图形、Web、Discovery等都是存在于主机之上的,由于多个主机都会用相同的监控配置,因此可以对这部分同类的数据进行归纳抽象,将这些数据做成模板。当我们需要对其他主机进行配置的时候,只需要对相应的主机添加对应的模板即可。

& j# }) y) ]7 R% b9 o4 u

. Z" A0 i" _, }% X: m$ _; Z4 Y9 v
单击“配置”——“模板”界面右上角的“创建模板”按钮,跳转到添加新模板的界面:
/ \& Y) s3 d6 r. n

6 O5 K. B; Z+ w2 I
1.png
填写模板名称和所属的组。如果是将模板加到已有的组,则从“其他群组”中将指定的组移到左侧的列表;如果是将模板加到新的组,则在“新的群组”中填写组名。
% `# l9 P7 O# \3 V

! B( U/ u5 n7 M% D
6 \, X) ^4 u  n6 b* `4 L
模板具有继承的功能(将一个模板在另一个模板中使用),在“链接的模板”Tab页中:
; |" |/ I. F" c; s3 o
' s9 e8 v1 F* r; `3 S
1.png
注意,选择了链接的模板后先点“链接指示器”那里的小字“添加”。, X0 d) }( p( x# R5 |+ m1 Y
/ {5 H& p; ^7 o  f0 @

# W6 }+ f, P* g, r5 {* m* H
模板中亦可以定义宏。宏主要是对变量的定义,设置宏的作用是方便在Items、Trigger中使用,在模板中配置一个宏,在不同的主机对该宏设置不同的变量值,从而达到模板通用化的目的。
7 Q, i( D" h: [- P: B# _
& r% M/ O5 e& Y/ h" q
1.png
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字5 }- }& c6 o- [+ l

1 l5 N4 K5 S' q0 C
2 ]* i) P5 G+ O' P" ]
注意,宏的名称为{$名称},宏的字符范围为“A~Z、0~9、_、.”,如果不是这个范围的字符,一律是无效的。

* Z7 a2 {' a/ k* X- F  Y5 _
8 V* w9 {. O( o+ _' S
查看刚添加的模板:
. U: y" S6 {# a. N
. L2 r+ k% Y) r* ^4 C
1.png
  T, a: j; H! p, g
9 Q0 ^% o" l9 x0 y3 ^
可以看到这个模板从Template App Zabbix Agent模板中继承了三个监控项:
4 |6 q6 L2 n$ b/ L( O$ H

" I6 U) F0 {1 |: g. V

) k. T8 D- l1 F* G1 b# B  u' |
1.png

# I9 E- }) d* ~" d
1 e. w- D4 H! J, K3 M
关于如何在模板中添加其他的Items,后面再说^_^7 |) i. l9 ]* `0 j& L) z8 X6 e' W$ q

: \* j( V- X. ~, A$ v
( X+ w4 W, u: z( u: ?
3 添加主机
添加主机的目的是对具体的设备进行监控,步骤为:点击“配置”——“主机”界面右上角的“创建主机”:

& Z5 {/ G7 X* _' R1 i) D/ |

8 S3 h: B% t0 V1 W
1.png
& ?: ?8 |& a6 D; t$ n! K. S9 j8 A2 ~
, x5 ^* X: _" `  m4 ~
参数说明如下:5 G. A: u: r" F% f
. U2 b- N! j4 v# v
2 I1 v; O4 ~0 N/ ]6 D
主机名:主机名不能重复。该名称对应Agent的配置文件中Hostname,只允许大小写字母、数字、标点符号和下划线。

3 c' }# c( B: W2 a" o& `& a
1 ~( p/ o9 A0 X1 q
可见的名称:可以不设置,设置了那么在其他地方展示时就显示这个名称,而不是主机名。

* w9 k8 t; {+ |1 f; v5 k# z
# r2 \6 h: S/ k0 m2 B4 P
  • 群组:选择主机所属的群组。一个主机必须属于至少一个主机群组。
    , C+ ]) A8 l0 x. w) Q9 H

- k( p/ }) ?$ D. i$ F
1 f( f: ]  e% s  L9 F( D% Z0 }. f
  • 新主机组:一个新的群组将被创建,然后自动链接到该主机上。如果为空,该项将被忽略。
    + P+ F- ?8 l/ o4 J& k1 \
% b: ]& d) l% H6 ^2 ]9 c

2 t5 o. J% E1 H& |  l3 L7 V
  • Agent代理程序的接口:填写被监控主机的IP地址或者域名,在“连接到”选择对应的方式,端口默认是10050。
    3 }' L8 t: u; Z- `6 K$ t

8 z2 U4 }5 C# e' N, |1 Z1 P% f
7 ?+ M9 ^: G: E5 W, X6 e6 V8 q
  • SNMP接口、JMX接口和IPMI接口根据需要添加。

    9 v* Z! k9 P# s/ {0 k
  g1 z" @% L$ M
& X- {. r) Y" ?/ ?' \
  • 由agent代理程序监测:主机可以通过Server或Proxy监控。如果是通过Proxy监控的,那么这里下拉选择对应的代理。

    2 e2 I+ i$ y% p5 N+ n
5 U9 n; d$ w/ R
$ b- J" ]) h1 J, [4 m: g4 f
  • 状态:是否启用。
    2 x' s; f* `8 H

. Z+ {6 W8 ], d6 o! L
选择模板:

2 b: w- H) z" m! P: o. O

7 H: G2 \) A# W; }
1.png

% {" \3 h" y6 p' @& F. F( Q7 N7 P! [" |
如果还想配置IPMI、宏、主机资产信息,依次配置即可。
' ^  q5 H" l$ o, Z. U5 V# U
8 Z- `) c+ Q: c

9 N8 t5 k2 |9 g( P
7 Y# o. E# ]' N, S. F5 H- |
4 配置图形
Graph是将数据展示为图像,以视觉化的形式展示,Graph的配置存在于主机和模板中。

- z, D; O* j1 j1 k' E3 a7 j

5 ?% r5 x6 E, i! j$ ~
在所在的主机(模板)中,选择“图形”:

+ Z* @7 _8 c4 H7 z/ |0 B7 O

- V6 i/ ?+ H2 G5 t* g  `
1.png

, n1 h5 J7 P/ _+ l' j4 `! y: Z
  \% o* w& f* I5 z9 n5 f
点击右上角的“添加图形”,打开新建图形的界面,输入图形名称,选择所需的监控项:' T& N, _" J* J0 j% `8 ?1 \) e! V% ?

2 E1 @$ F9 I: Z$ f/ ?/ ~; ~

, m7 K+ w* l4 Y/ K8 u' @
1.png
2 Q( K2 G5 O  z! h
  B9 C& m0 T+ U& R; Q
保存后就能在“监测中”——“图形”中选择“群组”、“主机”和“图形”看到了:- u  I. R1 U. v. a+ [# T
: [5 _4 w- M6 E1 |2 c% N6 C
' x1 f7 M$ [. M' z: l
1.png

* Q8 H0 U3 D9 g0 {
% F2 S. J0 A* [" r
有些情况下,我们并不需要对多有的监控项配置图形,可以在“监测中”——“最新数据”直接查看某个监控项的图形,甚至也可以勾选多个监控项点表格最下面的“显示数据图”或“显示堆叠数据图”:
  v5 M" Y* d6 [; B+ l

+ B+ L1 h5 A  m' a) S% J, }5 Y
1 ]/ z, r& c5 O- e4 b
1.png
' B- z/ H) {' O7 k8 {

" v! I. O) S5 x( Y, H
- v8 ^5 q) ^& A1 N* z6 E. q
5 配置聚合图形
聚合图形将多种信息放在一起展示,便于集中展示某个主机的多个信息,或是将多个主机的同一种信息放在一起显示。
通过点击“监测中”——“聚合图形”——“创建聚合图形”:
+ h2 v! f* X0 I+ n0 p! G5 y

3 ^5 s6 @6 Y& q" E
1.png
6 使用GraphTree
Graphtree 由OneOaaS开发并开源出来,用来解决Zabbix的聚合图形配置繁琐的问题,集中展示图形,性能较好。

9 K" u& O3 S, {  ^& @1 ^  F  _
# V4 Z! M; f2 k9 G7 k: w
安装方式是,下载Graphtree补丁包,使用patch打补丁,即可,具体请参考https://github.com/OneOaaS/graphtrees

" g7 F$ Y7 I1 e- n( U. p6 |
5 a" G& G4 w0 U$ t& q+ l
效果如下:
7 |5 e* o2 `- p" z0 V/ F# a$ M
8 P% W; L5 `3 \4 t: ?# `. N
1.png
7 配置Web监控
Web monitoring(Web监控)是用来监控Web程序的,可以监控到Web程序的下载速度、返回码及响应时间,还支持把一组连续的Web动作作为一个整体进行监控。
  S2 A  {+ t' S. |3 w# F
. C/ y0 ]/ Z% T# ^$ u* y3 P
Web监控即对HTTP服务的监控,模拟用户去访问网站,对特定的结果进行比较,如状态码、返回字符串等特定的数据进行比较和监控,从而判断网站Web服务的可用性。
0 \2 {, B+ P0 m3 b) J3 {( a
7 a# J6 {( Z! [
点击“配置”——“主机”——“Web监测”——“创建Web场景”。

1 k+ L* S( c0 V( ^) F& H6 f
, A( |- H; Y0 d- p4 M
1.png

8 P3 t% c; o# L; L
- h8 ^( c4 u% F6 S5 n2 k
名称:Web场景的名称。
. q1 N9 [0 p, p/ o
( g  X4 ~  d$ n3 R1 h$ T$ J1 \

  J+ B, m8 J3 I# G, k5 p
  • 应用集/新的应用集:选择已有的或新建应用集。
    9 @2 l8 t% C- h0 ]0 [+ _6 t

1 ^; M8 x( _9 |5 n  G
4 a% z* E. U' I) q
  • 数据更新间隔:Web场景间隔的时间,单位是秒。

    : j  n' {( j& F, X3 e9 a
. N( K5 M5 |2 L
: G* G$ J* s/ b5 g+ y% P3 n/ I6 h
  • 尝试次数:重试机制,默认是1,最多支持10次重试。

      S5 n  e" v: O7 Q4 M# p2 o
' f  q9 l1 Y# H  _! S% @$ l

5 j/ h" F, b! ]0 q/ f3 Y; p
  • HTTP代理:只是简单的认证才支持代理,默认的端口是1080。
    0 v9 ?* X, q: b$ G8 t4 h: Z
! g, H$ N( ?5 G  j8 d

1 v3 S  B7 |0 s) Y6 p9 T
  • 变量:场景级的变量可以在场景的步骤中使用。如果值中含有正则表达式,正则表达式匹配会从Web页面搜索,如果找到,则将变量替换为对应的值。

    , F+ ^8 U4 w- B4 i

& |) H* v) t* `. l7 s

& C! u/ r8 |& E7 Q' _" E
  • 头:HTTP请求的Header信息。
    ; n9 M( R8 B: S, D) |$ K: G

* D, X5 v( E3 d  `; p7 K
切换到“步骤”Tab页,添加步骤:

4 O' u! W6 Z, c
! C0 y8 |- |: s" Q8 R$ j
1.png
  • 名称:步骤的名称。: o/ m" D4 S1 l

    + R% m0 z, t" c) G9 _2 d1 b
3 m; J" E/ E* q

" o  ^' Q5 e; F9 t
  • URL:监控的Web页面(注:必须是全路径带页面名)。

      ~! R: ]% a4 N! `# Y
; H0 }( _" q* ^

$ |$ X# \+ E3 n0 R/ O
  • Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量。

    2 c& }- O5 P3 ]0 I( X: ^+ l8 K

6 K* h. x! P9 n/ y* P! t! P
/ H% S/ X# n: ]1 E$ x
  • 变量:设置变量。
    ( H; F% c0 G2 k# [/ Q+ Z& {5 C

$ C+ o7 @# w1 p/ c! _5 V3 r. l5 |3 L
4 J  n, W1 t& L3 W/ [
  • 头:HTTP请求的Header。
      [6 |  n7 j5 I- t
: v& Y6 {; Z0 w
& E& m2 t3 H# p1 c. P
  • 超时:超时时间。

    ' b( p! p  B) _  T

+ z% S9 n: W1 ?) z

5 L7 b: p( F6 w" q: L1 _
  • 要求的字串:期望的页面中能匹配到的字符,若不匹配,则认为出错。
    $ f' X( o3 U" t8 o7 Q

3 C- F1 u. T' y0 G  Y# X% F

! U) L/ P, ~6 W5 F
  • 要求的状态码:期望的页面状态码。
    ) p* H! F+ Z6 h/ {$ {3 s

& F0 J/ W/ a9 G" G
如果有多个URL,则一次添加步骤:

  _  p. P7 b+ \- ^

9 K, D7 H+ ]! P% O
1.png
1 t9 u) p: l/ H8 j" G- R7 y; f8 q

: y/ i# J% J/ y+ [# a
添加完成后,在“监测中”——“Web监测”中可以查看:) h% J6 w" B: }/ L

# R+ c* N1 T( u$ O( ~

4 r) Y0 b' Q: S" S: C
1.png
1 g1 O. R8 T$ z0 x

. t3 B+ h0 h3 p' @, n4 N# Q
Web监控实际上也是多个监控项组成的,如下图。所以也可以配置触发器,触发器的如何配置,下次再说。/ i' \4 p# ^9 g8 U: Y) }

  {' z2 s( e! c* J  n
1 a# \' f& R. F$ {" E3 g
1.png

0 H' n' v1 v3 Y' g& p0 l; s$ U. |4 O

9 i2 S9 r! J! T0 I6 v) C* w/ k
8 配置监控项
监控项可以配置获取数据的方式、取值的数据类型、获取数值的间隔、历史数据保存时间、趋势数据保存时间、监控项所属的应用集。

* r5 F) w5 z& @9 @  H) P! A
$ C9 b) m7 l! q3 @/ d/ _
监测周期的长短直接影响了数据的获取,也影响了Zabbix Server的性能。
* W: q+ o/ b8 L8 n( p8 D9 W' m

8 {* f. T6 {1 T
监控的方式非常多,ZAbbix支持的监控方式有:
( j5 M7 x# t  ]" {. p/ Y9 m
4 J0 \0 O* U7 ^, l3 }4 Y
1.png
3 t7 q+ H8 [0 {1 P/ }8 K, R# Q
3 g+ b9 Z  R0 B! Q% c6 ?5 f" j

( P1 y% I0 c) q  [# p# e1 o
其中,最常用的有:

" a8 I0 r8 \/ b2 E' U5 B
9 O1 o. _  ], O, K+ u
  • Zabbix客户端:由Zabbix Server向Agent请求监控数据。

    + L; T$ [5 ]" D* v7 b- b

* ^, k4 K, s9 s) M( G
0 r: N  b% d1 |
  • Zabbix客户端(主动式):Agent定期从Server拉取主动式监控项清单,然后根据每个监控项的数据采集间隔定时向Server上报监控数据。

    ) l; S% z0 _% O. l6 x
. ^' V: z3 h+ e% J

9 D. m9 {0 o  g% K' ]8 N
  • 简单检查:支持Ping、TCP及UDP监控,被监控主机无需安装Agent。
    $ K0 f0 {  a% `: p6 z3 @% @: N5 A

: N3 V+ `( O% n6 s
8 M1 |, N2 \, O1 V
  • 可计算的:对已有的一个或多个监控项的值计算作为新的监控项。

    $ v$ Q1 _$ [* I/ j- u$ C2 j
6 e6 C% W' Y3 E# Q

% g( D  u/ T6 U4 J
监控项可以存在于模板中,也可以存在于主机中,模板的作用是可以复用,对需要重复配置的监控项归类。
; |, U; a' o5 `" u# q
9 e5 }& z0 f: ^$ }9 A: K) D5 y
监控项的添加方式为,打开“配置”——“模板”/“主机”,点击对应的模板或主机的“监控项”,再点击页面右上角“创建监控项”:
9 W" u0 [6 S! V- r- U

) T! J9 _1 Y' B( X8 N# S
1.png

4 p( p. w! N; W8 Q8 Z
创建监控项的页面:

/ R, ^2 i4 j, U- _6 l! ~

+ z: b+ R3 X/ O, f2 u
1.png
* f, ]% W' v+ l; A# ]% ~5 _

8 F1 a1 c+ a) Y9 W
- `, o& r: \4 G
  • 名称:监控项的名称,可以使用宏变量:$1,$2,…,$9,代表Key的第1,2,…,9个参数。
    6 ?7 k& I: @( r& n, k* ?4 m. P

. ?+ ^: `( F. e+ d6 b; }& L
3 Z0 c! y# P: K" |$ ^  q
  • 类型:可以选择“Zabbix客户端”、“Zabbix客户端(主动式)”或“可计算的”等等。

    . ~+ _& Q2 d2 g8 @
- l! T1 w# O8 r8 `2 c+ i# G

4 p: e9 J% r( x, X, Z5 r
  • 键值:Zabbix内置了很多监控项可以使用,也可以使用自定义监控项(后面会说)。

    3 p* U, S9 G% a6 w
! P8 O$ T- ]2 ]9 v  W% L
& g, q! r  U7 ?6 F* k7 u2 a
  • 主机接口:选择Agent或者JMX、SNMP、IPMI等接口。

    . e+ J& T! I( _# Z

( a1 R- }& l$ ?, W5 e$ w! ?
4 C. r% ~0 R9 q% l
  • 信息类型:监控项数据的类型,有“数字(无正负)”、浮点数、字符、日志、文字。

    : _3 U9 J+ g; L# Y
9 I; f. K5 Z  j/ S; B8 x% n* c
5 F2 k* j7 i! A" n6 |* `" j6 }' n
  • 数据类型:数字的进制。
    + j4 e0 ~+ p- a  Z; a

2 u; |9 n$ N0 H& E) b6 n% q
单位:数据的单位符号,Zabbix将会处理接收到的数据,并且把数值转换为需要显示的单位。默认情况下,如果原始值超过1000,则除以1000并相应地显示。例如,设置bps为单位,如果接收到的值为881764,将会显示881.76Kbps。有个特殊情况,当单B(byte)、Bps(bytes每秒),时将会除以1024。
5 \$ u# ~. n. w: d' y: a# I

) b, U) b4 [1 W* x
  • 使用自定义倍数:如果开启该选项,收到的数值将会被乘以该倍数。

    3 T4 W6 S! p! Z( J
5 X) Z; Q- E/ S
* N5 L8 N" t  Y! S; e  E/ F
  • 数据更新间隔:监控项的采集频率,单位是秒。

    - a9 l2 i# K/ K3 o: Z
- A% z& \- Q) Y0 m

. O0 u, Y+ z3 h1 ?1 `5 e7 b
  • 自定义时间间隔:可配置不同时间段采集频率不同。

    ' P9 }6 a% S% B( G: ~9 h0 l

9 H) b- e) `$ z  Z" N
8 V& P! V* T/ w, j0 m. J
  • 历史数据保留时长:采集的数据保留的期限,单位是天。超过保留期限的数据会被Houserkeeper清理。
    $ @5 g+ C1 k/ Z9 H1 r$ O
2 Q! I9 ?  N0 ]  u; c/ w+ |

" {8 G7 q# P( A3 H
  • 趋势数据存储周期:对于数字或浮点数类型的监控项,Zabbix会对监控项每个小时的所有数据进行统计,得到每个小时的最小值、平均值和最大值。查看监控数据图形时,超过历史数据保留时长的时间段就用这三个值绘制。注意,非数值数据(字符、日志、文本)不能保存趋势数据。

    & i- }1 ^% X5 o4 l- B& h" k

6 z$ _$ U% b9 f# e1 l

4 i) U0 e4 m' D( T
  • 存储值:存储采集的数据或者存储数据的差量。
    0 Q0 K# t2 j- F; `

$ ]7 R+ h5 n/ `+ [
& O; H, t8 ]0 {
  • 查看值:选择值映射。值映射不会改变接收到的值,仅仅改变显示,便于阅读。

    : N; u8 ~0 \) U8 V9 a5 E, |9 D) M
- A: U& f" v1 t% s8 g) j! W& p- ]
( b, l' b6 ]0 k2 n0 Y
  • 新的应用集/应用集:选择或新建应用集。
    , V4 j* o  Q- S$ F& G
0 b) O4 P; N$ P% e
如何确认我们配置的Key是正确可用的呢?答案就是用前面介绍的zabbix_get啦。
3 h9 ]3 l& ?2 G7 B3 u

$ H1 n+ d$ g( I2 O4 `
8.1 监控项的Key

" _: E$ s. m( E2 x
2 P2 H, s& o9 N) P1 e, E& ?
Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,多个参数之间用半角逗号隔开。例如:

- e: r1 m5 f9 }+ }: W8 V2 _
7 u8 P3 H! j4 @1 l4 B
vfs.fs.size[/]
vfs.fs.size[/opt]
system.cpu.load[percpu,avg1]
/ a, t5 }) R$ w2 w" L, P7 i0 r/ R

/ B/ L: X6 T+ j- B! x' L
举个例子,创建个自定义监控:

. {2 |8 G' T+ U
; T7 j2 z: }: I$ a6 z& r
1.png
4 l7 R* v9 d/ o9 M7 [
# m0 b! c: i! r2 i$ Y& Q

  F- R" m; D( \' J0 E2 }# u
这里,/etc/passwd为$1,root为$2,则Key最终运行的命令为 grep –c root /etc/passwd。

. G( P$ y- ?& J3 d5 P7 S
' v$ z3 G$ p  r6 v7 `2 j3 Z  @
顺便介绍下用户自定义参数(UserParameter)。UserParameter配置在zabbix_agentd.conf中或Include指定的配置文件中。
Key自定义的不带参数的格式为:
( e9 P$ ?+ \/ G6 Y

" }1 w9 w4 u2 i! {$ t3 ~
UserParameter=key, command

& L4 b: R  f* {3 P5 p" \
2 W' b/ r# T3 Z0 k
带参数的格式为:
8 s$ ]' |$ ]6 ]$ Z  C# k) Y8 O- n

. c8 E: |3 u, {
UserParameter=key, command $1 $2 $3…

! v6 {+ O7 m( \$ N5 S
" E$ d; F" j. R+ \1 |3 l+ V+ S( w9 B; Q
添加了UserParameter后要重启zabbix-agent服务才会生效。

6 s6 t& g1 f! J

" W+ c5 E5 W; Y5 I) R  m0 g
注:Zabbix内置了很多关于网络流量、端口、进程、CPU、内存、磁盘、文件监控的Key,可以查阅官方文档。
1 t2 V( l5 D4 ?) Z& Y+ {$ i4 A
% D* W, x( b, u. h1 p# H$ k9 ?8 b
9 配置触发器
告警是监控的重要功能,是指将达到某一阈值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而让用户来决定是否采取相关措施。

4 g+ }; u, A. T: }0 [
6 m' ^5 G6 G. {6 i
在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是动作对事件信息进程处理,其中包含两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。
触发器的状态分为“OK/正常”和“Problem/问题”。

& r8 T8 l& O' t" ~  C# }+ B$ M
6 f  r& C* @$ l7 U
触发器的状态是在Zabbix Server每次接收到监控项的新数据时,就会对值进行判断。对于触发器中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、noew(),Zabbix Server会每隔30秒进行重新判断。

  i& u8 h' n$ R* }* m
% r% O7 D! l1 \! I. S
一个监控项可以对应多个触发器,通过不同的阈值来设置不同的告警级别,实现分故障级别的告警。

" D- l$ _- d' P* k
0 {2 p8 @* p$ x- @0 c  F
触发器的配置是在“配置”——“主机”/“模板”——“触发器”——“创建触发器”:

+ \. y2 C+ U8 q" o, A

  z3 i, S7 q4 z2 O8 `- M1 M
1.png

0 E8 }4 [$ \3 M( D  j
( _0 I3 z8 _- Q9 n2 E% W* u2 P7 z2 n* r, X+ C
触发器比较复杂的就是告警表达式的配置。点击“添加”按钮,打开表达式构造页面:
0 @/ a) {* [% Z- H' G. V

+ A/ t7 B) I- n- R
1.png
3 c$ I) V! o+ l1 C9 c) E
+ x  R5 ~7 C9 j6 q1 Z* e9 ^
# G: W' P+ R" {- N! v- C7 x6 J. c
Zabbix支持很多条件判断:

' M. Y) I4 e7 b
! w' o0 P+ y! f5 j4 D, M2 C
1.png

% @: k9 c& f4 ~* k: h- i9 U
; i9 y. d# ?2 Z! [" N6 d5 Y4 Z! n! q
选择一个判断条件后,在下面的 “N”文本框中填入阈值数字:

4 B( ^! K3 t, r

) a+ y1 b' x/ b
1.png
0 U+ w) L. e4 K0 d

9 V, D2 j+ K+ i% K' [) `, P! l' {3 D" o
插入后就生成表达式了:

6 d8 H. X! O9 r" C$ U( j' u# b

4 C5 M0 C; E: T: y3 }" A
1.png

9 t4 F1 x4 B' A& E3 O: Q
# n; N$ c; u& {: w+ m
9 J. U% n# R6 u( f
表达式支持监控项&组成复杂的判断条件。
8 Y6 ~, v$ V$ Y  ~, G% h$ K
" p1 l9 w' b1 O3 z2 k! }
1.png

6 n0 N4 H( c' N9 w) ~% i& g$ w' L3 Y- T0 @$ [
7 ]' b  T6 _* G) S' b% m" {  P$ v
添加触发器时可以为触发器选择一个“严重性”,然后就可以根据告警的严重性来配置不同的动作。
; j2 p* D. `6 {1 Y

( V' B8 W$ }; h
10 配置报警媒介
在定义动作配置告警之前,我们要先配置告警媒介,并给用户配置告警的收件人。

& `1 v% s& S9 q3 s8 t  h; H
. V4 B6 R7 V2 U( P0 `
在“管理”——“报警媒介类型”界面:
( C6 |5 @7 J2 K$ F  S3 x
" q8 `9 N) ^" r$ G7 H
1.png

9 |9 ~1 o4 Y% t( Y+ a$ V9 k) s( C& ~) n# I9 A, L- ^" w

8 k3 I, F2 e6 E, P
Zabbix支持短信和SMTP邮件,还有自定义脚本的方式。例如上图的邮件和短信都是用自定义脚本的方式。
- v0 U- G6 L/ ^
: ?& f' u: B( T4 U# r
自定义脚本的报警媒介需要指定脚本名称和脚本参数。这里的参数是用宏定义的,在动作中调用报警媒介时会将该动作的收件人、标题和内容传递给脚本。
* u# [7 `/ ?/ b9 ^

- {3 v. K4 ^# c, A; o1 E
1.png
1 ?' F9 |$ |* t

. ^/ w( X6 |. f0 f) Q+ \) u; H3 B, F" w' Y' K
Zabbix Server在调用脚本的时候,会按顺序将参数作为位置参数传给脚本。上图的配置中则$1为收件人,$2为消息标题,$3为消息内容。
" a& F3 c- y# ?& j6 S& r4 f+ V

8 X" @2 o, e7 F, {* G* }
11 配置用户
要让用户能收到告警通知,需要对该用户配置告警媒介的收件人信息。
, B2 f% }% I) g, g5 a

4 I8 j6 v$ R! r3 k! S
在“管理”——“用户”的“报警媒介”Tab页中添加:

( c( ^5 m; h8 Q6 I4 p6 x" C4 L: E
9 w0 _* E& m% k1 `  h/ S$ G
1.png
8 ^+ ]* T# p* p3 o/ {) A

$ ~/ G( z' A( |# g& m+ U" t
' \# T& Z* m$ ]' W
12 配置动作
如果想在产生事件后,即当触发条件被满足时,采取一些操作,比如,发送事件通知、远程执行命令等,则需要配置动作。动作可以对以下四种类型的事件进行响应:

$ N6 ?  I- e* f! R
& z/ s8 O  i% [/ F
创建动作的方法是,打开“配置”——“动作”界面,在“事件源”下拉菜单中选择事件来源,点击“创建动作”,配置动作的信息、条件和操作。
$ ~! B9 v, I! b( G6 T% _! [
! u: `# o( }3 u$ R2 z) E  _
“动作”Tab页需要配置动作的名称、消息的标题和内容、是否发送恢复消息和恢复消息的标题及内容。标题和内容中可以使用宏来获取触发器的相关参数:

2 Q; [! ~; T5 g. Z1 U/ ~

( H# R+ ]9 y8 S  H/ c
1.png
3 f* V4 |3 ^) ^# p8 R
) v- ~! Q8 c3 k. N7 r& J0 j! O
“条件”Tab页可以配置哪些主机群组、主机、触发器等触发该动作,多个条件之间的关系可以是and或者or:
1 A8 N& W# {( Y) z
) W8 y& U! ]4 s* m& [7 U- U
1.png
1 A' l7 L5 K5 R  u" A  ~

6 ^* X1 y8 i/ Y5 W
( L& ~' C1 F6 L+ F0 Z$ I
“操作”Tab页配置动作的具体操作,“操作类型”分为发送消息和远程命令。发送消息则配置发送到的用户组和/或用户,以及发送到的报警媒介;远程命令则选择要执行命令的主机或主机群组,以及要执行的命令和远程命令的执行方式。操作可以配置多个步骤,实现告警升级。
: o. @7 e- I1 L" A
/ z. @7 g& z9 L3 p, S1 F
1.png
+ |4 t* O- q9 y+ ^, I) e( R3 [

. u6 \0 P% R8 a0 @$ M2 K
4 D( B7 e2 w; E8 J! b4 B
不同类型事件的动作可选的操作不同:

; L; U; |/ q$ F7 u! J/ h* L. ]

. `/ y7 D' L- J
触发器事件:发送消息、执行远程命令
7 M* ~+ @" K* R9 v9 }

3 i3 U" m5 e$ M+ M3 S( f2 k
自动发现事件:发送消息、执行远程命令、添加主机、删除主机、启用主机、停用主机、添加到主机群组、从主机群组中移除、关联模板、取消关联模板、设置主机清单模式

/ m1 o8 `- q' T; Z* _- t
6 o3 f9 ?; z. P+ e+ u& J3 b
自动注册事件:发送消息、执行远程命令、添加主机、启用主机、添加到主机群组、关联模板、设置主机清单模式
0 _8 k9 A5 B3 v7 ?) P

4 U; X) r, u! S# K' `0 w" m
动作发送消息的日志可以在“报表”——“动作日志”中查看。

" K$ G6 ~7 }. W4 v
; c' F* r# _1 Q- v; D' y) P  X$ q1 U  J- t
13 维护时间
在某些场合中,我们不需要进行告警,例如,业务的正常维护,所以此时维护时间功能特别有用。
! {( _  k, e  |! D8 s
8 |' |9 @: i: Z  q! Z2 w; u2 {
在“配置”——“维护”,创建维护期间,配置维护的时间段和主机/群组:
# e3 p% a: _# X; b8 f/ ~
& _0 }6 L% _1 ]8 \1 E& b- O
1.png
. U, O3 a8 y, ~4 g# B" Q1 W% q2 T
. j  ^" B+ e  }) a0 X
" H3 ^  h9 w8 N5 O% ~" u2 m- H, G
维护时间和动作中的配置紧密相关,动作中配置了不在维护时间内才发送告警,因此,启用维护时间不会产生告警:

) Y6 |) y3 {5 d3 E
  y0 K8 i2 L7 G! [1 [2 u0 g( w
1.png
. Q7 u7 f, t. d  c

1 ~( |% i, A9 a! G( K
14 事件确认
当事件出现状态为Problem的时候,在“监测中”——“触发器”/“事件”界面可以查看事件的详细信息:

- u, A% P& s% b
) \6 `# z1 @1 N
1.png

/ @0 a+ ?. Y: ~# S* e/ C
: d/ J9 J* n% P( N
' j: l# V3 i$ k+ S- Y
事件的确认有“No/不”和“Yes/是”两种状态。点击“不”弹出确认界面,输入内容,确认并返回:

. o  d0 \7 y; ?* g* e7 o8 D
3 D$ C1 d# F  S. D! O
1.png
8 `9 \. B9 z9 u1 ^& G, C$ K
& t, r+ K- r; |# }, K
/ n7 S" _# X8 T; S/ f
然后事件的确认状态就是“是”了,表示有用户修改过状态:

9 A. u7 O+ j# B2 @0 G

& S4 O$ f1 u1 M) V  E, K9 |, i
1.png
; b; o. C! J1 }( \

  X6 d- [6 |: I" R# I2 j+ n+ {7 m' ^- ]" E# {4 E
点击“是”可以查看具体的内容:
& L& S* Z/ M7 q/ D8 `2 A

( t- G8 S1 W6 N* n
1.png
- @& |+ ]$ R4 d7 h: B7 `
) ]+ S( @. o$ q4 ]- X2 d+ F
2 d9 n) @+ |* ?
原创:吴坤' ~( o/ `& v( z
1.png

本版积分规则

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

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

Baidu

GMT+8, 2019-1-17 11:32 , Processed in 0.306672 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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