zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。在普通的企业级环境中,zabbix通常由2部分构成,zabbix server与可选组件zabbix agent。
  
     本系列的运行环境为CentOS6.5,zabbix的版本为官网最新的稳定版2.4.7。
 
  在使用zabbix之前,首先要学会安装zabbix。官网的文档中,首推的安装方式为yum或apt安装,这种方式比较简单,适合于可以上网的环境。但对于有些企业级环境中,实行严格的内外网隔离策略,内网是不允许直连公网的,并且要监控服务器多数是运行在内网中。所以在这种情况下,就更加需要另外一种方式也就是源码安装的方式来安装zabbix。
 
  本文将介绍如何进行zabbix的源码安装。

配置本地yum源

      因受网络限制,但有些依赖包又不得不需要安装,故只能自架本地yum源。假设已从CD中将各rpm包拷贝至/ISO/Packages目录下。按照如下顺序建立本地yum源。
 
  • 安装createrepo包,用于建立本地仓库,供yum源的安装和更新。
cd /ISO/Packages
ll|grep createrepo
rpm –ivh createrepo-0.9.-.e16.noarch.rpm

  若安装过程中提示需要安装依赖包,请按提示安装。

  • 执行createrepo命令,创建repodata目录
cd /ISO/Packages
createrepo .
  • 设置本地yum源
cd /etc/yum.repo.d
mv CentOS-Base.repo CentOS-Base.repo.bak
cp CentOS-Media.repo CentOS-Base.repo
vi CentOS-Base.repo
做如下配置修改:
#yum源所在地
baseurl=file:///ISO/Packages/
#不做校验检查
gpgcheck=
#设置为通过本地媒介进行yum安装
enabled=1 yum clean all
yum makecache

安装Mysql数据库

  zabbix支持安装在多种数据库上,本方案中数据库为mysql。安装及库表建立如下:

  • 安装mysql5.6.28,安装方式为rpm安装,安装前若本机已有老旧mysql,请卸载。
rpm –ivh MySQL-server-5.6.-.el6.x86_64.rpm
rpm –ivh MySQL-client-5.6.-.el6.x86_64.rpm
rpm –ivh MySQL-devel-5.6.-.el6.x86_64.rpm
rpm –ivh MySQL-shared-compat-5.6.-.el6.x86_64.rpm
  • 添加对mysqlclient的软连接(若不添加,后续的zabbix安装可能会报错说找不到mysqlclient)。
cd /usr/lib64
ln -s libmysqlclient.so.16.0. libmysqlclient.so
ln -s libmysqlclient_r.so.16.0. libmysqlclient_r.so
  • 安装完后默认的配置文件是/usr/my.cnf,默认的mysql root账号密码保存在/root/.mysql_secret。
  • 检查mysql是否在随机启动的列表中,若无则添加,并启动。
chkconfig --list|grep mysql
chkconfig --add mysql
chkconfig mysql on
service mysql start
  • 修改root账户密码。
mysql –uroot –p
set password=password('');
flush privileges;
  • 创建zabbix数据库及其访问账号。
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
  • 初始化zabbix数据库。
mysql -uzabbix –p zabbix < schema.sql
mysql -uzabbix –p zabbix < images.sql
mysql -uzabbix –p zabbix < data.sql

安装zabbix Server

  • 下载并解压zabbix2.4.7
cd /usr/local/src
tar –xvf zabbix-2.4..tar.gz
cd zabbix-2.4.
  • 添加zabbix账号(注意的是默认情况下zabbix server和client都是运行在zabbix账号下,需要自行添加该账号。也可以通过修改server的配置文件指定zabbix server运行在root账号下,不推荐)
groupadd zabbix
useradd –g zabbix zabbix
  • 安装zabbix,若有缺依赖包,按提示自行添加
yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel 
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make && make install
  • 修改zabbix server的配置文件
vi /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
  • 设置zabbix server的日志路径和访问权限
mkdir /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix
  • 将zabbix server设置成随机启动,并启动
