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. 转: utf16编码格式(unicode与utf16联系)

    转自: http://www.cnblogs.com/dragon2012/p/5020259.html UTF-16是Unicode字符集的一种转换方式,即把Unicode的码位转换为16比特长的码 ...

  2. cent0s7 显卡驱动导致重启黑屏

    由于 CentOS7.0 版本与前面的 CentOS6.5 及之前的版本的模式变更方法有很大 的不同,以前的版本中我们可以在vi /etc/inittab 文件中将id:5:initdefault 更 ...

  3. Java Concurrency - ReentrantLock

    ReentrantLock 是可重入的互斥锁,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大. ReentrantLock 将由最近成功获 ...

  4. document.ready和onload的区别

    转自:http://holysonll.blog.163.com/blog/static/2141390932013411112823855/ document.ready和onload的区别——Ja ...

  5. Unity Rigidbody 刚体中的Angular Drag和Freeze Position/Rotation

    Rigidbody中 Angular Drag  (角阻力):同样指的是空气阻力,只不过是用来阻碍物体旋转的.如果设置成无限的话,物体会立即停止旋转.如果设置成0,物体在上升过程中,会发生侧翻旋转. ...

  6. 承接VR/AR内容应用定制需求

    业务范围: 1 承接VR/AR内容应用定制需求: 教育培训.建筑建设.旅游体验.课件教学系统.交通车辆仿真,模拟驾驶系统.游戏等.2 各类最新VR设备,例如GearVR.HTC vive.Oculus ...

  7. Bitmap、CBitmap、HBITMAP以及BITMAP的相互转换

    Bitmap.CBitmap.HBITMAP以及BITMAP的相互转换 构建CBitmapCBitmap bmp;bmp.LoadBitmap(ID); 构建HBITMAPHBitmap = (HBI ...

  8. mapper配置

    一:查询 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC &q ...

  9. DataGridView显示时间格式

    默认显示时间不显示秒yyyy-MM-dd HH:mm dataGridView.Columns["日期时间字段"].DefaultCellStyle.Format = " ...

  10. app配置智能硬件的解决方案

    随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬 ...