LNMP环境下安装zabbix3.2.11 安装环境:centos6.5 zabbix_server:192.168.100.3 zabbix_agent:192.168.100.4

1、安装前准备工作 1.确保服务器可以连接外网或者能下载相应的软件包即可。 nginx安装官网下载地址: http://nginx.org php安装官网下载地址: http://php.net mysql安装官网下载地址:https://dev.mysql.com/downloads/mysql/ zabbix安装官网下载地址:https://www.zabbix.com/download mysql也可以使用mariaDB替代,功能和mysql几乎一致,只是mariaDB是完全开源的。 mariaDB下载地址:https://mariadb.org/download/

我这里的版本组合如下: MySQL5.1.40 php-5.6.33 nginx/1.12.2 zabbix-3.2.11

2、MYSQL安装 mysql官网下载地址:http://downloads.mysql.com/archives/community/ 选择x64源码安装包进行下载:

将安装文件放在/usr/local/src/下

卸载和删除mysql原有的相关内容:

userdel -r mysql
groudel mysql
find / -name "mysql" -exec rm -rf {} \;

新建mysql用户、用户组:

groupadd mysql
useradd -s /sbin/nologin -g mysql mysql

解压文件,并赋予文件夹相关权限:

cd /usr/local/src
tar -zxvf  mysql-5.1.40-linux-x86_64-glibc23.tar.gz
mv mysql-5.1.40-linux-x86_64-glibc23 /usr/local/mysql
chmod -R 755 /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql

创建单独的数据安装文件:

mkdir -p /data/mysql
chmod -R 755 /data/
chown -R mysql.mysql /data/mysql

开始安装数据库:

cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

echo $? 返回0表示安装成功。

拷贝启动配置文件

cp support-files/mysql.server  /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

修改启动脚本 vi /etc/mysql.dmysqld 查找到datadir变量的值,修改这个变量的值,这样后续的文件就存储在自己指定的目录。 datadir=/data/mysql

把启动脚本加入系统服务项,并设定开启自启动,启动mysql

chkconfig --add mysqld
chkconfig mysqld on
service mysqld start;

添加环境变量:

echo "export MYSQL_PATH=/usr/local/mysql" >> ~/.bash_profile
echo "export PATH=$PATH:$MYSQL_PATH/bin" >> ~/.bash_profile
source .bash_profile

修改root密码: mysqladmin -uroot password 123456

登录mysql服务器: mysql -uroot -p123456

3、编译安装PHP 将php-5.6.33.tar.gz安装包解压至usr/local/src目录

tar -xf php-5.6.33.tar.gz  -C /usr/local/src
cd /usr/local/src/php-5.6.33/

开始编译安装,安装参数参考下面说明: PHP配置参数 zabbix对PHP参数、PHP模块有特殊要求,如下模块要特别留意加上 bcmath --enable-bcmath mbstring --enable-mbstring sockets --enable-sockets gd --with-gd libxml --with-libxml-dir=/usr/local xmlwriter 同上 xmlreader 同上 ctype 默认支持 session 默认支持 gettext 默认支持 以下是我PHP的配置参数 ./configure --prefix=/usr/local/php-5.6.33 --with-config-file-path=/usr/local/php-5.6.33/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 编译完成后执行 echo $? 返回如果是0表示编译成功,继续后面的安装操作: make && make install 此时php-5.6.33已经安装在 /usr/local/php-5.6.33目录下。 复制php运行配置文件

cp -rf /usr/local/src/php-5.6.33/php.ini-production  /usr/local/php-5.6.33/etc/php.ini
cp -rf /usr/local/php-5.6.33/etc/php-fpm.conf.default /usr/local/php-5.6.33/etc/php-fpm.conf

继续修改/usr/local/php-5.6.33/etc/php.ini文件中如下几个参数,否则后面zabbix不能通过。

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
always_populate_raw_post_data = -1
date.timezone = Asia/Shanghai

启动php-fpm:

/usr/local/php-5.6.33/sbin/php-fpm

检查php-fpm是否正常工作,通过下面的命令查看9000端口是否已经监听。 netstat -ano|grep :9000

4、安装zabbix 安装依赖包:

yum install net-snmp-devel libxml2-devel libcurl-devel

将下载好的 zabbix-3.2.11.tar.gz 解压至 /usr/local/src/目录

tar -xf zabbix-3.2.11.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-3.2.11
./configure --prefix=/usr/local/zabbix-3.2.11/ --enable-server  --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make && make install

此时zabbix-server上面上已经同时安装了zabbix_server和zabbix_agent

  1. 初始化数据库 zabbix server与proxy需要数据库,agent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件,proxy只需要导入一个表结构即可,导入其他的会报错。 创建zabbix数据库用户和数据库实例
mysql> grant all privileges on *.* to zabbix@'localhost' identified by 'zabbix';
mysql> create database zabbix default charset utf8;

按照顺序导入3个sql:

mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql

cd /usr/local/zabbix-3.2.11/etc/ 修改zabbix_server.conf配置文件,修改如下几个参数:

DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306

这里zabbix_agent.conf其实可以不用修改,用默认的启动就好,其他的主机需要修改这个文件。 创建zabbix用户:

groupadd zabbix 
useradd -g zabbix zabbix

启动zabbix_server/zabbix_agent:

/usr/local/zabbix-3.2.11/sbin/zabbix_server
/usr/local/zabbix-3.2.11/sbin/zabbix_agent

6.安装nginx1.12.2 安装pcre,用来支持rewrite yum -y install pcre* 安装 openssl

yum -y install openssl*

将nginx-1.12.2-tar.gz解压至/usr/local/src目录

tar -xf nginx-1.12.2-tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-1.12.2
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre
make && make install

如果没有报错,表示nginx已经安装至 /usr/local/nginx目录 编译参数说明: --with-http_stub_status_module:支持nginx状态查询 --with-http_ssl_module:支持https --with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持 --with-pcre:为了支持rewrite重写功能,必须制定pcre

7.修改nginx配置,拷贝前段文件至nginx的根目录

mkdir /data/logs/nginx
mkdir /data/site/zabbix
cp -rf /usr/local/src/zabbix-3.2.11/frontends/php/* /data/site/zabbix

修改nginx配置文件 vim /usr/local/nginx/conf/nginx.conf

server {
        listen       80;
        server_name  localhost;
        index index.html index.php index.html ;
        root /data/site;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
        try_files $uri $uri/ /index.php?$args;
        }
location ~ .*\.(php)?$
{
expires -1s;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}

测试nginx配置文件: /usr/local/nginx/sbin/nginx -t 启动nginx :/usr/local/nginx/sbin/nginx 平滑重启nginx:/usr/local/nginx/sbin/nginx -s reload

8.界面配置zabbix 确保上面的服务都启动以后,浏览器访问开始设置zabbix http://192.168.100.3/zabbix 遇到相应的问题再进行调试。

9.zabbix监控中文乱码问题 将windows下的字体复制一份到zabbix的fonts目录,然后修改相应的php脚本即可。 C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix网站目录fonts目录下

cd /data/site/zabbix/
sed -i 's/DejaVuSas/simkai/g' ./include/defines.inc.php

修改完毕后不用重启服务即可查看生效情况。

参考文献: Linux安装:http://www.osyunwei.com/archives/1024.html NGINX安装:http://www.ttlsa.com/nginx/nginx-install-on-linux/ PHP安装+NGINX配置:http://www.ttlsa.com/nginx/nginx-php-5_5/ (安装前一定要看1.1 PHP安装参数) MYSQL安装:http://www.ttlsa.com/mysql/install-mysql5_6/