Zabbix 监控的基础概念、工作原理及架构

1、什么是zabbix

Zabbix能见识各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

agent 端:主机通过安装agent方式采集数据。

server 端:通过收集agent发送的数据,写入数据库(MySQL, ORACLE等),再通过php+apache在web前端展示。

2、工作原理

一个监控系统运行的大概流程是这样的:

         Zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:

——主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

——被动:server向agent请求获取监控项的数据,agent返回数据。

3、监控功能

主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制

监控主机zabiix 有专用的agent,可以监控Linux, Windows, FreeBSD等。

监控网络设备zabbix通过SNMP,ssh(不多用)可监控对象。

         设备:服务器,路由器,交换机

         软件:OS,网络,应用程序

         主机性能指标监控

         故障监控:down机,服务不可用,主机不可达

4、zabbix的组件及进程

重要组件

  1. Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。
  2. Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据。
  3. Web interface:zabbix 的GUI接口,通常与Server运行在同一平台。
  4. Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端。
  5. Agent:部署在被监控端主机上,负责收集本地数据并发往Server端或Proxy端。

常见进程

zabbix­_agentd:

客户端守护进程,负责收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get:

zabbix工具,单独使用的命令,通常在Server或者Proxy端执行获取远端客户信息的命令。通常客户排错。例如在Server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender:

zabbix工具,用于发送数据给Server或者Proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix­­_proxy:

zabbix代理守护进程。功能类似Server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到Server里。

zabbix­_java­_gateway:

Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到Server或者proxy。

5、zabbix的监控架构

在实际监控架构中,zabbix根据网络环境、监控规模等分了三种架构:

server-client架构

监控机和被监控机之间不经过任何代理,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境。

server-proxy-client架构

proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agent发来的数据暂时存放,而后再提交给server。一般适用于跨机房、跨网络的中型网络架构的监控。

master-node-client架构

适用于跨网络、跨机房、设备较多的大型环境。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client。Node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。


 

你可能感兴趣的:(监控)