1、Zabbix架构

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

Zabbix的运行架构如下图所示:


wKioL1i436TR-GuuAAPGev0PxNM547.png-wh_50


2、组件

zabbix由以下几个组件部分构成:


1)、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;

2)、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3)、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;

4)、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;

5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;


3、进程

默认情况下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。


4、zabbix监控环境中相关术语


主机(host):要监控的网络设备,可由IP或DNS名称指定;

主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;

触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;

动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;

报警媒介类型(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;

模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;

前端(frontend):Zabbix的web接口


5、zabbix安装

上篇文章我们介绍过了在LNMP环境下 zabbix-server的安装,因此这里就不再说明了,这里简单说明下环境规划及zabbix-agent的安装,操作系统都是centos6.7

wKiom1i4373BPnjYAAAkFHDa4oA964.png-wh_50

wKiom1eyqTKz5qqMAAAkEqN0Txg122.png

1

2

3

4

5

6

两台服务器都安装zabbix-agent

[root@ansible ~]# wget  

[root@ansible ~]# rpm -ivh zabbix-release-3.0-1.el6.noarch.rpm 

Preparing...                ########################################### [100%]

   1:zabbix-release         ########################################### [100%]

[root@ansible ~]# yum -y install zabbix-agent

[root@ansible ~]# vim /etc/zabbix/zabbix_agentd.conf   修改配置文件

Server=172.16.80.117   #这个地址填写zabbix-server所在的ip,默认是127.0.0.1

[root@ansible ~]# /etc/init.d/zabbix-agent start

Starting Zabbix agent:                                     [  OK  ]