zabbix 监控架构
zabbix的监控架构在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构:server-client 、master-node-client、server-proxy-client。
1、server-client架构也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
2、server-proxy-client架构其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
3、master-node-client架构该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步。
普通监控:
监控中心zabbix-server
|
----------------------
| |
----------- -----------
| | | |
agent agent agent agent
分布式监控:
监控中心zabbix-server
|
----------------------
| |
---proxy--- ---proxy---
| | | |
agent agent agent agent
Zabbix 优点
开源,无软件成本投入
Server 对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动 从server 端去下载需要监控的item 然后取数据上传到 server 端。 这种方式对服务器的负载比较小。
Api 的支持,方便与其他系统结合
Zabbix 缺点
需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据很大,瓶颈主要在数据库。
Zabbix 监控系统监控对象
数据库:MySQL、MariaDB、Oracle、SQL Server
应用软件:Nginx、Apache、PHP、Tomcat agent
--------------------------------------------------
集群:LVS、Keepalived、HAproxy、RHCS、F5
虚拟化:VMware、KVM、XEN
操作系统:Linux、UNIX、Windows agent
--------------------------------------------------
硬件:服务器、存储、网络设备 IPMI
网络:网络环境(内网环境、外网环境) SNMP
IPMI:
智能平台管理接口(Intelligent Platform Management Interface)IPMI 能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器系统成本。
SNMP:
网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机等)的一种标准协议,它是一种应用层协议。
监控区别
1.nagios图形不是特别好,也可以安装图形插件,但是也不怎么好看
2.nagios一般情况下如果需要图形可以和cacti配合使用
3.cacti的监控是轮询监控,效率低,图形相对nagios比较好看
4.zabbix在性能和功能上都强大很多
5.zabbix的图形相当漂亮
6.zabbix支持多种监控方式 zabbix-agent snmp 等等
7.zabbix支持分布式监控,能监控的agent非常多
8.zabbix有图形的web配置界面,配置简洁
9.zabbix支持自动发现功能
Zabbix监控方式
主动模式/被动模式
1、Server
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。
2、数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
3、Web界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。
4、Proxy 代理服务器
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。
Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever,基本上是代server工作的。
部署Proxy是可选的,但是可能非常有益于分散单个Zabbix sever的负载。 如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。
Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。
Zabbix proxy需要使用独立的数据库。
5、数据流
监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你必须: 1. 为Server 创建一个host并关联一个用于对CPU进行监控的监控项(Item)。 2. 创建一个Trigger,设置成当CPU负载过高时会触发 3. Trigger被触发,发送告警邮件 。
Zabbix常用术语的含义
1、主机 (host)
- 一台你想监控的网络设备,用IP或域名表示
2、主机组 (host group)
- 主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
3、监控项 (item)
- 你想要接收的主机的特定数据,一个度量数据。
4、触发器 (trigger)
- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
5、动作 (action)
- 一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
6、媒介 (media)
- 发送告警通知的手段;告警通知的途径
7、远程命令 (remote command)
- 一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
8、模版 (template)
- 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,应用,Web场景等)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
9、web 场景 (web scenario)
- 利用一个或多个HTTP请求来检查网站的可用性
10、前端 (frontend)
- Zabbix提供的web界面
11、Zabbix agent
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件,内存,处理器统计等)。
Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。