cp /usr/local/src/zabbix-2.4./misc/init.d/fedora/core/zabbix_server /etc/init.d
vi /etc/init.d/zabbix_server
#修改zabbix路径
BASEDIR=/usr/local/zabbix
chkconfig --add zabbix_server
chkconfig zabbix_server on
service zabbix_server start
  • 检查zabbix server是否正确启动
netstat -tlnp|grep zabbix
#可看见zabbix server运行在10051端口上
ps -ef|grep zabbix
#可看见zabbix server运行在zabbix账户下,并开启多个进程监听

安装libjpeg&freetype

  zabbix server有图形化要求,需要借助PHP gd的支持,这两项是PHP gd的必须项。由于PHP默认不支持这两项的安装,因此需要提前装好这两组件。

  • 安装freetype-2.6.tar.gz
cd /usr/local/src
tar -xvf freetype-2.6.tar.gz
cd freetype-2.6
./configure --prefix=/usr/local/freetype
make && make install
  • 安装jpegsrc.v6b.tar.gz
cd /usr/local/src
tar -xvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg --enable-shared
make && make install

  安装过程中,若报错类似"make: ./libtool: Command not found“,则需要把系统中的libtool的配置文件覆盖jpeg本身的老旧对应文件。

cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
make clean
./configure --prefix=/usr/local/jpeg --enable-shared

  安装过程中,若报错类似"cannot create regular file `/usr/local/jpeg/include/jconfig.h': No such file or directory",则需要手动建立相应目录。

mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1
make && make install

安装PHP

  zabbix server本身是由php编写的,因此需要安装php的运行环境。

  • 建立php运行账号
groupadd www
useradd –g www www
  • 下载并解压php-5.6.16.tar.bz2
cd /usr/local/src
tar –xvf php-5.6..tar.bz2
cd php-5.6.
  • 安装php
yum -y install libpng-devel
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-sockets --with-gd --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-gettext --enable-mbstring --enable-bcmath --with-config-file-path=/usr/local/php/etc
make && make install

  若安装过程中有缺依赖包,请按照提示安装。

  • 将PHP命令添加至环境变量中。
vi /etc/profile
#末尾加入:
export PATH=$PATH:/usr/local/php/bin
#立即生效:
source /etc/profile
  • 配置php-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
  • 为满足zabbix的最低运行要求,配置php.ini文件。
cp /usr/local/src/php-5.6./php.ini-production /usr/local/php/etc/php.ini
vi /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time =
max_input_time =
always_populate_raw_post_data = -
date.timezone = Asia/Shanghai
  • 设置php随机启动,并启动。
#开机启动
vi /etc/rc.local
/usr/local/php/sbin/php-fpm
#立即启动
/usr/local/php/sbin/php-fpm

  启动后可观察php运行在9000端口上。

安装Nginx

  zabbix server需要运行在web服务器上,官网推荐是安装在apache上,本方案是运行在nginx上,方法如下:

  • 下载并安装nginx-1.8.0.tar.gz
cd /usr/local/src
tar –xvf nginx-1.8..tar.gz
cd nginx-1.8.
  • 安装nginx
yum -y install pcre-devel
./configure --with-http_ssl_module --with-http_realip_module
make && make install

  上述安装中若缺依赖包,请根据提示安装

  • 修改nginx的配置文件,主要修改点如下:
user www www;
work_processes auto; location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
  • 将zabbix server的运行文件拷贝至nginx目录下。
