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.9-18.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=0
#设置为通过本地媒介进行yum安装
enabled=1
yum clean all
yum makecache
安装Mysql数据库
zabbix支持安装在多种数据库上,本方案中数据库为mysql。安装及库表建立如下:
- 安装mysql5.6.28,安装方式为rpm安装,安装前若本机已有老旧mysql,请卸载。
rpm –ivh MySQL-server-5.6.28-1.el6.x86_64.rpm
rpm –ivh MySQL-client-5.6.28-1.el6.x86_64.rpm
rpm –ivh MySQL-devel-5.6.28-1.el6.x86_64.rpm
rpm –ivh MySQL-shared-compat-5.6.28-1.el6.x86_64.rpm
- 添加对mysqlclient的软连接(若不添加,后续的zabbix安装可能会报错说找不到mysqlclient)。
cd /usr/lib64
ln -s libmysqlclient.so.16.0.0 libmysqlclient.so
ln -s libmysqlclient_r.so.16.0.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('123456');
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.7.tar.gz
cd zabbix-2.4.7
- 添加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=10
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.7/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.16.tar.bz2
cd php-5.6.16
- 安装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.16/php.ini-production /usr/local/php/etc/php.ini
vi /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
always_populate_raw_post_data = -1
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.0.tar.gz
cd nginx-1.8.0
- 安装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:9000;
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.7/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。