Zabbix的简介
1.1 什么是zabbix?
- Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。Zabbix是一个C语言写的监控服务。
-
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
-
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
-
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
- 使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。
- 在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。
1.2:zabbix的功能和特性
- (1)安装与配置简单。
- (2)可视化web管理界面。
- (3)免费开源。
- (4)支持中文。
- (5)自动发现。
- (6)分布式监控。
- (7)实时绘图。
1.3: Zabbix的架构
- 1. Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
- 2. Database Storage:存储配置信息以及收集到的数据。
- 3. Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
- 4. Proxy:可选组件,常用于分布式监控环境中。
- 5. Agent:部署在被监控主机上,负责收集数据发送给Server。
1.4 Zabbix的默认程序
- 默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server 备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?。zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
1.5 Zabbix逻辑关系图
- zabbix官网: https://www.zabbix.com
- zabbix 主要由2部分构成 zabbix server和 zabbix agent
- zabbix proxy是用来管理其他的agent,作为代理
1.6 Zabbix监控范畴
- 硬件监控 :Zabbix IPMI Interface
- 系统监控 :Zabbix Agent Interface
- Java 监控:ZabbixJMX Interface
- 网络设备监抟:Zabbix SNMP Interface
- 应用服务监控:Zabbix Agent UserParameter
- MySQL 数据库监控:percona-monitoring-pldlgins
- URL监控:Zabbix Web监控
1.7 Zabbix的常用术语含义
- 主机(host): 一台你想监控的网络设备,用IP或域名表示。
- 主机组(host group): 主机的逻辑组,它包含主机和模板。
- 监控项(item): 你想要接收的主机的特定数据,一个度量数据。
- 触发器(trigger): 一个被用于定义问题阀值和评估监控项接收到的数据的逻辑表达式。
- 事件(event): 单次发生的需要注意的事情。
- 异常(problem): 一个处在异常状态的触发器。
- 动作(action): 一个对事件作出反应的预定义的操作。
- 升级(escalation): 一个在动作内执行操作的自定义场景。
- 媒介(media): 发送报警通知的手段。
- 通知(notification): 利用已选择的媒体途径把事情相关信息发送给用户。
- 远程命令(remote command): 预先定义好的,满足一定条件后,可在被监控主机上自动执行的命令。
- 模板(template): 一组可以被应用到一个或多个主机上的实体的集合。
- 应用(application): 一组监控项组成的逻辑分组。
- Web场景(Web scenario): 利用一个或多个HTTP请求来检查网站的可用性。
- 前端(frontend): Zabbix提供的Web界面。
- Zabbix API: Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象信息或执行任何其他的自定义的任务。
- Zabbix server: Zabbix软件监控的核心程序,主要功能是与Zabbix proxies和agent进行交互、触发器计算、发送告警通知,并将数据集中保存等。
- Zabbix agent: 部署在监控对象上,能够主动监控本地资源和应用。
- Zabbix proxy: 帮助Zabbix server收集数据,分担Zabbix server的负载。