说明:搭建ZABBIX所需的软件列表为:RHEL6.5+Nginx+MySQL+PHP+ZABBIX。
一、软件包
软件名称 | 版本 | 下载地址 |
nginx | 1.10.3 | http://nginx.org/download/nginx-1.10.3.tar.gz |
MySQL | 5.7.21 | https://dev.mysql.com/downloads/mysql/ |
PHP | 7.1.3 | http://php.net/get/php-7.1.3.tar.gz/from/a/mirror |
ZABBIX | 2.4.8(Server) 2.4.6(agent) | http://www.zabbix.com/download2 |
二、配置yum源
1.上传文件rhel-server-6.5-x86_64-dvd.iso到/root目录下;
2.新建目录/yum
mkdir /yum
3.挂载镜像文件到目录/yum
mount -o loop rhel-server-6.5-x86_64-dvd.iso /yum
4.配置repo文件
cd /etc/yum.repos.d
编辑rhel-source.repo文件,修改后的内容如下:
[rhel-source] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=file:///yum enabled=1 gpgcheck=0
至此,yum源配置完毕!
三、安装Nginx
1.安装nginx相关依赖包
yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
2.解压压缩包
tar -xvf nginx-1.10.3.tar.gz
3.安装nginx到目录/usr/local/nginx
cd nginx-1.10.3 ./configure --prefix=/usr/local/nginx #nginx安装到此目录
make #编译
make insall #编译安装
4.为后续配合PHP,故需要配置nginx.conf
#在如下目录新建目录web_root cd /usr/local/nginx mkdir web_root
#编辑nginx.conf以支持PHP,修改部分见如下红字。
修改项:
#新建一行:root /usr/local/nginx/web_root
#修改一行:将之前的scripts修改为/usr/local/nginx/web_root
[root@ZABBIX conf]# more nginx.conf #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; ############add by guanyy################# root /usr/local/nginx/web_root; ########################################## #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.php index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/web_root$fastcgi_script_name; include fastcgi_params; }
location ~* ^.+\.(ico|gif|jpg|jpeg|png|html|css|htm|bmp|js|svg)$ {
root /usr/local/nginx/web_root;
}
# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
5.修改完成后,保存退出
6.启动nginx
/usr/local/nginx/sbin/nginx
7.新建一个测试文件index.php,测试成功后再删除
cd /usr/local/nginx/web_root/
[root@ZABBIX web_root]# more index.php <?php phpinfo(); ?>
四、安装MySQL
MySQL采用二进制方式安装!具体安装步骤见:
http://www.cnblogs.com/xialiaoliao0911/p/7523931.html
五、安装PHP
1.安装PHP所需依赖包
yum -y install libxml2 libxml2-devel libpng libpng-devel bzip2 bzip2-devel
2.解压包来安装PHP
#以nginx做Web服务器时,安装命令如下:
#安装php到目录/usr/local/php
./configure --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --with-bz2 --with-curl --enable-ftp --enable-sockets \ --disable-ipv6 \ --with-gd --with-jpeg-dir=/usr/local/jpeg \ --with-png-dir=/usr/local/png \ --with-freetype-dir=/usr/local/freetype \ --enable-gd-native-ttf \ --with-iconv-dir=/usr/local/iconv \ --enable-mbstring --enable-calendar \ --with-gettext --with-libxml-dir=/usr/local --with-zlib \ --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd \ --with-mysql=mysqlnd \ --enable-dom --enable-xml --enable-fpm \ --with-libdir=lib64 \ --enable-bcmath make #编译 make test #测试 make install #安装
#以Apache做Web服务器时,安装命令如下:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
3.复制和修改配置文件
(1)从PHP解压后的目录复制文件到/usr/local/php/etc目录(该目录在安装时已被定义为php配置文件目录)
cp /root/php-7.1.3/sapi/fpm/php-fpm.conf /usr/local/php/etc
cp /root/php-7.1.3/php.ini-production/php.ini /usr/local/php/etc
mv /usr/local/php/etc/php.ini-production php.ini
说明:php.ini重命名后需要修改参数,具体如下:
vi /usr/local/php/etc/php.ini
post_max_size= 16M max_execution_time =300 max_input_time =300 date.timezone = Asia/shanghai
(2)通过复制方式新建一个文件www.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default www.conf
4. 启动PHP
/usr/local/php/sbin/php-fpm
5.检查PHP是否安装成功,在浏览器输入如下地址,看是否可以正常访问。其中192.168.102.140是安装PHP的主机IP。
http://192.168.102.140/index.php
注意:如果不能访问,请关闭Linux的防火墙!
如出现如下界面,表示PHP安装成功!
六、安装ZABBIX
1.安装ZABBIX依赖包
#根据ZABBIX官方网站的链接,进行安装依赖包
rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
#除官网外,还需要安装的依赖包
yum -y install zabbix-get zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql net-snmp-devel curl-devel
2.登录MySQL,新建ZABBIX所需的数据库、用户名,并导入sql文件
#创建zabbix数据库 create database zabbix; #创建zabbix用户并授权,密码为123456 CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456'; grant all on zabbix.* to 'zabbix'@'%' identified by '123456' with grant option; #刷新权限 flush privileges;
#导入sql文件到MySQL,执行顺序不能变 use zabbix; source /root/zabbix-2.4.8/database/mysql/schema.sql source /root/zabbix-2.4.8/database/mysql/images.sql source /root/zabbix-2.4.8/database/mysql/data.sql
3. 添加软链接
cd /usr/lib64/mysql ln -s libmysqlclient.so.16.0.0 libmysqlclient.so ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so
4.安装ZABBIX
/usr/local/zabbix-2.4.8 : zabbix安装目录
/usr/local/mysql/bin/mysql_config : mysql实际安装目录
./configure --prefix=/usr/local/zabbix-2.4.8 --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-libxml2 --with-mysql=/usr/local/mysql/bin/mysql_config
make
make install
5.添加系统软链接
ln -s /usr/local/zabbix-2.4.8/sbin/* /usr/local/sbin/ ln -s /usr/local/zabbix-2.4.8/bin/* /usr/local/bin/
6.添加zabbix服务对应的端口(zabbix安装后会自动添加,但仍需检查)
vi /etc/services zabbix-agent 10050/tcp # Zabbix Agent zabbix-agent 10050/udp # Zabbix Agent zabbix-trapper 10051/tcp # Zabbix Trapper zabbix-trapper 10051/udp # Zabbix Trapper
7.修改zabbix配置文件
cd /usr/local/zabbix-2.4.8/etc vi /usr/local/zabbix-2.4.8/etc/zabbix_server.conf DBName=zabbix #数据库名称 DBUser=zabbix #数据库用户名 DBPassword=123456 #数据库密码 DBDBSocket=/tmp/mysql.sock #sock文件,/etc/my.cnf中有记录 ListenIP=127.0.0.1 #监听IP AlertscriptsPath=/usr/local/zabbix-2.4.8/share/zabbix/alertscripts #zabbix运行脚本存放目录
vi /usr/local/zabbix-2.4.8/etc/zabbix_agentd.conf Include=/usr/local/zabbix-2.4.8/etc/zabbix_agentd.conf.d/ UnsafeUserParameters=1 #启用自定义key
8.添加开机启动脚本
#复制相关文件到/etc/init.d目录下 cp /root/zabbix-2.4.8/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server cp /root/zabbix-2.4.8/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd #添加执行权限 chmod +x /etc/init.d/zabbix_agentd chmod +x /etc/init.d/zabbix_server #设置开机启动 chkconfig zabbix_server on chkconfig zabbix_agentd on #设置软链接 ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
#修改启动脚本中的zabbix目录为实际安装目录,如下红色框中。
/etc/init.d/zabbix_server
/etc/init.d/zabbix_agentd
9.启动zabbix_server和zabbix_agentd
#启动zabbix_server /etc/init.d/zabbix_server start #启动zabbix_agentd /etc/init.d/zabbix_agentd start
10. 将zabbix源码目录frontends/php下的所有文件复制到/usr/local/nginx/web_root目录下.
cp -r /root/zabbix-2.4.8/frontends/php/* /usr/local/nginx/web_root
11.为防止打开的zabbix界面没有样式,只有文字,在/usr/local/php/etc/php-fpm.d/www.conf中找到如下这行,放开注释,并添加js等。然后重启nginx和php-fpm
#需修改行
security.limit_extensions = .php .php3 .php4 .php5
#修改后的结果如下
security.limit_extensions = .php .php3 .php4 .php5 .php7 .js .css .jpg .gif .png .jpeg .html .ico .bmp
12.在浏览器中输入http://192.168.102.140/setup就能打开ZABBIX界面
13. 解决所有fail项后,进入下一步测试数据库连接,输入数据库的IP、数据库名称、用户名和密码。
#解决所有fail项后的界面
#数据库测试成功的界面
#输入ZABBIX机器的host或IP,并起名
#点击进入下一步,会显示安装概要,包括一些IP、数据库等参数的设置
#点击下一步,会出现一个错误,此时需要点击界面中的“”下载配置文件“”下载配置文件,并放到界面中指定的目录下。然后点击重试。
#检查成功后,点击Finish. 进入ZABBIX登录界面
#zabbix安装后默认的用户名和密码为admin/zabbix.登录后即可进入zabbix.
七、安装ZABBIX_AGENT
请参见:
http://blog.csdn.net/wn_hello/article/details/52121888
记录MySQL用户名和密码的2个文件
/usr/local/zabbix/etc/zabbix_server.conf
/usr/local/nginx/web_root/conf/zabbix.conf.php
八、常见问题解决
1.问题描述:
解决方法:
(1)进入到PHP源码目录的/root/php-7.1.3/ext/mysqli下,执行如下命令:
/usr/local/php/bin/phpize ./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config make make install
说明:如果编译失败(找不到文件mysql_float_to_double.h),可参见:https://www.cnblogs.com/xiaoqian1993/p/6277771.html
(2)编译成功后,结果如下:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/ Installing header files: /usr/local/php/include/php/
进入红色字体目录下,看是否有mysqli.so. 如果有的话,将该文件追加到/usr/local/php/lib/php.ini文件中,结果如下:
extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/mysqli.so
(3)重启MySQL和nginx
2.问题描述:
解决方法:
找到如下文件,添加$current = -1; vi /usr/local/nginx/web_root/include/classes/setup/CFrontendSetup.php
3. 问题描述:
解决方法:
cd /root/php-7.1.3/ext/gettext /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-gettext make && make install
执行上述命令后,会生成一个gettext.so文件,将该文件追加到/usr/local/php/lib/php.ini文件中,结果如下:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/gettext.so
4. 问题描述
解决方法:
将文件/usr/local/zabbix/etc/zabbix_server.conf中的ListenIP=127.0.0.1注释掉!然后重启zabbix_server和zabbix_agentd
/etc/init.d/zabbix_server restart
/etc/init.d/zabbix_agentd restart
5.问题描述
解决方法:
找到文件/usr/local/nginx/web_root/include/func.inc.php
对412行的$val的数据类型进行转换。新增一行 $val = intval($val);
6. 问题描述:关于中文乱码的问题(方块为乱码)
(1)首先从本地计算机中找到一个中文字体 。例如 C:\Windows\Fonts\simfang.ttf
(2)将该字体上传到/usr/local/nginx/web_root/fonts目录下
(3)修改defines.inc.php文件中的字体为simfang
cd /usr/local/nginx/web_root/include
sed -i 's/DejaVuSans/simfang/g' defines.inc.php
(4)修改后字体即可正常显示
7. 问题描述:ZABBIX安装完成后,在浏览器打开后,没有界面样式,只以文本显示。
解决方法: https://www.cnblogs.com/shihuc/p/6149253.html