第3章Zabbix完整监控

Zabbix的监控流程能够简单描述为:数据采集-->数据存储-->数据分析-->数据展现-->监控报警php

数据采集:Zabbix经过SNMPAgentICMPSSHIPMI等进行数据采集html

数据存储:Zabbix存储在MySQL上,也能够存储在其余数据库java

数据展现:web界面展现、(移动APPjava_php开发一个web界面也能够)node

数据报警:邮件报警、微信报警、短信报警、报警升级机制linux

Zabbix的监控配置流程能够简单描述为:web

告警是由一系列的流程组成,首先是触发器达到阀值,产生一个事件,接下来由Action对事件信息进行处理,其中包括两部分:第一部分是发送消息,即将告警信息发送给用户,第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。数据库

Host groups(主机组)→Hosts(主机)→template(模板)Applications(监控项组)→Items(监控项)→graph(图形) screen (图形分组)Triggers(触发器)→Event(事件)→Actions(处理动做)→Media types(告警升级|1.执行远程命令2.发送告警邮件)User groups(用户组)→Users(用户)→Medias(告警邮件)vim

在实际生产使用的时候,ItemsTriggerGraph采用模板来进行监控,模板特色就是能够重复的事情一次完成,修改了模板等于修改了全部调用此模板的主机。这样可解放运维的双手服务器

Graph不是必需的,由于没有配置图形,数据获取并不影响,获取数据是Items的功能。可是对于使用ZabbixWeb界面用户来讲,没有图形等于没有数据,所以重要的Items必须添加必要的图形以作可视化展现。若是想集中查看图形,能够经过screen功能。微信

1.1添加主机组

建议:对同一属性的主机或模板,尽可能概括到分组,方便之后管理。分组原则建议以下。

q  以地理位置进行划分。

q  以业务为单位划分组。

q  以机器用途划分。

q  以系统版本划分。

q  以应用程序分组。

q  其余方式等。

分组的目的是将同一属性的主机归类,若是你不想将新添加的主机概括为自定义的分组,可使用默认的分组。

1.  点击ConfigurationHost groups上的按钮Create host group,如图2-3所示。

 

说明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/D7FF1794-AEAA-4D91-BF80-B05F28364302.png

2‑1

2.  单击后会出现一个添加新主机组的界面,如图2-2所示。

说明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/4026312D-B0F6-49AF-B09C-2E6D7658544A.png

2-2

在图2-2”Group name”是组的名称:”Host Host in”是选择那些设备属于这个新添加的组。

3.  单击Save保存,新添加的主机组就能够显示在主机组列表中,如图2-3所示。

2-3

1.2添加模板

监控项、触发器、图形、WebDiscovery等都是存在于主机之上的,因为多个主机都会用相同的监控配置,所以,能够对这部分同类的数据进行概括抽象,即将这些数据作成模板。当咱们须要对其余监控数据进行配置的时候,只须要对相对应的主句添加对应的模板便可。

1.  配置模板的步骤为:单击→ConfigurationTemplatesCreate template 如图2-4所示。

group:能够选择在哪一个组建立该模板

import:能够导入模板

说明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/3B82C7B9-88EF-4DC3-92E4-1BDF9EFF958D.png

2-4

2.填入模板名称和所属的组,如图2-5所示。

2-5

4.  模板具备继承的功能(将一个模板在另一个模板中使用),如图2-6所示。

2-5

搜索当前已经存在的模板,而后单击Add添加-点击下面的Add

5.模板中也能够设置宏,如图2-6所示。

宏主要是对变量定义,设置宏的做用是方便后面再ItemsTrigger中引用,在模板中配置一个宏,在不一样的主机对该宏设置不一样的变量值,从而达到模板通用的目的。

2-6

6.查看新建的模板,如图2-7所示。

2-7

能够看到,Items中已经有32Items了,是继承与trt-linux-basic模板的。之后会详细讲解如何在模板中添加其余的Items

1.3添加主机

1.  添加主机的目的是对具体的设备进行监控,步骤为:依次单击ConfigurationHostsCreate host,如图2-8所示。

说明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/C169BE95-DE6B-41C2-91E8-34D833DBE153.png

2-8

2.在图2-8中单击Create host,出现如图2-9所示的界面。

2-9中各参数的详细说明如表2-1所示。

2-9

2-1

参数

描述

主机名(Host name)

输入一个不重复的主机名。编辑该名称对应客户端的配置文件时,主机名这一项必须与此处输入的值相同。

访问名(Visible name)

若是设置该名字,那么它将出如今主机列表、地图等地方。

群组(Group in groups)

选择主机所属的群组。一个主机必须属于至少一个主机组。

新建主机组(New group)

一个新的群组将被 ,而后自动链接到该主机上。若是为空,该项将被忽略。

接口协议(Agent interfaces)

一个主机支持的主机接口协议包括:AgentSNMPJMXIPMI,若是想增长一个新的接口,单击”Add”按钮,而后输入IP/DNS、链接项、端口等信息。

IP地址(IP address)

要监控主机的IP地址(可选项、默认是IP)

DNS名称(DNS name)

要监控主机DNS能扣解析的名称(可选项)

Agent通讯方式(Connect to)

单击对应名称的按钮

IP

链接要监控主机的IP地址(推荐)

DNS

要监控主机可以正常解析的DNS

端口(Port)

TCP协议的端口,Zabbix客户端使用的默认值是10050

