一、简介

   zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

   zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。        zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。   

   zabbix的主要特点:   - 安装与配置简单,学习成本低

                        - 支持多语言(包括中文)   

                          - 免费开源   

                          - 自动发现服务器与网络设备   

                          - 分布式监视以及WEB集中管理功能   

                          - 可以无agent监视   

                          - 用户安全认证和柔软的授权方式   

                          - 通过WEB界面设置或查看监视结果   

                          - email等通知功能等等   

   Zabbix主要功能:    - CPU负荷   

                         - 内存使用   

                         - 磁盘使用   

                         - 网络状况   

                         - 端口监视   

                         - 日志监视

二、Zabbix的常用术语及监控模型

   1.Zabbix组件概述

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

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

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

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

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

   2.Zabbix的常用术语

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

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

     3)监控项(item):一个特定监控指标的相关数据,这些数据来自于被监控对象;因此item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有“key”进行标识

     4)触发器(trigger):一个表达式,用于评估某监控对象的某特定item内所就收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态将从“OK”转换成“Probelm”,当数据量再次回顾到合理范围时,其状态将会由“Problem”转换回“OK”

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

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

     7)报警升级(escalation):发送警报或执行远程命令的自定义方案,如每隔5分组发送一次警报,共发送5次等

     8)媒介(media):发送通知的手段或通道,如Email、Jabber或SMS等有开发API的组件

     9)通知(notification):通过选定的媒介向用户发送的有关事件的通知

     10)远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行

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

     12)应用场景(application):一组item的组合

     13)web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求

     14)前段(frontend):Zabbix的web接口

   3.zabbix的工作模式

 

   4.Zabbix可以监控的对象

三、实现步骤

   1.环境规划

ip地址 操作系统 安装软件 功用
192.168.1.201 centos6.5 zabbix-server、zabbix-web 服务端
192.168.1.202 centos6.5 zabbix-agent 被监控端
192.168.1.203
centos6.5 MariaDB、zabbix-agent 数据库存储、被监控端
192.168.1.204
centos6.5 zabbix-agent 被监控端
192.168.1.205
windows zabbix-agent 被监控端

  2.服务器端安装

     zabbix的安装可以有源码安装,rpm包安装,epel源安装,本处使用的为epel源的安装方式,本处安装的为2.2版本,如果使用源码编译安装的话,步骤如下所示

同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:./configure --enable-server --with-mysql --with-net-snmp --with-libcurl如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2如果仅安装agent,可使用类似如下配置命令:./configure --enable-agent而后编译安装zabbix即可:# make# make install

   安装sever和web

[root@node1 ~]# yum install zabbix22 zabbix22-server zabbix22-server-mysql zabbix22-web zabbix22-web-mysql -y

   3.数据库的安装及初始化.关于数据库的安装请移步至本人相关博文http://wangfeng7399.blog.51cto.com/3518031/1393146,本处使用的为yum安装,偷懒了^_^!

   初始化数据库,创建zabbix库

[root@node3 ~]# yum install mysql mysql-server -ymysql> grant all on *.* to 'root'@'192.168.1.%' identified by 'wangfeng7399';Query OK, 0 rows affected (0.00 sec)mysql> create database zabbix;Query OK, 1 row affected (0.00 sec)mysql> grant all on zabbix.* to 'zbxuse'@'192.168.1.%' identified by 'wangfeng7399';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

   导入数据表

[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.168.10.203 zabbix < /usr/share/zabbix-mysql/schema.sql[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.168.10.203 zabbix < /usr/share/zabbix-mysql/p_w_picpaths.sql[root@node1 ~]# mysql -uroot -pwangfeng7399 -h192.168.10.203 zabbix < /usr/share/zabbix-mysql/data.sql

   4.修改server的配置文件

[root@node1 ~]# vi /etc/zabbix/zabbix_server.conf修改相关参数如下所示DBHost=192.168.1.203DBUser=zbxuseDBPassword=wangfeng7399启动zabbix[root@node1 ~]# service zabbix-server start

   修改php的相关文件,如下所示

date.timezone = Asia/Shanghaipost_max_size = 32Mmax_execution_time = 400max_input_time = 400重启http服务[root@node1 ~]# service httpd restartStopping httpd:                                            [  OK  ]Starting httpd:                                            [  OK  ]

   5.通过web-GUI配置zabbix,访问页面为http://ip/zabbix,将会打开如下页面

   单击next,zabbix会检查系统的状态

   单击next,输入数据库账号密码

   如果账号,密码通过不了,将不能下一步,为当前server设置一个名称

   安装摘要,单击next

   安装成功,单击finish,登陆系统

   账号为admin,密码为zabbix

   zabbix的程序界面

   6.配置中文界面和中文字体.前提是操作系统安装的时候安装过中文,要不没有下面的文件夹的

    1、 在windows系统中的C:\windows\fonts目录中复制一个自己喜欢的,如simfang.ttf(仿宋简体);

   2、  将simfang.ttf文件上传到Zabbix Server网站目录中的fonts目录下;
   如:/usr/shar/zabbix/fonts中,可以通过/etc/httpd/conf.d/zabbix.conf找到zabbix的路径
   3、 将Zabbix Server网站目录中的fonts目录里原来的“graphfont.ttf”改名

   4、将上传上去的文件改为graphfont.ttf

   5、 只需要刷新一下,无乱码!

   基本搭建完成,后续将推出如何添加服务器,以后如何实现自动发现、及zabbix的分布式监控,敬请期待