cd /usr/local/nginx/html
mkdir zabbix
cd zabbix
cp -r /usr/local/src/zabbix-2.4./frontends/php/* .
cd ..
chown –R www:www zabbix
  • 设置nginx开机启动,并启动nginx。
#开机启动
vi /etc/rc.local
/usr/local/nginx/sbin/nginx
#启动nginx
/usr/local/nginx/sbin/nginx

初始化zabbix server

  nginx启动后,可以直接访问zabbix server:http://localhost/zabbix/index.php ,初始化是以图形界面进行配置的。

  • 首先检测php的运行环境是否正确。

  • 其次确保数据库连接正确

  • 配置好端口和host

  • 再次确认配置选项

  • 配置成功

  至此,zabbix server的源码安装成功结束,进入登录界面,默认的登录名和密码是:Admin/zabbix。

[原创] zabbix学习之旅一:源码安装的更多相关文章

  1. [原创] zabbix学习之旅三:agent安装

    部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...

  2. [原创] zabbix学习之旅二:yum安装

    对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题.   本文将介绍如 ...

  3. 学习Tensorflow,使用源码安装

    PC上装好Ubuntu系统,我们一步一步来讲解如何使用源码安装tensorflow?(我的Ubuntu系统是15.10) 安装cuda 根据你的系统型号选择相应的cuda版本下载 https://de ...

  4. Zabbix监控系统部署:源码安装

    1. 概述1.1 基础环境2. 部署过程2.1 创建用户组2.2 下载源码解压编译安装2.2.1 下载源码解压2.2.2 YUM安装依赖环境2.2.3 编译安装最新版curl2.2.4 更新GNU构建 ...

  5. [原创] zabbix学习之旅五:如何快速搭建一个报警系统

    通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...

  6. [原创] zabbix学习之旅七:如何远程操作被监控机器

    虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...

  7. [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题

    通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...

  8. [原创] zabbix学习之旅四:mail客户端安装

    相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒.zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其 ...

  9. 《一个操作系统的实现》学习笔记(一) bochs源码安装及配置

    前言:本机环境ubuntu 14.04 bochs 2.4.5 一.下载 官网 http://bochs.sourceforge.net/ 二.安装 1.将下载好的压缩包解压并进入该目录 .tar.g ...

随机推荐

  1. SAX - Hello World

    SAX 是一种事件驱动的 XML 数据处理模型.对于 DOM 模型,解析 XML 文档时,需要将所有内容载入内容.相比 DOM 模型,SAX 模型更为高效,它一边扫描一边解析 XML 文档.但与 DO ...

  2. sql中在查询时两列合并为一列

    select  a + ' '+b  as ab from tableName 如果是有整型的(例,b字段为int类型): select a +' '+Convert(VARCHAR(50),b) a ...

  3. C# WCF学习笔记(二)终结点地址与WCF寻址(Endpoint Address and WCF Addressing) WCF中的传输协议

    URI的全称是 Uniform Rosource Identifire(统一资源标识),它唯一标识一个确定的网绐资源,同时也表示资源所处的位置及访问的方式(资源访问所用的网络协议). 对于Endpoi ...

  4. Jquery 模糊匹配ID

    [属性名称] 匹配包含给定属性的元素[att=value] 匹配包含给定属性的元素 (大小写区分)[att*=value] 模糊匹配[att!=value] 不能是这个值[att$=value] 结尾 ...

  5. js笔记——浏览器及版本判断

    判断IE浏览器的时候注意需要做两个判断 一个是msie 一个是Edge function myBrowser(){ var userAgent = navigator.userAgent; //取得浏 ...

  6. 【转】404、500、502等HTTP状态码介绍

    基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HT ...

  7. lucene4入门(1)

    欢迎转载http://www.cnblogs.com/shizhongtao/p/3440325.html lucene你可以理解为一种数据库,他是全文搜索的一种引擎. 1.首先去官网download ...

  8. C++通过域名获取IP地址的方法;调试通过!

    BOOL GetIpByDomainName(][],int *nCount) { WSADATA wsaData; ]; HOSTENT *pHostEnt; ; struct sockaddr_i ...

  9. 深度探索C++对象模型读书笔记(2)

    以下测试平台均为vs 2012 指向Data Member的指针测试(1) #include <stdio.h> class Base1 { public: int val1; int v ...

  10. Hadoop示例程序WordCount编译运行

    首先确保Hadoop已正确安装及运行. 将WordCount.java拷贝出来 $ cp ./src/examples/org/apache/hadoop/examples/WordCount.jav ...