ZABBIX3.0在CentOS6.6上的安装部署
Zabbix3.0界面焕然一新,一改10多年的老面孔,alpha4的更新具体记录下:http://www.zabbix.com/rn3.0.0alpha4.php
What's New in 3.0.0alpha4
Zabbix 3.0安装过程与2.x的变化类似,但又少许需要注意的坑(以下标红的),否则会坑的不行。。。
基础环境:
CentOS 6.6 X64
Nginx:1.9.7
Mysql:5.5.32
PHP:5.5.30( zabbix_3.0 要求php版本至少在5.4以上 )
一、Nginx安装:
1.rpm -qa pcre pcre-devel2.yum install pcre pcre-devel openssl openssl-devel -y3.mkdir -p /usr/local/nginx-1.9.74.useradd nginx -s /sbin/nologin -M5../configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.9.7 --with-http_stub_status_module --with-http_ssl_modulemake && make installln -s /usr/local/nginx-1.9.7 /usr/local/nginx6.ls -l /usr/local/7./usr/local/nginx/sbin/nginx8.ps -ef|grep nginx9.ss -lntup|grep nginx[root@zabbix_3.0 conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf[root@zabbix_3.0 conf]# vim /usr/local/nginx/conf/nginx.confworker_processes 1;error_log /usr/local/nginx/logs/error.log; --新增一行events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;gzip on; --新增一行server {listen 80;server_name localhost;access_log /usr/local/nginx/logs/access.log; --新增一行root /usr/local/nginx/html; --更改为/usr/local/nginx/html,原来的值为html;index index.php index.html index.htm; --加一个index.phperror_page 500 502 503 504 /50x.html;location = /50x.html { --删除这行root html; --删除这行} --删除这行--下面这部分新增加的内容location ~ \.(php|php5)?$ {#root /usr/local/nginx/html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;include fastcgi_params;}}}10.为nginx提供 init脚本,新建文件/etc/rc.d/init.d/nginx,把以下内容复制到刚建的nginx文件下:#!/bin/sh#nx - this script starts and stops the nginx daemon## chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# processname: nginx# config: /usr/local/nginx/conf/nginx.conf# config: /etc/sysconfig/nginx# pidfile: /usr/local/nginx/logs/nginx.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0nginx="/usr/local/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"[ -f /usr/local/nginx ] && . /usr/local/nginxlockfile=/var/lock/subsys/nginxmake_dirs() {# make required directoriesuser=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`options=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifidone}start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval}restart() {configtest || return $?stopsleep 1start}reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?echo}force_reload() {restart}configtest() {$nginx -t -c $NGINX_CONF_FILE}rh_status() {status $prog}rh_status_q() {rh_status >/dev/null 2>&1}case "$1" instart)rh_status_q && exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"exit 2esac11.添加启动项并做成服务:[root@localhost nginx-1.9.7]chmod +x /etc/rc.d/init.d/nginx[root@localhost nginx-1.9.7]chkconfig --add nginx[root@localhost nginx-1.9.7]chkconfig nginx on[root@localhost php]# ps -A|grep nginx62878 ? 00:00:00 nginx62879 ? 00:00:00 nginx二、MySql安装:二进制软件包(170多M)
# yum install tree nmap lrzsz dos2unix -y# mkdir -p /usr/local/mysql-5.5.32[root@zabbix_3.0]# tar -zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz[root@zabbix_3.0]# mv mysql-5.5.32-linux2.6-x86_64 /usr/local/mysql-5.5.32[root@zabbix_3.0]# ln -s /usr/local/mysql-5.5.32/ /usr/local/mysql[root@zabbix_3.0]# useradd mysql -s /sbin/nologin -M[root@zabbix_3.0]# chown -R mysql.mysql /usr/local/mysql[root@zabbix_3.0]# cd /usr/local/mysql[root@zabbix_3.0 mysql]-- 创建系统表# ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysqlcp support-files/mysql.server /etc/init.d/mysqld--这步不用做sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqldcp support-files/my-small.cnf /etc/my.cnfcp:是否覆盖"/etc/my.cnf"? yecho 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile# source /etc/profile[root@zabbix_3.0]# echo $PATH/usr/local/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@zabbix_3.0 application]# cp -a /application/mysql/bin/* /usr/local/sbin[root@zabbix_3.0 application]#service mysqld start[root@zabbix_3.0 application]#chkconfig mysqld on[root@zabbix_3.0 application]#mysqladmin -uroot password 123456
三、PHP安装:
1.yum -y install zlib-devel libxml2-devel libjpeg-devel libiconv-devel freetype-devel libpng-devel gd-devel curl-devel libxslt-devel2.wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gztar zxf libiconv-1.14.tar.gzmkdir -p /usr/local/libiconvcd libiconv-1.14./configure --prefix=/usr/local/libiconvmake && make installcd ../3.yum -y install libmcrypt-devel mhash mcrypt --这3个rpm包必须安装,CentOS6.6系统的标准YUM源里没有, 需要从EPEL源上找到下载安装ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/php 5.5.30:( --with-mysqli=mysqlnd和--with-gettext一定要加上,否则前者不装时安装 zabbix时database type没有选项 默认出来的数据库是SqLite 3,且不能切换 ,后者不装时,会报PHP gettext warning)mkdir -p /usr/local/php-5.5.30tar -zxvf php-5.5.30.tar.gzcd php-5.5.30./configure \--prefix=/usr/local/php-5.5.30 \--with-mysql=/usr/local/mysql/ \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-iconv-dir=/usr/local/libiconv \--with-freetype-dir \--with-jpeg-dir \--with-png-dir \--with-zlib \--with-libxml-dir=/usr \--with-gettext \--enable-xml \--disable-rpath \--enable-bcmath \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--with-curl \--enable-mbregex \--enable-fpm \--enable-mbstring \--with-mcrypt \--with-gd \--enable-gd-native-ttf \--with-openssl \--with-mhash \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-soap \--enable-short-tags \--enable-static \--with-xsl \--with-fpm-user=nginx \--with-fpm-group=nginx \--enable-ftp \--enable-opcache=no回车+-----------------------------------------------------------------------------------+| License: || This software is subject to the PHP License, available in this || distribution in the file LICENSE. By continuing this installation || process, you are bound by the terms of this license agreement. || If you do not agree with the terms of this license, you must abort || the installation process at this point. |+-----------------------------------------------------------------------------------+Thank you for using PHP.config.status: creating php5.specconfig.status: creating main/build-defs.hconfig.status: creating scripts/phpizeconfig.status: creating scripts/man1/phpize.1config.status: creating scripts/php-configconfig.status: creating scripts/man1/php-config.1config.status: creating sapi/cli/php.1config.status: creating sapi/fpm/php-fpm.confconfig.status: creating sapi/fpm/init.d.php-fpmconfig.status: creating sapi/fpm/php-fpm.serviceconfig.status: creating sapi/fpm/php-fpm.8config.status: creating sapi/fpm/status.htmlconfig.status: creating sapi/cgi/php-cgi.1config.status: creating ext/phar/phar.1config.status: creating ext/phar/phar.phar.1config.status: creating main/php_config.hconfig.status: executing default commands#make && make installGenerating phar.phpGenerating phar.pharPEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.directorytreeiterator.incdirectorygraphiterator.incinvertedregexiterator.incclicommand.incpharcommand.incphar.incBuild complete.Don't forget to run 'make test'.Installing PHP CLI binary: /usr/local/php-5.5.30/bin/Installing PHP CLI man page: /usr/local/php-5.5.30/php/man/man1/Installing PHP FPM binary: /usr/local/php-5.5.30/sbin/Installing PHP FPM config: /usr/local/php-5.5.30/etc/Installing PHP FPM man page: /usr/local/php-5.5.30/php/man/man8/Installing PHP FPM status page: /usr/local/php-5.5.30/php/php/fpm/Installing PHP CGI binary: /usr/local/php-5.5.30/bin/Installing PHP CGI man page: /usr/local/php-5.5.30/php/man/man1/Installing build environment: /usr/local/php-5.5.30/lib/php/build/Installing header files: /usr/local/php-5.5.30/include/php/Installing helper programs: /usr/local/php-5.5.30/bin/program: phpizeprogram: php-configInstalling man pages: /usr/local/php-5.5.30/php/man/man1/page: phpize.1page: php-config.1Installing PEAR environment: /usr/local/php-5.5.30/lib/php/[PEAR] Archive_Tar - installed: 1.3.12[PEAR] Console_Getopt - installed: 1.3.1[PEAR] Structures_Graph- installed: 1.0.4[PEAR] XML_Util - installed: 1.2.3[PEAR] PEAR - installed: 1.9.5Wrote PEAR system config file at: /usr/local/php-5.5.30/etc/pear.confYou may want to add: /usr/local/php-5.5.30/lib/php to your php.ini include_path/root/software/php-5.5.30/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.5.30/binln -s -f phar.phar /usr/local/php-5.5.30/bin/pharInstalling PDO headers: /usr/local/php-5.5.30/include/php/ext/pdo/[root@zabbix_3.0 php-5.5.30]# make test --此步可不做,是进行测试[root@zabbix_3.0 php-5.5.30]# ln -s /usr/local/php-5.5.30/ /usr/local/php生成配置php配置文件[root@zabbix_3.0 php-5.5.30]# pwd/root/software/php-5.5.30[root@zabbix_3.0 php-5.5.30]# cp php.ini-production /usr/local/php/lib/php.ini[root@zabbix_3.0 php-5.5.30]# cd /usr/local/php/etc/[root@zabbix_3.0 etc]# pwd/usr/local/php/etc[root@zabbix_3.0 etc]# cp php-fpm.conf.default php-fpm.confphp启动测试[root@zabbix_3.0 etc]# /usr/local/php/sbin/php-fpm验证是否成功启动[root@zabbix_3.0 etc]# netstat -lntup|grep php-fpm
验证LNMP安装是否成功。
四、Zabbix安装:
[root@zabbix_3.0 ~]# tar -zxvf zabbix-3.0.0.tar.gz[root@zabbix_3.0 ~]# groupadd zabbix[root@zabbix_3.0 ~]# useradd -g zabbix zabbix[root@zabbix_3.0 ~]# ln -s /usr/local/libiconv/lib/libiconv.so.2 /usr/lib/libiconv.so.2 #添加软连接[root@zabbix_3.0 ~]# /sbin/ldconfig #使配置立即生效[root@zabbix_3.0 ~]# mkdir -p /usr/local/zabbix[root@zabbix_3.0 ~]# cd software/zabbix-3.0.0[root@oldboy zabbix-3.0.0]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2参数说明―prefix=/usr/local/zabbix 为指定安装目录为/usr/local/zabbix―enable-server 为安装zabbix服务端程序―enable-agent 为安装agent程序―with-mysql 为使用mysql数据库―enable-ipv6 为启用ipv6支持―with-net-snmp 为启用snmp支持―with-libcurl 为启用curl―with-libxml2 编译xml模块,主要用于监控vm虚拟机报错checking for net-snmp-config... noconfigure: error: Invalid Net-SNMP directory - unable to find net-snmp-config[root@zabbix zabbix-3.0.0]# rpm -qa | grep net-snmp-devel --发现没有该软件包,进行YUM安装[root@zabbix zabbix-3.0.0]# yum install net-snmp-devel已加载插件:fastestmirror, refresh-packagekit, security设置安装进程Loading mirror speeds from cached hostfile解决依赖关系--> 执行事务检查---> Package net-snmp-devel.x86_64 1:5.5-49.el6_5.3 will be 安装--> 处理依赖关系 tcp_wrappers-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要--> 处理依赖关系 rpm-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要--> 处理依赖关系 lm_sensors-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要--> 处理依赖关系 elfutils-devel,它被软件包 1:net-snmp-devel-5.5-49.el6_5.3.x86_64 需要--> 执行事务检查---> Package elfutils-devel.x86_64 0:0.158-3.2.el6 will be 安装---> Package lm_sensors-devel.x86_64 0:3.1.1-17.el6 will be 安装---> Package rpm-devel.x86_64 0:4.8.0-37.el6 will be 安装--> 处理依赖关系 popt-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要--> 处理依赖关系 file-devel(x86-64),它被软件包 rpm-devel-4.8.0-37.el6.x86_64 需要---> Package tcp_wrappers-devel.x86_64 0:7.6-57.el6 will be 安装--> 执行事务检查---> Package file-devel.x86_64 0:5.04-21.el6 will be 安装---> Package popt-devel.x86_64 0:1.13-7.el6 will be 安装--> 完成依赖关系计算依赖关系解决=============================================================================================软件包 架构 版本 仓库 大小=============================================================================================正在安装:net-snmp-devel x86_64 1:5.5-49.el6_5.3 c6-media 304 k为依赖而安装:elfutils-devel x86_64 0.158-3.2.el6 c6-media 74 kfile-devel x86_64 5.04-21.el6 c6-media 26 klm_sensors-devel x86_64 3.1.1-17.el6 c6-media 22 kpopt-devel x86_64 1.13-7.el6 c6-media 21 krpm-devel x86_64 4.8.0-37.el6 c6-media 93 ktcp_wrappers-devel x86_64 7.6-57.el6 c6-media 15 k事务概要=============================================================================================Install 7 Package(s)总下载量:555 kInstalled size: 1.3 M确定吗?[y/N]输入y回车--再次执行configure,编译通过[root@oldboy zabbix-3.0.0]# make && make install[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /usr/local/zabbix/[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-server[root@zabbix_3.0 ~]# mkdir -p /var/log/zabbix-agentd[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-server/[root@zabbix_3.0 ~]# chown -R zabbix:zabbix /var/log/zabbix-agentd/[root@oldboy zabbix-3.0.0]# mysql -uroot -pmysql> create database zabbix character set utf8 collate utf8_bin;mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';mysql> flush privileges;mysql> quit;
按照SQL语句顺序导入SQL:
shell> mysql -uzabbix -pzabbix < database/mysql/schema.sql# stop here if you are creating database for Zabbix proxyshell> mysql -uzabbix -p zabbix < database/mysql/p_w_picpaths.sqlshell> mysql -uzabbix -p zabbix < database/mysql/data.sql
1.修改zabbix.conf:
[root@oldboy zabbix-3.0.0]# vim /usr/local/zabbix/etc/zabbix_server.conf增加:DBName=zabbix #数据库名称DBUser=zabbix #数据库用户名DBPassword=zabbix #数据库密码ListenIP=localhost #数据库ip地址 (--根据实际情况更改)AlertScriptsPath=****/zabbix/alertscripts #zabbix运行脚本存放目录LogFile=/var/log/zabbix-server/zabbix_server.log --更改Logfile的值为/var/log/zabbix-server/zabbix_server.log,原来的默认值为/tmp/zabbix_server.log[root@oldboy zabbix-3.0.0]# vim /usr/local/zabbix/etc/zabbix_agentd.confLogFile=/var/log/zabbix-agentd/zabbix_agentd.log --更改Logfile的值为/var/log/zabbix-agentd/zabbix_agentd.log,原来的默认值为/tmp/zabbix_agentd.logHostname=test202
2.zabbix 3.0启动方式:
[root@oldboy zabbix-3.0.0]# cp /root/software /zabbix-3.0.0/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端[root@oldboy zabbix-3.0.0]# cp /root/software/zabbix-3.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端[root@oldboy zabbix-3.0.0]# vi /etc/rc.d/init.d/zabbix_server# Zabbix-DirectoryBASEDIR=/usr/local/zabbix --更改BASEDIR的值为/usr/local/zabbix,原来的值为/usr/local,如果安装时不指定--prefix,就默认安装在/usr/local,因为我安装zabbix在/usr/local/zabbix同理,也把zabbix_agentd的BASEDIR的值改为/usr/local/zabbixshell> zabbix_serverzabbix_server [15644]: cannot open "/var/log/zabbix-server/zabbix_server.log": [13] Permission denied报错是权限的问题,将var/log/zabbix-server的目录及其下所有文件都设为zabbix用户和zabbix所属组即可
3.将/usr/local/zabbix/sbin目录、/usr/local/nginx/sbin目录、/usr/local/php/sbin目录也写入/etc/profile的环境变量PATH当中
# vi /etc/profileexport PATH=/usr/local/zabbix/sbin:/usr/local/nginx/sbin:/usr/local/php/sbin:/usr/local/mysql/bin:$PATH'# source /etc/profile
4.然后启动php
[root@oldboy zabbix-3.0.0]# /usr/local/php/sbin/php-fpm
5.配置web环境:
[root@oldboy zabbix-3.0.0]# cd /root/software/zabbix-3.0.0/frontends[root@oldboy zabbix-3.0.0]# cp -rf php /usr/local/nginx/html/zabbix
6.在浏览器里输入http://10.101.0.15/zabbix 回车


7.修改php.ini:(php5.5默认值较小)
vim /usr/local/php/lib/php.ini 主要为下面几个参数--在vi里查找出上面的参数,再修改其值PHP option post_max_size 16M --更改值为16M,原来的值为8MPHP option max_execution_time 300 --更改值为300,原来的值为60PHP option max_input_time 300 --更改值为300,原来的值为30PHP time zone Asia/Shanghai --添加值为Asia/Shanghai,原来的值为空,并把前面的;去掉,使其生效:x
8.这里修不修改端口都可,如果编译php时你没有带上 --with-mysqli=mysqlnd 你会悲剧的发现这里默认出现的是SQLite3,且无法更换。。。
9.需要给此目录下/usr/local/nginx/html/zabbix/conf的zabbix.conf.php w+x权限,否则install之前会报错需要下载conf,且赋权。
10.安装至此完毕。界面如下(是比以前好看了。。)
如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:guestart的DBA学习笔记,您的支持是对我最大的鼓励!