1、Zabbix 监控系统Zabbi 监控系统解释Zabbix 是一个基于 Web 界面提供分布式系统监视及网络监视功能的企业级开源解决方案。它能监视各种网络参数,保 证服务器系 统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种 问题;借助 Zabbix 可很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统持续运行。Zabbix 监控系统优点:1、 既可以存储数据,也可以异常报警。2、 可以实施企业级分布式监控,监控内容丰富。Zabbix 监控功能主机的性能监控、网络设备性能监控、数据 库性能监控、多种告警方式、 详细的报表图表绘制。监控主机 zabbix 有专用的
2、agent,可以监控 Linux,Windows,FreeBSD 等 。监控网络设备 zabbix 通过 SNMP,ssh(不多用)可监控对象如下:a)、设备:服务器、路由器、交换机b)、软件:OS、网 络、应用程序c)、主机性能指标监控d)、故障监控:主机宕机、服 务不可用、主机不可达等等Zabbix 监控架构在实际监控架构中,zabbix 根据网络环境、监控规模等 分了三种架构: server-client 、master-node-client、server-proxy-client 三种 。1)server-client 架构也是 zabbix 的最简单的架构,监控机和被监控机之 间不
3、经过任何代理 ,直接由zabbix server 和 zabbix agentd 之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。2)server-proxy-client 架构其中 proxy 是 server、client 之间沟通的一个桥梁,proxy 本身没有前端,而且其本身并不存放数据,只是将 agentd 发来的数据暂时存放,而后再提交给 server 。该架构经常是和 master-node-client 架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。3、master-node-client 架构该架构是 zabbix 最复杂的监控架构,适用于跨
4、网 络 、跨机房、 设备较多的大型环境 。每个 node 同时也是一个 server 端, node 下面可以接 proxy,也可以直接接client 。node 有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master 同步,master 的故障或 损坏对 node 其下架构的完整性。Zabbix 组件及进程zabbix 由以下几个组件部分构成:a)、Zabbix Server:负责接收 agent 发送的报告信息的核心组件,所有配置,统计 数据及操作数据均由其 组织进行;b)、Database Storage:专用于存储所有配置信息,以及由 zabbix 收集的数据;c)、W
5、eb interface:zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;d)、Proxy:可选组件,常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据并统一发往 Server 端;f)、Agent:部署在被监控主机上, 负责收集本地数据并 发往 Server 端或 Proxy 端;以下是其各组件的作用。1)zabbix_agentd:客户端守护进程,此进程收集客户端数据,例如 cpu 负载、内存、硬盘使用情况等。2)zabbix_getzabbix 工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。通常用
6、户排错。例如在 server 端获取不到客户端的内存数据,我们可以使用 zabbix_get 获取客户端的内容的方式来做故障排查。3)zabbix_senderzabbix 工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是我 们在脚本执行完毕之后,使用sender 主动提交数据。4)zabbix_serverzabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway 的数据最终都是提交到 server
7、备注:当然不是数据都是主动提交给 zabbix_server,也有的是 server 主动去取数据。5)zabbix_proxyzabbix 代理守护进程。功能类似 server,唯一不同的是它只是一个中 转站,它需要把收集到的数据提交/被提交到 server 里。 为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间 zabbix 教程系列。6)zabbix_java_gatewayzabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是只用于Java 方面。需要特别注意的是,它只能主 动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者 proxy。