1.1 Zabbix的概念

Zabbix是一款监控各类网络参数、服务器健康状况与整体性能的软件。Zabbix利用一套灵活的通知机制使系统管理员能够为任何可触发的事件配置例如基于邮件报警功能,这样有助于对服务器各种问题的快速响应。同时Zabbix还提供了非常优秀的数据报告功能与数据可视化特性,可以通过Zabbix web管理界面直接访问所有的Zabbix报告、数据统计、配置参数,这使得Zabbix成为企业生产规划的理想选择。

 

1.2 Zabbix架构

Zabbix环境是由多个主要软件搭建完成的,每个软件所提供的功能如下:

  • Server:Zabbix Server可以通过SNMP、Zabbix agent、ping、端口监视等方法提供对远程服务器/网络状态的监视、数据收集等功能,与Agent配合实现两种监视的方法:

    - polling:Zabbix Server轮询Zabbix Agent主动接收监视数据

    - trapping:Zabbix Server被动接受来自Zabbix Agent发送的数据

  • Database storage:所有Zabbix的配置信息以及获取的数据都存储在数据库中

  • Web Interface:通过Web管理接口,可以方便从任何地方管理Zabbix

  • Proxy:Zabbix Proxy可以替代ZabbixServer收集数据,是Zabbix环境的一种扩展方式,更为受益的是可以(实现地域性部署)减轻单一Zabbix Server的负载

  • Agent:Zabbix Agent安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存、CPU、服务等信息的收集,并报告给Zabbix Sever

 

1.3 Zabbix特点与功能

Zabbix的主要特点如下:

  • 安装与配置简单,学习成本低

  • 支持多语言

  • 开源

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

  • 分布式监视及Web集中管理功能

  • 可以无Agent监视

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

  • 通过Web界面设置或查看监视结果

  • 具有E-mail等报警功能

 

Zabbix主要功能如下:

  • CPU负荷

  • 内存使用

  • 磁盘使用

  • 网络状况

  • 端口监视

  • 日志监视

 

1.4 Zabbix部署实施

从被监控服务器的规模、扩展性、维护性上来讲,Zabbix架构模型可供选择:

  • 服务端 - 客户端(C/S)

  • 服务端 - 代理端 - 客户端(Server -Proxy - Client)

 

这里先介绍第一种架构模型,及C/S。

 

实验环境如下:

主机名                IP地址                         系统版本                              服务器角色

server.test.com    192.168.100.19           CentOS 6.5 x86_64               ZabbixServer,集成LNMP架构

web.test.com       192.168.100.20           CentOS 6.5 x86_64               ZabbixAgent,提供httpd服务

mysql.test.com    192.168.100.21            CentOS 6.5 x86_64               ZabbixAgent,提供mysql服务

 

1.4.1 搭建LNMP环境

具体安装过程请查看文档"LNMP环境搭建(持续更新)"。

 

1.4.2 安装并初始化Zabbix Server

1. 安装设置Zabbix Server

创建zabbix用户及工作组,并安装相关依赖包:

[root@server src]# groupadd zabbix
[root@server src]# useradd -g zabbix zabbix
[root@server src]# yum install net-snmp-devel mysql-devel curl-devel


 

从官网http://www.zabbix.com/download.php下载zabbix源码包,目前最新版本是zabbix-2.2.5.tar.gz,下载解压后向MySQL数据库导入相关数据:

[root@server src]# tar zxf zabbix-2.2.5.tar.gz
[root@server src]# cd zabbix-2.2.5 
[root@server zabbix-2.2.5]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
mysql> create database zabbixcharacter set utf8;
mysql> grant all privileges onzabbix.* to 'zabbix'@'192.168.100.19' identified by 'zabbix';
mysql> flush privileges;
mysql> use zabbix;
mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/schema.sql
mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/p_w_picpaths.sql
mysql> source /usr/local/src/zabbix-2.2.5/database/mysql/data.sql
mysql> exit


 

编译安装zabbix,并设置zabbix_server与zabbix_agentd为开机自启,开启agent是为了监控本机:

