Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。(目前,官方长期维护的稳定版本有2.2和3.0)
其他常见的监控工具还有:
(1)Cacti:Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。其能实现采样存储数据至rrd数据库并将其展示出来,但报警功能需要依赖扩展组件。
(2)Nagios:Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。报警功能十分强大,但不能存储数据,也不能实时汇出趋势图。
(3)Ganglia:Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。其优势是在于将各种数据组合进行展示。
通常在生产环境中都是Cacti和Nagios配合使用,后来出现的Zabbix集合了两者的优点,功能更加完善。
Zabbix的特性:
(1)数据采样可支持自定义key(UserParameter),自定义检测时间间隔
(2)实时绘图:graph/map/screen/slide show
(3)报警升级和处理事件支持脚本
(4)支持模板定义检测项,网络自动发现,分布式监控等
Zabbix的组件:
Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由此组织进行;
Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
Web Interface:zabbix的GUI接口,通常与Server运行在同一主机上;
Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
Agent:部署在被监控的主机上,负责收集本地数据并发往Server端或Proxy端;
Zabbix的安装:
通常我们通过指向zabbix官网站点的yum仓库进行安装,有特殊需要可以进行源码编译安装;在此,我主要介绍一下CentOS 6.5下通过rpm包安装Zabbix2.2版本:
部署分为两阶段:
一、服务器端:安装Zabbix服务器端和Web Interface(Zabbix的GUI图形管控界面)
实现在一台主机:192.168.1.101
需要的程序包:
服务器端:zabbix-server、zabbix-get
Web GUI:zabbix-web、zabbix-web-mysql、php、mysql、httpd、php-mysql
二、被监控的客户端:安装Zabbix-agent和Zabbix-sender
实现在一台主机:192.168.1.102
需要的程序包:
zabbix-agent、zabbix-sender
具体实现:
一、服务器端:
yum -y install zabbix-server zabbix-get httpd php php-mysql mysql-server
启动mysql,创建zabbix数据库,并授权zabbix用户对zabbix数据库的所有表有执行权限;
修改zabbix_server.conf:
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix DBSocket=/var/lib/mysql/mysql.sock /*由于GUI和Server端在同一主机上,故数据库的设置都是本地设置*/
然后倒入zabbix的数据库,在/usr/share/doc/zabbix-server-mysql-2.2.16/create目录下有三个.sql的文件,将此三个文件导入到之前创建好的数据库zabbix中:
mysql -hlocalhost -uzabbix -p zabbix < schema.sql mysql -hlocalhost -uzabbix -p zabbix < images.sql mysql -hlocalhost -uzabbix -p zabbix < data.sql /*注意:导入顺序必须是这样,因为表之间有外键关系,如不是此顺序,会报错*/
完毕后,执行#service zabbix-server start,保证服务能正常启动即可;
最后配置zabbix-web:
此处仅需修改php的时区即可,有两种方式:
(1)修改php.ini中的时区指定
(2)修改/etc/httpd/conf/zabbix.conf(此配置文件在安装完zabbix-web后会自动生成)中的时区指定
至此,服务器端搭建完毕。
二、客户端
修改客户端的配置文件
##### Passive checks related(被动检测模式) *Server=192.168.1.101 以逗号分隔的授权给哪些zabbix-server过来采集数据的服务器列表; ListenPort=10050 agent端监听的端口 ListenIP=0.0.0.0 agent端监听的地址 ##### Active checks related(主动检测模式) *ServerActive=127.0.0.1 以逗号分割的当前agent主动发送监控数据的服务器端地址 *Hostname=Zabbix server 服务器端主机名
然后启动zabbix-agent服务即可