Zabbix是一个企业级的分布式开源监控解决方案。它能够监控各种服务器的健康型、网络的稳定性以及各种应用系统的可靠性。当监控出现异常时,Zabbix通过灵活i的告警策咯,可以为任何事件配置基于邮件、短信、微信等告警机制。而这所有的一切,都可以通过Zabbix提供的Web界面进行配置和操作,基于Web的前端页面还提供了出色的报告和数据可视化功能。这些功能和特性使运维人员可以非常轻松的搭建一套功能强大的运维监控管理平台。
从图中可以看出Zabbix主要有几个组件,分别是:
1)zabbix应用组件
1)Zabbix Server
Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。它主要负责接收客户端发送的报告信息,同时,所有配置、统计数据及配置操作数据均由其组织进行;
2)Zabbix Database Storage
主要用于存储数据,所有配置信息和Zabbix收集到的数据都被存储在数据库中。常用的数据库有Oracle、Mysql等;
3)Zabbix Web界面
这是Zabbix提供的GUI接口,通常与Zabbix Server运行在同一台物理服务器上;
4)Zabbix Proxy代理服务器
这是一个可选组件,常用于分布监控环境中,代理Server可以代替Zabbix server收集性能和可用性数据,汇总后同一发往Zabbix Server端;
5) Zabbix Agent监控代理
Zabbix Agent部署在被监控主机上,能够主动监控本地资源和应用程序,并负责收集数据发送Zabbix Server端或Zabbix Proxy端;
2)Zabbix服务进程
根据功能和用途,默认情况下zabbix包含5个进程,如下:
1)zabbix_agentd
zabbix_agentd是Zabbix Agent监控代理端守护进程,此进程主要用于收集客户端数据,例如:CPU、内存、硬盘、网络使用情况等信息;
2)Zabbix_get
Zabbix提供的一个工具,通常在Zabbix server或Zabbix Proxy端执行用来获取远程客户端信息,其实就是Zabbix Server去Zabbix Agent拉取数据的过程。此工具常用排错;
3)Zabbix_sender
Zabbix提供的一个工具,用于发送数据给Zabbix server或Zabbix Proxy,其实是Zabbix Agent主动发送数据到Zabbix Server的过程,通常用于耗时较长的检查或有大量主机需要监控的场景;
4)Zabbix_proxy
Zabbix Proxy的代理守护进程,功能类似于Zabbix server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交到Zabbix Server上或等待Zabbix server主动收集;
5)Zabbix_java_gateway
Zabbix 2.0版本后引入的一个功能,主要用于监控JAVA应用环境,类似于Zabbix_agentd进程。需要注意的是,它只能主动去推送数据,而不可以等待zabbix server或zabbix proxy来拉取数据。它的数据最终会给到zabbix server或zabbix proxy上;
6)Zabbix_server
Zabbix server是整个Zabbix系统的核心进程。其他进程所收集到的数据最终都会被提交到Zabbix Server上进行统一的处理。
3)Zabbix监控术语
在Zabbix监控提供系统中,有一些常用的术语,下面开始简单介绍以下:
1) 主机(host)
表示要监控的一台服务器或网络设备,可以通过IP或主机名来指定;
2)主机组(host group)
主机的逻辑组:包含主机和模板,但同一个主机组内的主机和模板没有任何直接的关系;主机组通常在给用户或用户组指派监控权限时使用;
3)监控项(item)
表示一个监控的具体对象,例如监控服务器的CPU负载、磁盘空间等。item是Zabbix进程数据收集的核心,相对某个监控对象,每个item都由“key”来标识;
4)触发器(trigger)
用于评估某监控对象接收到的数据是否在合理范围内;如果接收的数据大于阈值时,触发器的状态将从“OK”变为“Problem”;当接收到数据低于阈值时,又将状态变为“OK”状态;
5)应用集(Applications)
一组监控组成的逻辑集合;
6)动作(action)
指对于监控中出现的问题事先定义的处理方法。例如发送通知、何时执行操作,执行的频率等;
7)报警媒介类型(media)
表示发送通知的手段,告警通知的途径。例如Email、邮件等;
8)模板(template)
一组可以被应用到一个或多个主机上的实体集合,一个模板通常包含了应用集、监控项、触发器、图形、聚合图形、自动发现机制、Web场景等几个项目;模板可以直接连接到某个主机;
模板时学习Zabbix的一个难点和重点,为了实现批量、自动化监控,通常会将具有相同特征的监控项汇总到模板中,然后在主机中直接引用即可,实现快速监控部署。
Zabbix的安装部署非常简单,官方提供四种安装途径,分别是二进制RPM包安装、源码安装、容器安装、虚拟机镜像安装。根据学习方式和运维经验。推荐使用源码安装zabbix server,通过RPM包安装Zabbix_agent。
Zabbix web端是基于Apache或Nginx服务和PHP脚本语言进行构建的,要求Apache的版本为1.3.12以上的版本、PHP的版本为5.4.0以上的版本,同时对PHP扩展包也有要求,例如GD要求2.0以上的版本、libXML要求2.6.15以上的版本。
Zabbix的数据存储支持多种数据库,比如Mysql、Oracle、PostgreSQL等,本次采用Mysql数据库。Zabbix对Mysql的要求必须是5.0.3以上的版本,同时需要InnoDB引擎。
1)部署LNMP环境
1)部署Nginx
本次使用nginx最新稳定版本1.14.1。
2)部署Mysql
yum安装mysql数据库后,会随机生成一个临时的密码,可以通过以下命令进行查看:
3)安装PHP并优化
2)编译安装zabbix
1)安装zabbix
2)创建数据库和初始化表
zabbix serve需要mysql数据库的支持!
3)配置zabbix server端
4)部署zabbix agent
开启另一台服务器部署zabbix agent,zabbix agent采用RPM包的方式进行安装!
5)安装zabbix gui
需在zabbix server端进行操作!
本地使用的windows系统,建议进行如下操作:控制面板→字体→楷体。将字体下载并上传到zabbix server上。