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-devel 2.yum install pcre pcre-devel openssl openssl-devel -y 3.mkdir -p /usr/local/nginx-1.9.7 4.useradd nginx -s /sbin/nologin -M 5../configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.9.7 --with-http_stub_status_module --with-http_ssl_module make && make install ln -s /usr/local/nginx-1.9.7 /usr/local/nginx 6.ls -l /usr/local/ 7./usr/local/nginx/sbin/nginx 8.ps -ef|grep nginx 9.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.conf worker_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.php error_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 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /usr/local/nginx ] && . /usr/local/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? 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" in start) 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 2 esac 11.添加启动项并做成服务: [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 nginx 62878 ? 00:00:00 nginx 62879 ? 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=mysql cp 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/mysqld cp support-files/my-small.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y echo '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-devel 2.wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz mkdir -p /usr/local/libiconv cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make && make install cd ../ 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.30 tar -zxvf php-5.5.30.tar.gz cd 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.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands #make && make install Generating phar.php Generating phar.phar PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled. directorytreeiterator.inc directorygraphiterator.inc invertedregexiterator.inc clicommand.inc pharcommand.inc phar.inc Build 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: phpize program: php-config Installing man pages: /usr/local/php-5.5.30/php/man/man1/ page: phpize.1 page: php-config.1 Installing 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.5 Wrote PEAR system config file at: /usr/local/php-5.5.30/etc/pear.conf You 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/bin ln -s -f phar.phar /usr/local/php-5.5.30/bin/phar Installing 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.conf php启动测试 [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... no configure: 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 k file-devel x86_64 5.04-21.el6 c6-media 26 k lm_sensors-devel x86_64 3.1.1-17.el6 c6-media 22 k popt-devel x86_64 1.13-7.el6 c6-media 21 k rpm-devel x86_64 4.8.0-37.el6 c6-media 93 k tcp_wrappers-devel x86_64 7.6-57.el6 c6-media 15 k 事务概要 ============================================================================================= Install 7 Package(s) 总下载量:555 k Installed 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 proxy shell> mysql -uzabbix -p zabbix < database/mysql/p_w_picpaths.sql shell> 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.conf LogFile=/var/log/zabbix-agentd/zabbix_agentd.log --更改Logfile的值为/var/log/zabbix-agentd/zabbix_agentd.log,原来的默认值为/tmp/zabbix_agentd.log Hostname=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-Directory BASEDIR=/usr/local/zabbix --更改BASEDIR的值为/usr/local/zabbix,原来的值为/usr/local,如果安装时不指定--prefix,就默认安装在/usr/local,因为我安装zabbix在/usr/local/zabbix 同理,也把zabbix_agentd的BASEDIR的值改为/usr/local/zabbix shell> zabbix_server zabbix_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/profile export 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,原来的值为8M PHP option max_execution_time 300 --更改值为300,原来的值为60 PHP option max_input_time 300 --更改值为300,原来的值为30 PHP 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学习笔记,您的支持是对我最大的鼓励!
新闻名称:ZABBIX3.0在CentOS6.6上的安装部署
文章地址:http://pwwzsj.com/article/jhphci.html