Zabbix简介


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

   zabbix可以监控各种网络参数,保证服务器系统的安全正常运行;并提供柔软的通知机制以让系统管理员快速的定位并解决问题。zabbix由两部分组成,zabbix server与可选组件zabbixagent。

zabbix  server可以通过SNMP、zabbix agent、ping、端口监视等方法 提供对远程服务器或者网络状态的监视,进行数据采集、数据存储、数据展示等功能;


   zabbix可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。zabbix agent需要安装在被 的目标服务器上。它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集;zabbix server 可以单独监视远程服务器的服务状态;也可以与zabbix agent配合,可以轮询zabbix agetn 主动接受监视数据(trapping方式),同时还可以被动接受zabbix agent发送的数据(trapping方式)。另外zabbix server 还支持SNMP协议,可以与SNMP软件(如net-snmp)配合使用



Zabbix架构


        开源监控系统------Zabbix


           以上架构中的组件描述

           

Zabbix Server:负责接受agent发送的报告信息的核心组件,所以配置、配置数据集操作数据均由其组织进行;
Database Storage: 专用于存储所有配置信息,以及由zabbix收集的数据;
Web interface: zabbix的GUI接口,通常与Server运行在同一个主机上;
Proxy:可选组件,常用于分布式监控环境中,代理Server收集部分被监控端的监控数据并同一发往Server;
Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Porxy端

             


Zabbix常用术语


 

主机(host)
#要监控的网络设备,可由IP或DNS名称指定;
主机组(host group)
#主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
监控项(item)
#一个特定监控指标的相关数据,这些数据来自于被监控对象;对于item时zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都由“key”进行标识
触发器(trigger)
#一个表达式,用于评估某监控对象的某特定item内所接受到的数据时否在合理范围内,即阈值;接受到的数据量大于阈值时,触发器状态从“OK”转变为"problem",当数据量再次回归到合理范围时,其状态将从"problem"转换回“OK“
事件(event)
#即发生一个值得关注的事情,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等;
动作(action)
#指对特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作);
报警升级(escalation)
#发送警报或执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
媒介(media)
#发送通知的手段或通道,如Email、Jabber或SMS等;
通知(notification)
#通过选定的媒介向用户发送的有关某事件的信息;
远程命令(remote command)
#预定义的命令,可在被监控主机处于某特定条件下时自动执行;
模板(template)
#用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level  discovery rule;模板可以直接链接至单个主机;
应用程序(application)
#一组item的集合
web场景(web scennario)
#用于检测web站点可用性的一个或多个HTTP请求;
前端(frontend)
#Zabbix的web接口


Zabbix监控系统的核心功能


   

数据采集---->数据存储(根据时间序列)----->数据展示和分析----->报警
1)数据采集
#SNMP
#agent
#ICMP/SSH/IPMI (无agent端的)
#web 
2)数据存储
#cacti: rrd
#nagios:只注重状态转换(并不保存数据),如果使用数据库则使用mysql
#zabbix :mysql/pgsql/oracle
3)数据展示
  数据展示: --------一般在其对应的web平台展示
#java
#php    
#移动app
4)报警
# mail(smtp)
# Chat Message
# SMS




Zabbix的安装方式


    1、编译安装zabbix

       源码包下载地址

       http://www.zabbix.com/download.php

       

(1)同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:
#./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2
(2)如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
#./configure --enable-server --with-mysql --with-net-snmp --with-libcurl
(3)如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
# ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2
(4)如果仅安装agent,可使用类似如下配置命令:
# ./configure --enable-agent
然后执行 make  && make install 即可


   2、rpm包安装

      http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/


       


Zabbix监控警报的实现


    环境搭建

         

     开源监控系统------Zabbix

     

Zabbix Server服务器 172.16.13.2

rpm包安装

zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-get-2.0.8-3.el6.x86_64.rpm  
zabbix-server-2.0.8-3.el6.x86_64.rpm
zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm

zabbix-web-2.0.8-3.el6.noarch.rpm  

zabbix-web-mysql-2.0.8-3.el6.noarch.rpm

httpd-2.2.15-29.el6.centos.x86_64

php-5.3.3-26.el6.x86_64

MySQL  服务器 172.16.13.13 编译安装
Zabbix agent 服务器 172.16.13.3
 zabbix-agent-2.0.8-3.el6.x86_64.rpm  
 zabbix-sender-2.0.8-3.el6.x86_64.rpm

   


一、MySQL的编译安装

   172.16.13.13服务器编译安装mysql

   关于MariDB的编译安装请移步我的博客:

   http://jungege.blog.51cto.com/4102814/1394924

   

   


二、Zabbix server配置


    1、安装

       

下载rpm包 放在root家目录
zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-get-2.0.8-3.el6.x86_64.rpm 
zabbix-server-2.0.8-3.el6.x86_64.rpm
zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
zabbix-web-2.0.8-3.el6.noarch.rpm 
zabbix-web-mysql-2.0.8-3.el6.noarch.rpm
zabbix-agent-2.0.8-3.el6.x86_64.rpm 
zabbix-sender-2.0.8-3.el6.x86_64.rpm

   