经过代理服务器进行监控

(Monred by proxy)

主机能够经过Zabbix服务器或者Zabbix的一个代理去监控客户端

状态(enabled)

勾选则开启

2.  选择模板,如图2-10所示。

1.能够添加多个模板。

2.能够搜索模板进行添加。

2-10

3.添加了一个bjstack-template新建的模板,单击Add保存,而后update更新

1.4添加Graphs

Graphs是将数据展现为图像,以视觉化形式展现,Graphs的配置存在于主机和模板中。

1.在所在的主机模板中,选择Graphs,如图2-11所示。

2-11

2.针对web-node1-192.168.90.12这台主机上的itmes进行配置Graph 单击“Create graph”按钮,如图2-12所示。

2-12

3.出现新建图形的界面,输入Name,选择所须要的Items,如图2-13所示。

2-13

4.若是要查看全部的图形,单击MonitoringGraphs选择对应的GroupHostGraph,查看cpu load如图2-14所示。

2-14

1.5添加Screen

Screen将多种信息放在一块儿展现,便于集中展现某个Host的多个信息,或是将多个Host的同一种信息放在一块儿显示,这些信息能够为GraphsMapsServerinfo等,几乎涵盖Zabbix全部的监控信息。

1.经过单击Configuration-ScreensCreate screen来建立,建立时定义Screen的行数和列数(如图2-15至图2-16所示)

2-15

2-16

2.单击建立Screen名称,如图2-17所示

2-17

3.单击单元格内的Change,选择选择cpuload图形 添加相应的元素,如图2-18、图2-19所示

2-18

2-19

3.  配置好后,经过单击MonitorScreen,选择相应的Screen组,如图2-20所示。

2-20

1.6添加Trigger

基于刚刚的web-node1建立触发器,选择对应的Host/Template(模板会自动关联至主机),建立触发器CPU Load如图2-21、图2-22、图2-23、图2-24是对触发器进行设置的示例

2-21

2-22

2-23

2-24

最后效果如图2-25、图2-26

2-25

2-26

推荐更多Zabbix触发器支持的函数说明:http://pengyao.org/zabbix-triggers-functions.html(来自姚炫伟翻译)

推荐Zabbix Trigger表达式实例:http://pengyao.org/zabbix-trigger-example-1.html(来自姚炫伟)

添加完触发器,能够打开Zabbix内置的报警铃声,如图2-27

2-27

 

也能够修改items的报警时间间隔(不是必须),如图2-28所示

2-28

1.7添加Media

步骤为:登录Zabbix Web页面,单击AdministrationMedia TypeCreate Media Type(右上角)-如图2-29

2-29

用户能够配置Media,发送告警的方式等,点击Admin,也能够建立一个新用户(我这里只是一个例子)如图2-30

2-30

2.配置一个用户做为接收如图2-31

2-31

保存并开启如图2-32

2-32

1.8.添加Action

配置action,须要以下几个步骤:

1.在菜单栏中单击ConfigurationActions

2.Event source下拉菜单中选择事件来源。

3.单击Create action

4.设置Action参数,以及报警消息内容。

5.单机Conditions按钮,设置Action的依赖条件。

6.单击Operation按钮,设置执行动做。

1.8.1配置Action

经过菜单ConfigurationActionsCreate Action来建立Action 如图2-33、图2-34

2-33

2-34

告警消息内容:

报警主机:{HOST.NAME1}

报警服务: {ITEM.NAME1}

报警Key: {ITEM.KEY1}{ITEM.VALUE1}

严重级别: {TRIGGER.SEVERITY}

恢复消息内容:

恢复主机:{HOST.NAME1}

恢复服务: {ITEM.NAME1}

恢复Key{ITEM.KEY1}{ITEM.VALUE1}

1.8.2配置Conditions

条件之间的逻辑运算符

1.不在维护期

2.Trigger状态为PROBLEM

3.主机是web-node1-192.168.90.12

4.以上条件必须所有知足才能够发送通知,如图2-35所示例

2-35

1.8.3配置Operation

触发器事件成立后有如下两种动做。

1.发送消息(send message)

2.执行远程命令(Remote command)

固然还有不少,好比:增长主机、删除主机、开启监控、关键监控、连接模板、取消模板连接等等。

当出现了Trigger状态改变时,应尝试自愈,若是没法修复,那么报警升级发送消息通知相关人员。如图2-36、图2-37、图2-38、图2-39

2-36

告警信息将氛围两个等级梯度发送,以下图2-33、图2-34

第一梯度:1-2步,远程执行命令重启Apache,间隔时间为60s,发送执行2次知道故障恢复。

第二梯度:3-4步,发送给Admin用户,间隔时间为60s,发送两次,知道故障恢复。

首先要支持远程执行命令,必须开启远程执行命令,以及sudo权限

[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1

[root@linux-node2 zabbix_agentd.d]# systemctl restart zabbix-agent

[root@linux-node2 ~]# visudo

zabbix      ALL=NOPASSWD: /usr/bin/systemctl restart httpd

 

2-37

说明: /Users/xuliangwei/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/552408925/QQ/Temp.db/64F8590B-CC22-487F-AF55-8597180E181C.png

2-38

2-39

1.8.4查看报警信息

若是达到阀值Zabbix会执行远程执行命令(若是不成功)-最后发送告警邮件,如图2-40、图2-41

2-40

2-41

相关文章
相关标签/搜索