一、Zabbix概述
作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。
利用一个优秀的监控软件,我们可以:
- 通过一个友好的界面进行浏览整个网站所有的服务器状态
- 可以在Web 前端方便的查看监控数据
- 可以回溯寻找事故发生时系统的问题和报警情况
1、zabbix是什么
官方网址:www.zabbix.com
官方文档:https://www.zabbix.com/cn/manuals
- zabbix是一个基于Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
- zabbix由两部分构成,zabbix server(端口:10051)与可选组件zabbix agent(端口:10050)。通过C/S模式采集数据,通过B/S模式在Web端展示和配置。
- zabbix server 可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux等平台上。
- zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
Server
Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低
agent
目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows等
SNMP
支持各类常见的网络设备
2、Zabbix原理及流程图
- zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server端
- zabbix server收到数据后,将数据存储到数据库中
- 用户基于 Zabbix WEB 可以看到数据在前端展现图像
- 当zabbix监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,包括发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)
3、Zabbix的优点
- 开源,无软件成本投入
- Server对设备性能要求低
- 支持设备多,自带多种监控模板
- 支持分布式集中管理,有自动发现功能,可以实现自动化监控
- 开放式接口,扩展性强,插件编写容易
- 当监控的 item 比较多服务器队列此较大时可以采用主动状态,被监控客户端主动从server端去下载需要监控的item然后取数据上传到server端。这种方式对服务器的负载比较小。
- Api的支持,方便与其他系统结合
4、Zabbix的缺点
- 需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
- 项目批量修改不方便。
- 社区虽然成熟,但是中文资料相对较少,服务支持有限。
- 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发难度较大。
- 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;且自定义的项目报警需要自己设置,过程比较繁琐。
- 缺少数据汇 总功能,如无法查看-组服务器平均值, 需进行二次开发;
5、Zabbix监控模式
被动监控模式:server向agent 发起连接
主动模式模式:agent向server 发起连接
6、Zabbix监控架构
在实际监控架构中,zabbix根据网络环境、监控规模等分了三种架构: server-client 、master-node-client、server-proxy-client
1.server-client 架构
2.server-proxy-client 架构
3.master-node-client
7、Zabbix的程序组件
zabbix 监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_