zabbix理论

雨燕双飞 提交于 2020-01-28 15:21:49

Zabbix简介

Zabbix是一个企业级的开源分布式监控解决方案,由C语言编写而成的底层架构(server端和agent端),由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。

zabbix是一款基于web页面的、开源的、企业级的,可以分布式部署的监控软件。

官方网站:http://www.zabbix.com

Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据

Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。

zabbix的作用

(1)监控windows和Linux主机上的软硬件状态。
(2)监控各网络设备,如路由器、交换机、防火墙、f5、打印机等。
(3)发送告警通知。
(4)通过web页面及图形展示监控数据。

zabbix的特性

(1)由server和agent程序协同工作,如果是分布式监控还需要proxy程序。

(2)监控方式站在agnet的角度分为主动监控(agent active)和被动监控(agent)。

主动监控:
 
当监控条目配置为agent active时,即为主动监控,此时agent会主动根据配置好的时间间隔去向server或proxy询问要监控哪些item,然后将item的数据主动提交给server或proxy。

被动监控 :

当监控条目配置为agent时,即为被动监控,此时server或proxy会主动向agent请求它要监控的item的数据,然后agent会将数据发送给server或proxy。

(3)支持的监控手段 

所谓监控手段即server或proxy通过什么方式来收集监控到的数据,常用的有:

SNMP(polling,trapping)

IPMI(监控硬件状况)

JMX(监控java应用)

自定义监测(自定义各类监控脚本监测)

(4)告警阈值定义

在trigger中定义告警阈值或条件

存储于后台数据库中

可以自定义告警升级机制

调用action实现自动化动作

(5)监控数据呈现 

zabbix通过内置的画图软件将监控到的数据实时通过web页面呈现出来。

(6)历史数据存储

存储于数据库中

支持多种数据库,mysql,db2,oracle,postgresql,sqlite

存储时长可自定义

自动清理过期历史数据

(7)监控主机配置

通过添加监控设备方式添加

可以使用模板进行配置

(8)模板的使用

模板包含item,trigger,action等一系列单个主机支持的元素

模板中可以使用组监控

模板可以继承

(9)自动发现功能

网络设备自动发现

agent自动注册

自动发现文件系统、网卡、SNMP OID

(10)web界面

web前端采用php编写

界面样式可以灵活自定义

自带操作日志审计

(11)zabbix API 

供第三方程序接入

(12)权限系统 

可以对用户进行分组认证及授权。

(13)agent端 

支持Linux和Windows系统。

(14)守护进程 

基于C语言开发。

zabbix系统的组成

(1)zabbix_server

服务端守护进程。

负责处理客户端主动送上来以及它主动去取回的数据。

通过web界面呈现这些数据。

(2)zabbix_agentd

客户端守护进程。

负责收集客户端上的数据并发送给server或proxy。

(3)zabbix_get

服务端工具。

在服务器上执行,用于手动收集客户端的监控数据,可以用于监控测试或者排错。

(4)zabbix_sender

客户端工具。

对于非常耗时间的检测项,可以在其检测完成以后,通过它将数据发送给server或者proxy。

需要与trapper配合使用。

(5)zabbix_proxy 

类似于server,但它只是一个中转站,当跨地区,跨机房部署zabbix系统时,需要用到它,以将它收集到的数据发送给server。

(6)zabbix_java_gateway

类似于agentd程序。

只用于java应用程序的监控。

只能主动去获取数据,类似于agent active。

最终将收集到的数据发送给server或proxy。

(7)zabbix_web 

构建zabbix专用的站点,将监控数据以web页面的形式呈现出来,并对zabbix系统进行配置设定。

Zabbix功能

1、具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式

详细的报表图表绘制)

2、支持自动发现网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server提供通用接口,可以自己开发完善各类监控。

优劣势

优点:

开源,无软件成本投入;

Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);

支持设备多;

支持分布式集中管理;

开放式接口,扩展性强;

当监控的item比较多服务器队列比较大时可以采用被动状态,被监控客户端主动从server端去下载需要监控的item然后取数据上传到server端。这种方式对服务器的负载比较小。

缺点:

无厂家支持,出现问题解决比较麻烦;

需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。

监控流程

agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。

在实际监控架构中,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同步,master的故障或损坏对node其下架构的完整性。

 zabbix通讯方式

agent:通过专用的代理程序进行监控

ssh/Telnet:通过远程控制协议进行通讯

SNMP:通过SNMP协议与被监控对象进行通讯,路由器和交换机支持SNMP,其实也是一种agent

IPMI:通过IPMI接口进行监控,通过IPMI硬件接口监控,电压,温度,风扇,和电源状态

JMX:通过(java management extensions Java管理扩展)监控JVM虚拟机

分布式的监控体系:监控数据被提交给zabbix proxy 再 提交给zabbix server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!