没有合适的资源?快使用搜索试试~ 我知道了~
首页Zabbix最佳部署详解手册.pdf
Zabbix最佳部署详解手册.pdf
需积分: 50 1.3k 浏览量
更新于2023-05-27
评论 2
收藏 5.77MB PDF 举报
详细介绍了zabbix的安装,监控项的添加,各监控指标项意义,自动发现,图表创建等等。
资源详情
资源评论
资源推荐

美河学习在线 www.eimhe.com 收集分享
为什么需要监控
在一个 IT 环境中会存在各种各样的设备,例如,硬件设备、软件设备,其系的统构成也
是非常复杂的,多种应用构成复杂的 IT 业务系统,保证这些资源的正常运转,是一个公
司 IT 部门的职责。而要让这些应用能够稳定地运行,则需要专业 IT 人员进行设计、架
构、维护和调优。在这个过程中,为了及时掌控基础环境和业务应用系统的可用性,需
要获取各个组件的运行状态,如 CPU 的利用率、系统的负载、服务的运行、端口的连通
等信息,而这一切都离不开监控系统。
监控采集数据的手段
基于通行的 SNMP
基于专用的 agent(如果是路由器这样的设备可能无法安装
实现简单的监控,ssh,执行脚本,命令来获取数据(必须有对方节点的用户帐号)
有监控就有:监控端,与被监控端。
监控端被称作:NMS(网络管理系统,或网络监控系统),必须周期性的到被监控端采集
数据。
所以需要:在所有的被管理端都安装能与管理节点通信的专用工具,这个工具可以对用
户的请求进行认证,仅来自允许通过 NMS 某个通过认证的用户来获取数据。所以需要
这个代理运行在被监控端,并且有权限获取本地的数据 。
在 NMS 管理端过来请求数据时,代理将收集到的数据回馈给 NMS。
SNMP(nms/agent):简单网络管理协议
大致由 3 个版本:v1 、v2 、v3.,比较通行的版本 v2c 版本,数据传输明文(v1 、v2),
认证机制薄弱
所有大多的监控工具都是控制端,agent 架构的,有开发的专属的 agent,从而加强了
传输与认证的机制,因为其本身就是一种应用程序,称之为:专用 agent 架构。管理功
能更强大
SNMP 命令:
get get-next get-bulk 只是对数据完成了采集,只是一种协议,trap 实现主动发送
警告
监控工具
Cacti(是依赖 SNMP 采集数据的、php 开发的)
1、 采集数据:
依赖 SNMP,依赖于脚本。
2、 保存数据:
采用 rrd,轮转数据库,文件保存。Rrdtool 自身即可完成数据保存、绘图
利用 rrd 保存数据,最终实现绘图,cacti 就成了一个展示工具
3、 数据展示(展示的界面很友好)
4、 数据分析及报警(只能实现简单的报警)
报警:设置预值可以设置 2 个(1:警告预值,2:紧急预值)
5、 做不到报警升级
Cacti 本身不是监控工具,不需要在被监控端装监控工具。Cacti 本身没有报警功能,但

美河学习在线 www.eimhe.com 收集分享
是支持插件,所以可以安装报警插件从而实现报警功能,报警不是太及时,而 nagios
触发即可报警
6、 Cacti 指标的采集时间是统一的,如果所有的采集数据碰到了一个时间点执行,就产生了
很高的并发量,产生很高的 IO。
Nagios(状态转换报警工具)
1、 其本身就是独立的监控工具,并且有专用插件,如果在被监控端装上 nagios 的 agent 工
具,可以实现非常好的监控功能。
2、 支持主动监控,被监控端可以自己发现自己有问题,主动向监控端报告。
3、 实现在状态转换时,发现异常情况,而且实现软状态切换,比如:服务的运行,第一次
发现不一定就是故障了,而这时 nagios 会发现切换状态进入紧急状态,如果再次故障再
次故障就会触发报警。故障恢复正常也会报警。
支持:邮件、短信、MSN 各种有开发 API 的都能实现。
1、 依赖关系报警。如果发现的是关键设备,则跟这个设备相关联的就不再报警
2、 只关心正常与否的状态,状态转换时候实现报警
3、 需要额外配置实现数据采集
小结:
不管是 cacti 、nagios 都不适合大规模的网络应用,因为需要监控多条指标。所以都很
难实现在分布式环境下,对众多大量的节点同时进行监控。
如果节点超过俩百个 nagios 就可能会出现延迟。
Zabbix:即是强大的数据保存工具,又是一个报警工具。
1、 自动发现监控设备。
2、 支持分布式监控,有代理,将网络划分成不同的区域,每个区域有一个负责监控,
而后汇总到总站。
3、 完全开源。
4、 在中小企业,提供一体化解决方案。
5、 具备:采集,存储,展示,报警。
Zabbix 监控的设备
1、 可以监控基于 SNMP 的设备。
2、 可以监控基于安装 zabbix 专用的 agent 的设备,Linux,Windows,Unix,servers 等。
3、 没有安装工具的,基于 ping,或则 port 的扫描来进行监控。支持运行脚本,可以实
现在客户端预定义好脚本,并且将这个脚本定义成 zabbix 的 agent 上的一个插件,一
个 key,就可以实现 zabbix 的监控端实现对数据采集,之一。
4、 支持多达 1000 000 十万台的设备,完全开源。
5、 几乎支持所有系统的监控。
6、 独特的 web 监控,监控服务本身的服务状态。逐页面监控,想对哪个页面监控就监
控哪个页面。实现提供帐号登录页面的监控
1、 可以监控指定的 web 页面是否存在。
2、 监控页面的响应时间
3、 监控页面的数据的下载速度

美河学习在线 www.eimhe.com 收集分享
4、 下载内容
5、 HTTP、HTTPS
6、 采集时间点数据流量的监控。如:在 10:00 发送了 10 个数据包到 10:30 发送了
15 个,采集 10:00~10:30 之间的数据包,分析数据包的趋势走向(cacti 的计算能
力更强)
7、 报警升级,可以执行某些命令,自己运行一个脚本,通过这个脚本来执行一些报
警动作,也可以通过脚本来重新触发服务。定义报警机制
2012 年出 2.0,加入许多新功能
1、 支持 zabbix prox,通过 proxy 与 zabbix 监控端通信,基于 TCP 的连接。汇总以后一次发
过来,从而减少监控端的数据采集压力,存储没有变小,并发降低很多。
Zabbix 组件概念
1 zabbix server : 负责接收 agent 发送的报告信息和核心组件,所有配置、统计数据及操
作数据均由其组织进行。
2 Database storage : 专用于存储所有配置信息,以及由 zabbix 收集的数据
3 Web interface : zabbix 的 GUI 接口(frontend/前端),通常与 server 运行在同一台主机上
4 Proxy : 可选组件,常用于分布式监控环境中,代理 server 收集部分被监控端的监控数
据并统一发往 server 端
5 Agent : 部署在被监控主机上,负责手机本地数据并发往 server 端或 Proxy 端。
6 主机(host ) :要监控的网络设备,可由 IP 或 DNS 名称指定
7 主机组(host group) :主机的逻辑容器,可以包含主机和模版,但同一组内的主机和
模版不能互相连接,主机组通常在给用户或用户组指派监控权限时使用。
8 监控项(item) : 一个特定监控指标的相关的数据,这些数据来自于被监控对象,对于 item
是 zabbix 进行数据收集的核心,没有 item,将没有数据,相对某监控对象来说,每个
item 都有“key”进行标识
9 触发器(trigger) : 一个表达式(表达式有点费劲),用于评估某监控对象的某特定 item
内所接收到的数据是否再合理范围内,即:阀值。接收到的数据量大于阀值时,触发器
状态将从“OK”转变为“Problem”,当数据量再次回归到合理范围时,其状态将从
“Problem”转换回“OK”

美河学习在线 www.eimhe.com 收集分享
10 事件(event) : 即发生的一个值得关注的事情,例如触发器的状态转变,新的 agent 或
重新上线的 agent 的自动注册等
11 动作(action ) : 指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条
件(何时执行操作);定义动作有点难。
12 报警升级(escalation) : 发送警报或执行远程命令的自定义方案,如每隔 5 分钟发送一
次警报,共发送 5 次等。
13 媒介(media) : 发送通知的手段或通道,如:Email Jabber 或 SMS 等。
14 通知(notification) :通过选定的媒介向用户发送的有关某事件的信息。
15 远程命令(remote command) : 预定义的命令,可在被监控主机处于某种特定条件下
时自动执行。
16 模版(template) : 用于快速定义被监控主机的预设条目集合,通常包含了 item、trigger、
graph(图形/图像,采集好的数据展示)、screen(多个图形展示在一个页面中显示)、
application、以及 low-level discovery rule;模版可以直接链接至单个主机。
17 应用(application) : 一组 item 的集合。
18 Web 场景(web-secnnario) : 用于检测 web 站点可用性的一个或多个 HTTP 请求
19 前端(frontend) : zabbix 的 web 接口。
实施步骤:
1 定义好 zabbix server ,zabbix agent
2 定义这个 agent 上,应该有哪些需要关注的指标,根据指标到 agent 上采集数据,
3 采集到数据,保存到数据库当中,
4 根据触发器定义合理区间,阀值。一旦操作就触发一个事件
5 当某个事件触发,采取动作,包含条件(关注的某个指标,状态的转换)和操作(通知)
6 基于媒介通知,需要事先定义好,邮件:发件人、邮件服务器,根据内容模版发送信息,
简单做一下变量替换将信息发送出去,获取当前事件本身是什么,来做替换,这个替换
叫做宏,不叫变量(zabbix 宏:其实就是个变量)。
7 逻辑架构图
7.1 三个核心组件:zabbix server、zabbix proxy、zabbix agent 都需要独立运行为服务,并且都有自
己的配置文件,日志文件,而 proxy 并不是必须的。Zabbix 的监控结果,还是对 zabbix 自身做
配置,都要基于前端来实现,所以需要配置前端组件:web GUI Apache PHP
7.2

美河学习在线 www.eimhe.com 收集分享
8 Zabbix poller :(也叫做 zabbix 的 server 端)拉取机制的 zabbix server,各种方式拉取数
据,也就是到对应的 agent 上的每一个 item 上采集数据,每个 item 上可以定义合理的
预值(triggers),一旦超除阀值,可以采取动作(actions),来发送邮件(Email),一旦一个
trigger 被触发就会发生一个事件 events,这个事件是 action 采取时候判断的条件,判断
条件的来源,我们又知道每个 item 是在每个主机上的(agent 上的)host,多个主机(host)
归一类称为一个主机组(host group),每个主机上有多个 item。
9 那么如何实现快速部署某个主机上监控哪些 itme 呢?
9.1 可以使用模版,给这个主机上一套,即可监控这个模版上的各种 item。
9.2 一个 Template 包含:item,每个 item 都应该有自己的触发器,既要定义 item,
也要定义触发器(trigger)。
9.3 每个 item 数据采集后,都内置的由一个图形(Graph)。
9.3.1.1 所以:Graphs+Triggers+items 构成一个 Template,一个 Template 可以
一次性用到一个主机上来,从而这个主机就有了各个 item,有了各 item,
而且又运行了 agent,从而可以通过 agent 的机制跟 Zabbix Poller 通信,
所以 Poller 就可以采集数据了。
9.3.1.2 并且还可以手动调整Zabbix的host或 host groups,处于维护状态的,
叫:Maintenance:什么意思:
9.3.1.3 比如:一个服务需要维护,需要下线,避免 zabbix 监控不到一直报警。
安装 Zabbix 的思路:
1 首先确保 server 端,server 又依赖 database(mysql 为例),配置 LAMP 或 LNMP 平台,
能够到数据库中读取数据,并展示这个接口,因为 Zabbix 的配置严重依赖于 web 接口,
后期的 item 的定义都要基于 zabbix 的接口来实现的。
1.1、 安装 agent 到主机确保服务能够运行,
1.2、 添加这个 agent,配置 server 添加这个 agent,相当于是添加了一个主机(host),
主机上的监控对象是 item,然后再在主机上定义一个 itme,当定义好 item 后就
可以采集数据了。
1.3、 此时采集数据没有报警,没有阀值,可以看到图形,每一个 item 都有一个内置
的图形(Graph),不需要创建,直接就可以看的。
2 为这个 item 创建触发器(Trigger),定义了触发器只定义了超出了合理预值,或没有超出
合理预值,还是不能报警的,然而触发器可以生成事件 action,可以根据这个事件 action,
我们所关注的事件来进行通知。
3 定义 action,然而 action 是基于媒介才能发送通知的,所以在定义 action 之前,需要先
定义好媒介(通过哪一种方式发送通知),从而 action 通过媒介向外发通知,(对 zabbix
来讲,所有能够接通知的对象,一定是当前 zabbix 的用户),所以还需要管理 zabbix 自
身的用户,定义每个用户接收通知的方式。
3.1、(这里以邮件为例):将通知发送给 zabbix 用户,zabbix 用户有自己的邮箱,找到这
个用户的邮箱将通知发送出去。
4 主机多的时候,归到一个组上来。
5 如果监控的内容一样,定义模版。定义对应的多种模版,直接套到主机上即可。
6 这些 item 都有自己的图像,所以需要定义 screen,通过 screen 可以展示多个图像。
7 当有多台主机需要添加的时候怎么办?
7.1、 可以通过 code,parpt 保证每个主机启动起来后,推送到监控端。
剩余68页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0