1、zabbix 是什么
zabbix 是一个开源的 IT 基础监控软件,能事实监控网络服务,服务器和网络设备的状态 【如网络使用、cpu负载、磁盘空间等】,主要包括数据收集,报警通知如何可视化界面
2、zabbix 主要功能
监控 cpu负载、内存使用、硬盘使用、网络状态、端口监视、日志监视、插件开发自定义
3、zabbix 监控原理
-
数据收集
-
数据存储
-
数据处理
-
告警
-
展示
-
自动化操作
总结:
-
Zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发至 Zabbix server端
-
zabbix server收到数据后,将数据存储到数据库中。
-
用户基于Zabbix Web可以看到数据在前端展现图像。
-
当Zabbix监控监控某个具体项目,该项目会设置一个触发器阈值,当被监控的指标超过触发器设定的阈值,会进行一些必要的动作,动作包括: 发送信息(邮件、微信、短信、电话,钉钉)、发送命令(shell命令、rebbot、restart、install等)
-
当告警后,根据告警机制可以先自动处理(比如使用shell脚本启动nginx服务等),自动处理不了的,就会通知对应的运维人员进行处理。
-
监控工作流程
zabbix-agent【采集数据】→ zabbix server【数据分析/报警】→ 数据库【数据存储】→ zabbix-web【数据展示 】
4、zabbix 监控部署常用的监控程序
zabbix_server:
zabbix服务端守护进程,其他的数据最终都交给zabbix_server 【端口:10051】
2.
zabbix_agent:
客户端守护进程,一般负责收集客户端数据,例:cpu负载、磁盘空间【端口:10050】
3.
zabbix_proxy:
zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署
4.
zabbix_get:
数据接收工具,单独使用命令,通常在server或proxy端执行获取远程客户端信息的命令
5.
zabbix_sender:
zabbix数据发送工具,用户发送数据给server或proxy端,通常用户耗时比较长的检查
5、zabbix 监控模式
主动监控:agent 向 server 发起连接 zabbix 客户端主动向 srver 端请求监控项列表,并主动将监空需要的数据提交给 zabbix server端
被动监控:server 向 agent 发起连接 zabbix server 向 agent 请求获取监控项的数据,zabbix agent 返回数据,可以看出 zabbix主动和被动模式是以 zabbix 客户端为基准的
总结:主动与被动区别
被动模式:
- 就是server 向 agent 发出指令获取数据, zabbix agent被动的去获取数据并返回给 zabbix server ,zabbix server会周期性的向 agent夺取数据,这种模式最大的问题在于 加大了 server 的工作量,在数百台服务器的环境下,server 端不能及时获取到最新的数据,但这也是默认的工作方式
主动模式:
- 是由 zabbix agent 主动采集数据并返回给 zabbix server,不再需要 zabbix server 进行干预,因此主动模式在一定程度上可以减轻 zabbix server 的压力
6、zabbix 监控架构
server - client 架构:
也就是说最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由 zabbix server 和 zabbix agent 之间进行数据交换,使用网络比较简单,尽量在局域网内,设备比较少的监控
server - proxy - client 架构
proxy 是 server、client之间沟通的一个桥梁,proxy 本身是没有前端,而且并不存放数据,只是将 agent 发来的数据暂时存放,而后再提交给 server,该架构是经常是和 master - node - client 架构作比较的,一般适用于跨机房,跨网络的中型网络架构
master - node - client架构
是 zabbix 最复杂的架构,适用于跨网络,跨机房设备较多的大型环境,每个 node 同时有 server端,node下面可以接 proxy,也可以直接接 client,node 有自己配置文件和数据库,其要做的就是将配置信息和监控数据向 master 同步,master故障或损坏,对 node 其下架构的完整性