系统环境:CentOS release 6.5 (Final)
搭建Zabbix 3.0对PHP环境要求>= 5.4
一、下载NMP的软件包:
N:wget http://nginx.org/download/nginx-1.8.0.tar.gz
P:wget http://cn2.php.net/distributions/php-5.6.28.tar.gz
M:https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36.tar.gz
二、搭建LNMP平台
1、M
1.)检测系统自带的mysql-libs包,并进行卸载
2.)由于MySQL源码安装:从mysql5.5以后是通过cmake来编译的安装的,但cmake要依赖ncurses,所以你懂的,有需要依赖就装给它!
下载如下插件并编译安装:
ncurses:ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.8.tar.gz
cmake:https://cmake.org/files/v3.0/cmake-3.0.2.tar.gz
./configure make ; make install
3.)编译安装Mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MySQL/ -DMySQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMySQL_UNIX_ADDR=/tmp/MySQL.sock -DMySQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make ; make install
#######编译参数详解:
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置
# -DSYSCONFDIR=/etc \ #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
# -DEXTRA_CHARSETS=all \ #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 \ #默认字符
4.)安装完成后续的操作:
useradd mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /mysql/data/
5.)初始化数据库(初始完之后会在数据文件中生成一些文件)
cd /usr/local/MySQL/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/MySQL --datadir=/usr/local/MySQL/data
6.)copy主配置文件到/etc/。
cp /usr/local/MySQL/support-files/my-default.cnf /etc/my.cnf
注意:老版本名称是my-medium.cnf3
7.)将mysql添加到系统服务:
cp /usr/local/MySQL/support-files/mysql.server /etc/init.d/mysqld
8.)修改配置文件:/etc/my.cnf
basedir #mysql的安装目录
datadir #mysq的数据目录
port #端口号默认是3306
server_id # 唯一的服务辨识号,数值位于 1 到 2^32-1之间。此值在master和slave上都需要设置。如果 “master-host” 没有被设置,则默认为1,但是如果忽略此选项,MySQL不会作为master生效
socket #为MySQL客户程序与服务器之间的本地通信指定一个套接字文件。默认文件中不用配置,若是想将socket指定其他目录请根据编译时的目录设置软连接。
9.)修改默认MySQL账户密码并允许root从任何主机远程连接服务器(和zabbix无关,可忽略)
mysql> use mysql;
mysql> update user set password=PASSWORD('123456') where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; #开启远程登录
mysql> flush privileges;
10. )创建zabbix数据库
mysql> create database zabbix charset utf8;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
mysql> flush privileges;
✡
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
#make clean
#rm -f CMakeCache.txt
#rm -rf /etc/my.cnf
✡
也可以使用二进制文件不用编译快速安装,这是一个已经比源码包大很多的一个已经完成编译安装步骤的封装包,下载完之后需要对配置进行一些修改:
https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2.N
1.)相关插件安装:yum -y install pcre-devel zlib zlib-devel openssl openssl-devel
2.)创建用户并编译安装:
groupadd www
useradd www -g www -s /sbin/nologin -M
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre
make ; make install
3.P
1.)安装gd/curl/xml等开发库
yum install -y gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
2.)解压编译并安装,如下参数是支持zabbix 3.0所必须安装的
./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 --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --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 install
3.)收尾工作:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/src/php-5.6.28/php.ini-production /usr/local/php/etc/php.ini
4.)启动php:/usr/local/php/sbin/php-fpm
5.)编辑nginx配置文件,验证是否可以访问php
user www www; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; events { use epoll; worker_connections 6000; } http { server { listen 80; server_name localhost; index index.html index.htm index.php; root /usr/local/nginx/html; location ~ \.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; } } }
创建php测试页:
vim /usr/local/nginx/html/1.php
<?php
phpinfo();
?>
访问测试:http://address/1.php
三、搭建zabbix
1.)下载需要的插件:
yum install libdbi-dbd-mysql net-snmp-devel curl-devel net-snmp libcurl-devel libxml2-devel
2.)下载tar 包
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download
3)解压编译安装 :
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql=/usr/local/MySQL/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
注意:--with-mysql=/usr/local/MySQL/bin/mysql_config:不这样写可能会出现找不到MySQL图书馆的错误。“路径根据环境写”
make && make install
4.)创建用户:
groupadd zabbix
useradd -g zabbix zabbix
5.)安装完后就进行数据库文件导入操作
cd /root/zabbix-3.0.4/database/mysql
mysql -uzabbix -p zabbix < schema.sql mysql -uzabbix -p zabbix < images.sql mysql -uzabbix -p zabbix < data.sql
6.)配置PHP
vim /usr/local/php/etc/php.ini
date.timezone = Asia/Shanghai
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
7.)编辑配置文件
vim /usr/local/zabbix-server/etc/zabbix_server.conf
ListenPort=10051
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=0.0.0.0
8.)启动Zabbix 并查看监听的端口
/usr/local/zabbix-server/sbin/zabbix_server -c /usr/local/zabbix-server/etc/zabbix_server.conf
netstat -nplt | grep zabbix_server
9.)可能出现的错误
✡启动报错:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
提示lib错误方案:
cp /usr/local/MySQL/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
vim /etc/ld.so.conf →>》 /usr/local/MySQL/lib/libmysqlclient.so.18
ldconfig
安装完成zabbix启动mysql错误,解决方案:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
✡后台报错:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
116852:20170525:154449.330 Cannot connect to the database. Exiting...
zabbix_server [116907]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument
zabbix_server [117197]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument
++++++++++++++++++++++解决办法:ipcrm -S 0x7a004442
10291:20161122:091648.178 using configuration file: /etc/zabbix/zabbix_agentd.conf
10291:20161122:091648.178 cannot set resource limit: [13] Permission denied
10291:20161122:091648.178 cannot disable core dump, exiting...
++++++++++++++++++++++解决办法:setenforce 0
10)拷贝zabbix web文件到Nginx根目录
rm -fr /usr/local/nginx/html/*
cd /root/zabbix-3.0.4/frontends/php/
cp -a . /usr/local/nginx/html/
chown -R www.www /usr/share/nginx/html/*
11.)配置Nginx
user www; worker_processes 5; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log error; location / { root /usr/local/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/nginx/html; } location ~ \.php$ { root /usr/local/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
当上诉的配置完成后,依次启动各个服务后进入浏览器输入IP即可进入zabbix的配置面
12.)zabbix页面配置
PHP 配置检查界面,结果是 OK 表示正常,如果是 fail 状态,请修改相关的 php 配置参数,并重启php服务
可能会出现的错误:PHP option "always_populate_raw_post_data" must be set to "-1"
解决方案:将php.ini中相应的注释去掉,重启php
13.)检查都通过后,就进入到下面这个界面,选择数据库及相关配置信息,其中有数据库地址、端口、用户名及密码。
在操作连接数据库时可能会出现
The frontend does not match Zabbix database. Current database version (mandatory/optional): 2050061/2050061. Required mandatory version: 3000000. Contact your system administrator.
遇到这种问题需要删除一下创建的zabbix库,然后在从新导入zabbix库文件。
14.)数据库信息都填写正确之后,就会进入到下一步,如下图:
这里出现权限报错,将配置文件下载下来保存到/usr/local/nginx/html/conf/zabbix.conf.php文件中。如果手动写入配置文件之后如果还报错,可以忽略,将浏览器关闭并重新打开连接即可。登录账号Admin,登录密码zabbix
15.)完成上面操作就安装完了,下面就进入到了Zabbix 3.0主界面。
16.)点击页眉最右侧的小人头像进入如下界面配置语言
17.)Zabbix缺省使用DejaVuSans字体来生成图表中的动态文字,所以在将界面切换成中文后,图表中的中文汉字会因为缺少对应的字体文件而现实不正常,汉字会显示为一个一个小方块。
(1)、windows操作系统 ---- 控制面板 ---- 字体 ---- 自行选择一种字体复制出来再上传到zabbix服务器上。
(2)上传到 /usr/local/nginx/html/fonts/,并且把TTF后缀改为ttf,然后修改/usr/local/nginx/html/include/defines.inc.php,将其中多处使用“DejaVuSans“的地方,替换为”SIMKAI“重启httpd服务,中文图表中的汉字就显示正常了。
至此zabbix的安装已经完成,不幸运的小伙伴搭建完成后可能会出现配置都对,但就是css样式无法加载,web页面只显示文字不显示图片的问题。我遇到过两次这种问题但是都没有解决,都是通过重新搭建修复的,我从网上找到了如下的解决方案,可以试试。ps:知道什么原因造成的小伙伴请评论留言。
zabbix web页面css样式不显示只显示文字问题:
查看nginx报错文件,若是有类似FastCGI sent in stderr: "Access to the script。。。这样子的错误,就去php配置文件里面更改这个文件:security.limit_extensions = .php .php3 .php4 .php5 .js .css .jpg .gif .png .jpeg .html .ico .bmp