1、Zabbix 监控架构
Zabbix的监控架构在实际监控架构中,zabbix根据网络环境、监控规模等架构:
包括:server-client 、server-proxy-client。
-server-client架构是zabbix的最简单的架构,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单、设备比较少的监控环境 。
-server-proxy-client架构其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端页面,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。一般适用于跨机房、跨网络的中型网络架构的监控master-node-client
普通监控:
2、Zabbix 优点
优点
··开源,不花钱,没成本;
··server 对设备的性能要低;
··支持设备多,自带多种监控模块;
··支持分布式管理,有自动发现功能,可实现自动化监控;
··监控项多,服务器队列较大时可采取被动模式;被动监控端可主动从监控端下载需要监控的item,然后讲数据传送到监控端、对监控端负载较小;
··支持API接口,方便结合其他系统
3、Zabbix 缺点
缺点
··需要在被监控端安装agent,所以数据存放在数据库,产生数据较大,瓶颈主要在数据库
··批量修改项目不方便;
··社区成熟,但中文资料少,服务支持有限
··系统级别报警设置较多,同时不筛选报警邮件会比较多;自定义项目报警需要自行设置过程繁琐
··无数据汇总功能
4、Zabbix 监控系统监控对象
数据库: MySQL,MariaDB,Oracle,SQL Server agent
应用软件:Nginx,Apache,PHP,Tomcat agent集群: LVS,Keepalived,HAproxy,RHCS,F5 agent 虚拟化:
VMware,KVM,XEN ,docker,k8s agent
操作系统:Linux,Unix,Windows性能参数 agent硬件: 服务器,存储,网络设备 IPMI 网络: 网络环境(内网环境,外网环境)
SNMP
5、监控产品区别
1.nagios图形不是特别好,也可以安装图形插件,但是仍然不够直观
2.nagios一般情况下如果需要图形可以和cacti配合使用
3.cacti的监控是轮询监控,效率低,图形相对nagios比较好看
4.zabbix和nagios因为是并发监控,对cpu的要求更高
5.zabbix在性能和功能上都强大很多
6.zabbix的图形相当漂亮
7.支持多种监控方式 zabbix-agent snmp 等等
8.支持分布式监控,能监控的agent非常多
9.zabbix有图形的web配置界面,配置简洁
10.zabbix支持自动发现功能
6、Zabbix监控方式
主动模式:
zabbix_agent端向server端请求相关监控项配置,并主动 将server端 配置的监控项数据发送给server监控端
主动监控能极大节约监控server 的资源。
被动模式:
server端向agent端请求各项监控数据, agent接收、获取数据并相应给server端。
Zabbix 架构
Zabbix由几个主要的软件组件构成,这些组件的功能如下。
、Zabbix Server
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。
、Zabbix 数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
、Zabbix Web界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。
、Zabbix Proxy 代理服务器
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。
Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever,基本上是代server工作的。所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。
部署Proxy是可选的,但是可能非常有益于分散单个Zabbix sever的负载。 如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。
Zabbix proxy需要使用独立的数据库。
、Zabbix Agent监控代理
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
、Zabbix 数据流
监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。
告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,
1、为Server 创建一个host并关联一个用于对CPU进行监控的监控项(Item)。
2、 创建一个触发器Trigger,设置成当CPU负载过高时会触发
3、 Trigger被触发,发送告警邮件 。
Zabbix组件
··zabbix server
核心引擎,负责收集和接收来自被监控设备的数据,用来与Zabbix Agents、Zabbix proxy和Zabbix Database进行通信。它是最重要的组件,管理着所有的规则,包括收集监控数据、触发器、告警等。(由C语言开发)
··zabbix web FrontEnd
Zabbix web frontend 从mysql读取数据展示,同时会连接zabbix server展示server状态(比如停止server,页面会展示server停止)
··zabbix database
是Zabbix数据存储库。Zabbix的后端数据库可以是Oracle、IBM DB2、 PostgreSQL、MySQL或SQLite3
··zabbix GUI
是Zabbix Web前端管理界面,管理者通过Web前端页面可以查看Zabbix Server收集的数据,也可以对Zabbix Server进行配置。(由PHP开发)
··zabbix proxy
是一个可选的组件,用它实现分布式监控架构或分担Zabbix Server的负载,提高Zabbix Server的性能。它的主要功能是协助Zabbix Server从被监视的主机或设备收集数据。【Zabbix proxy收集的数据首先存放到本地临时数据库中,随后会定时发送到Zabbix server中,即便Zabbix Server和Zabbix proxy的连接断开也不会导致数据的丢失(数据保留的时间可在proxy的配置文件中设置)。Zabbix Server和Zabbix proxy之间的数据加密传输(基于证书或者基于共享密钥的加密都是支持的)。Zabbix proxy需要使用独立的数据库】
··zabbix proxy database
··zabbix agent
部署在监控节点,积极收集资源和应用,并报告收集到的数据给zabbix serve
扩展:
··database storage
所有的配置信息和收集到的数据存储在数据库中
··zabbix_sender
是一个命令行工具。用于发送性能数据给zabbix server 来处理。用于长时间运行在用户脚本中,定期发送可靠性和性能数据。
··zabbix_get
是一个命令行工具,用于与zabbix agent 通信,以及解析来自agent 的需要信息。用于zabbix agents 的故障排错
··java gateway
监控JMX 应用(Java Management Extensions. 是管理Java的一种扩展。这种机制可以方便的管理、监控正在运行中的Java程序。常用于管理线程,内存,日志Level,服务重启,系统环境等。)
、主机 (host)
一台你想监控的网络设备,用IP或域名表示 。
、主机组 (host group)
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
、监控项 (item)
你想要接收的主机的特定数据,一个度量数据。
、触发器 (trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式 。
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
、动作 (action)
一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成 。
、媒介 (media)
发送告警通知的手段;告警通知的途径。
、远程命令 (remote command)
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令。
、模板 (template)
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,应用集,Web场景等)的集合。
模板的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
、web 场景 (web scenario)
利用一个或多个HTTP请求来检查网站的可用性
、前端 (frontend)
Zabbix提供的web界面
、Zabbix server
Zabbix软件实现监控的核心程序,主要功能是与Zabbix server和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
、Zabbix agent
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件,内存,处理器统计等)。
Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。