[root@server zabbix-2.2.5]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql--with-net-snmp --with-libcurl --with-libxml2
[root@server zabbix-2.2.5]# make && make install
[root@server zabbix-2.2.5]# cp misc/init.d/fedora/core5/zabbix_* /etc/init.d/
[root@server zabbix-2.2.5]# vi /etc/init.d/zabbix_server
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
[root@server zabbix-2.2.5]# chkconfig --add zabbix_server
[root@server zabbix-2.2.5]# chkconfig zabbix_server on
[root@server zabbix-2.2.5]# vi /etc/init.d/zabbix_agentd
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
[root@server zabbix-2.2.5]# chkconfig --add zabbix_agentd
[root@server zabbix-2.2.5]# chkconfig zabbix_agentd on


 

设置Zabbix Server配置文件,并启动服务:

[root@server zabbix-2.2.5]# cd /usr/local/zabbix/etc
[root@server etc]# cp zabbix_server.conf{,.bak}
[root@server etc]# > zabbix_server.conf
[root@server etc]# vi zabbix_server.conf
ListenIP=192.168.100.19
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=192.168.100.19
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
DBPort=3306
[root@server etc]# mkdir /home/wwwroot/zabbix
[root@server etc]# cp -a /usr/local/src/zabbix-2.2.5/frontends/php/* /home/wwwroot/zabbix/ 
[root@server etc]# chown -R www.www /home/wwwroot/zabbix/
[root@server etc]# /etc/init.d/zabbix_server start
[root@server etc]# cp zabbix_agentd.conf{,.bak}
[root@server etc]# > zabbix_agentd.conf
[root@server etc]# vi zabbix_agentd.conf
ListenIP=192.168.100.19
ListenPort=10050
LogFile=/tmp/zabbix_agentd.log
Server=192.168.100.19
ServerActive=192.168.100.19                 # 主动向zabbix server发送监控内容
Hostname=server.test.com                     # 需要能够解析域名,可以设置DNS或者直接添加到/etc/hosts文件中
[root@server etc]# /etc/init.d/zabbix_agentd start


 

2. 初始化Zabbix Server Web界面

访问网页http://192.168.100.19/zabbix/setup.php:

wKiom1P18WvzugRzAAJZ-XzAKB0202.jpg

wKiom1P18drwBKXAAALoJ7Ji2i4185.jpg

根据提示修改php.ini配置文件相关设置:

[root@server ~]# cd /usr/local/php/etc/
[root@server etc]# cp php.ini{,.bak}
[root@server etc]# vi php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = "Asia/Shanghai"
[root@server etc]# /etc/init.d/php-fpm reload


 

wKiom1P18nCTdeaGAAL-F9tzySM867.jpgwKioL1P189iha7fSAAKQVlMDj9E356.jpgwKiom1P18wWiki48AAIZxUJ6Dw4044.jpgwKioL1P19GqRSxTlAAKXqe_-itY464.jpgwKioL1P19Mzgvh4cAAHm8h20ghA946.jpg


排错:如果有如下错误,原因是zabbix网页目录属主问题,使用chown命令修改属主即可修复:

wKiom1P19DGjVueHAAJmL2TEWB4420.jpg

[root@server ~]# chown -R www.www  /home/wwwroot/zabbix/


 

安装完毕后,即可登录Zabbix管理页面。zabbix默认用户名为admin,密码为zabbix:

wKioL1P19ZOjRbyAAAESXdMdqkI607.jpg


看到的管理界面如下:

wKioL1P19efBNrsVAAN4hlexh_8584.jpg


3. 激活本地监控

接下来需要开启对Zabbix Server的本地监控,点击"Configure" -> "Hosts",可以查看到当前本机的状态为"not monitored":

wKiom1P19TCi7KsgAAOqlV4UbgM649.jpg


点击该状态"Enable host",此时机器状态变为"Monitored":

wKioL1P19p7AghsnAAPZm7xKt5c688.jpg


现在可通过点击相关标签来查看当前与本机相关的一些监控数据,稍后进行部分详解。