#mkdir agent  -----将angent包先存放起来
#mv zabbix-agent-2.0.8-3.el6.x86_64.rpm  zabbix-sender-2.0.8-3.el6.x86_64.rpm agent/  
#yum -y localinstall *.rpm ------只安装zabbix-server ,zbbix-web,zbbix-web-mysql  zbbix-get  zabbix-server-mysql  php  httpd 

   

   2、初始化数据库


# rpm -ql  zabbix-server-mysql
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
   /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
  /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql
 /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
 将以上三个关于zabbix的mysql文件拷贝到mysql服务器上并导入
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
MariaDB [(none)]> create database zabbix;
MariaDB [(none)]> grant all on *.* to [email protected]'172.16.%.%' identified by 'mypass' with grant option;   
MariaDB [(none)]> flush privileges;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
直接在zabbix server服务器上来导入
#yum -y install  mysql  安装mysql客户端
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql   
# mysql -uroot -h172.16.13.13 -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
授权一个普通用户 对zabbix数据库的访问
MariaDB [zabbix]> grant all zabbix.* to 'zbxuser'@'172.16.%.%' identified by 'zbxpass';
MariaDB [zabbix]> flush privileges;

 

    3、编辑zabbix配置文件

# cd  /etc/zabbix
# vim zabbix_server.conf
   DBHost=172.16.13.13
   DBName=zabbix
   DBUser=zbxuser
   DBPassword=zbxpass
   DBPort=3306 
# service  zabbix-server  start
# ss -ntlpu
 默认侦听在10051端口


    4、配置zabbix-web

   

# vim /etc/php.ini 修改一下时区
  a.timezone = Asia/Shanghai
# service httpd restart
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
Web访问路径
# cat  /etc/httpd/conf.d/zabbix.conf 
  Alias /zabbix /usr/share/zabbix---  使用的是别名  /zabbix
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 


   5、zabbix-web访问

     http://172.16.13.2/zabbix

     开源监控系统------Zabbix

     

     开源监控系统------Zabbix

     

     开源监控系统------Zabbix


     

   开源监控系统------Zabbix

     

   Zabbix frontend 即Zabbix web前段接口初始化配置完成!

   登录

   账户:admin

   密码:zabbix


   开源监控系统------Zabbix

   


三、Zabbix agent 配置


   

1、下载rpm包
zabbix-2.0.8-3.el6.x86_64.rpm
zabbix-agent-2.0.8-3.el6.x86_64.rpm 
zabbix-sender-2.0.8-3.el6.x86_64.rpm   
2、安装     
# yum -y localinstall *.rpm
3、编辑配置文件
# cd /etc/zabbix
# vim  zabbix_agentd.conf
  Server=172.16.13.3
4、启动服务
# service  zabbix-agent  start
# ss -ntlp
默认侦听在 10050端口

 

     配置OK,接下来我们将Agent 添加到服务器的检测主机列表中去



四、Zabbix server通过zabbix-web接口配置


1、添加host

   Configure---->hosts

   开源监控系统------Zabbix

    Save保存


    Morniting查看已添加的主机

    开源监控系统------Zabbix


2、为host添加Item

 

   添加Item1

   开源监控系统------Zabbix


   添加Item2

   开源监控系统------Zabbix

 

   Save保存


3、为item创建graph


   Configuriation --->Hosts--->Graph   点击Create Graph创建


   开源监控系统------Zabbix

   开源监控系统------Zabbix


  ####添加item后,点击Save保存

  查看创建好的Graph

  开源监控系统------Zabbix

 

4、创建Screen

   Configuration--->Screens 点击Create Screen创建


   开源监控系统------Zabbix

Save

开源监控系统------Zabbix

开源监控系统------Zabbix


开源监控系统------Zabbix


Save 保存


 查看Screen

 开源监控系统------Zabbix


5、创建触发器(trigger)


  Configuration--->Hosts---Trigger

  点击Create  Trigger


  开源监控系统------Zabbix  设置Expression constructor


开源监控系统------Zabbix

开源监控系统------Zabbix

保存退出

查看Triggers

开源监控系统------Zabbix


  Trigger设置完成后,查看各个Item的变化图

 

  Motitoring---->Latest data --->Host----->Graph


开源监控系统------Zabbix

  看到触发到触发器设置的函数条件后 生成的阈值线了吧!!!


6、创建media

  Administration---->Media types

 

  开源监控系统------Zabbix

开源监控系统------Zabbix


7、创建action

  开源监控系统------Zabbix

  然后配置Oprations

  开源监控系统------Zabbix

  ###Update

然后配置Conditions

 

开源监控系统------Zabbix

Save保存,action配置完成!


8、再次查看Item状态


  Montoring--->Latest data


开源监控系统------Zabbix

开源监控系统------Zabbix  

######已经达到我们触发器trigger的触发条件conditons,接下来将执行动作oprations 发送消息


9、查看警告信息(邮件)


 开源监控系统------Zabbix

 监控警告邮件已经过来了~~

 我们已经成功实现了监控的完整的一个流程:

 数据采集---->数据存储---->数据存储----->报警


PS:个人水平有限,不妥之处请指出!