一、LNMP环境部署
1、配置epel源
建议在系统安装完成之后就配置epel源,方便一些软件包的安装:
wget http://mirrors.ustc.edu.cn/centos/6/extras/x86_64/Packages/epel-release-6-8.noarch.rpmrpm -ivhepel-release-6-8.noarch.rpm
2、nginx安装
(1)安装支持软件
Nginx、mysql、php的配置及运行需要pcre、zlib、openssl等软件包的支持,因此应预先安装这些软件,以便提供相应的库和头文件,确保Nginx的安装顺利完成:
yum -y installpcre-devel zlib zlib-devel gcc gcc-c++ glibc make cmake bison autoconflibjpeg-turbo libjpeg-turbo-devel libpng libpng-devel freetype freetype-devellibxml2 libxml2-devel libcurl libcurl-devel openssl openssl-devel
(2)创建运行的用户
为了方便管理nginx,一般为它创建专门的用户:
useradd -M -s/sbin/nologin www
(3)安装pcre
下载链接:
wget https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz
编译安装:
./configure--prefix=/usr/local/pcre-8.38 && make && make install
(4)安装nginx
下载链接:
wget http://124.205.69.171/files/8095000002FE839E/nginx.org/download/nginx-1.8.1.tar.gz
编译安装:
./configure--prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module--with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.38/ &&make && make install
(5)安装后配置
为nginx主程序创建链接,方便启动、管理nginx:
ln -s/usr/local/nginx/sbin/nginx /usr/local/sbin/
(6)nginx测试、启动
在生产环境中,每次修改完nginx的配置文件先执行/usr/local/nginx/sbin/nginx -t检查配置文件中是否有语法错误。
nginx启动:
/usr/local/nginx/sbin/nginx
nginx重新加载配置文件:
/usr/local/nginx/sbin/nginx -s reload
3、数据库安装
使用的是5.5版本mysql
(1)安装ncurses
下载链接:
wget ftp://invisible-island.net/ncurses/ncurses.tar.gz
编译前先用yum安装ncurses-devel。
编译安装:
./configure--with-shared --without-debug --without-ada --enable-overwrite && make&& make install
(2)mysql安装
创建mysql用户:
useradd -M -s/sbin/nologin mysql
编译安装:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql-DMYSQL_TCP_PORT=3306 && make && make install
(3)安装后配置
cd /usr/local/mysql/ chown -R root . chown -R mysql data/ cpsupport-files/my-medium.cnf /etc/my.cnf
初始话数据库:
/usr/local/mysql/scripts/mysql_install_db--user=mysql
将数据库放在后台运行:
/usr/local/mysql/bin/mysqld_safe--user=mysql &
启动数据库:
/usr/local/mysql/bin/mysql
4、php安装
(1)下载链接:
wget http://cn2.php.net/distributions/php-5.5.37.tar.gz
编译安装:
./configure--prefix=/usr/local/php-fastcgi --with-mysql --with-jpeg-dir --with-png-dir--with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --with-openssl--enable-mbstring --with-gd --enable-gd-native-ttf --enable-sockets--with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache--enable-zip --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php-fastcgi/etc--enable-fpm --with-fpm-user=www --with-fpm-group=www--with-freetype-dir=/usr/lib64 && make && make install
安装后配置:
cp php.ini-development /usr/local/php-fastcgi/etc/php.ini ln -s /usr/local/php-fastcgi/bin/*/usr/local/bin ln -s /usr/local/php-fastcgi/sbin/*/usr/local/sbin
(2)安装mysql模块
cd/usr/local/src/php-5.5.37/ext/pdo_mysql/ &&/usr/local/php-fastcgi/bin/phpize && ./configure--with-php-config=/usr/local/php-fastcgi/bin/php-config && make && make install
(3)配置nginx支持php环境
cd /usr/local/php-fastcgi/etc/ cp php-fpm.conf.default php-fpm.conf vi php-fpm.conf 25 pid = run/php-fpm.pid 149 user = www 150 group = www 230 pm.max_children = 50 235 pm.start_servers = 20 240 pm.min_spare_servers = 5 245 pm.max_spare_servers = 35 启动php-fpm:/usr/local/sbin/php-fpm
修改nginx配置文件
45 index index.html index.htm index.php; 65 location ~ \.php$ { 66 root html; 67 fastcgi_pass 127.0.0.1:9000; 68 fastcgi_index index.php; 69 include fastcgi.conf; 70 }
重新加载nginx配置文件:
/usr/local/nginx/sbin/nginx-t /usr/local/nginx/sbin/nginx-s reload
二、测试
1、切换到nginx的网页主目录下:
cd /usr/local/nginx/html
在这个目录下新建两个测试页:
vi test.php <?php phpinfo(); ?>
vi index.php <?php $link=mysql_connect(‘localhost‘,‘root‘,‘‘); if($link) echo "success!!!" mysql_close(); ?>
2、使用浏览器访问两个测试页,访问是否正常?
到此,LNMP环境部署完成!
三、zabbix安装
(1)下载链接:
wget http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.13/zabbix-2.2.13.tar.gz
(2)安装依赖包:
yum installmysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmathphp-mbstring php-xml
(3)为zabbix创建数据库并授权:
mysql> create database zabbix character set utf8; mysql> grant allprivileges on zabbix.* to ‘zabbix_user‘@‘192.168.199.79‘ identified by ‘123456‘;
(4)创建zabbix用户:
useradd -M -s/sbin/nologin zabbix
(5)查看/etc/services/确认zabbix服务端口
10079 zabbix-agent 10050/tcp # Zabbix Agent 10080 zabbix-agent 10050/udp # Zabbix Agent 10081 zabbix-trapper 10051/tcp # Zabbix Trapper 10082 zabbix-trapper 10051/udp # Zabbix Trapper
(6)编译安装:
./configure--prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl--enable-server --enable-agent --enable-proxy && make && makeinstall
(7)导入数据库:
cd /usr/local/src/zabbix-2.2.13/database/mysql/ mysql -uroot zabbix < schema.sql mysql -uroot zabbix < images.sql mysql -uroot zabbix < data.sql
因为我一直没有设定数据库的root密码,所以在导入时也没有指定密码。
(8)配置
习惯上创建/etc/zabbix目录,将zabbix配置文件拷贝到该目录中单独进行管理:
mkdir -p /etc/zabbix cp -r /usr/local/src/zabbix-2.2.13/conf/* /etc/zabbix/ chown -R zabbix:zabbix/etc/zabbix/
①修改server配置文件:
vi /etc/zabbix/zabbix_server.conf 39 LogFile=/tmp/zabbix_server.log 68 PidFile=/tmp/zabbix_server.pid 77 DBHost=192.168.199.79 87 DBName=zabbix 103 DBUser=zabbix_user 111 DBPassword=123456
这些信息要跟在mysql中授权的信息一致。
②修改agent配置文件:
vi /etc/zabbix/zabbix_agentd.conf 11 PidFile=/tmp/zabbix_agentd.pid 21 LogFile=/tmp/zabbix_agentd.log 81 Server=192.168.199.79 133 Hostname=Zabbix client1 #自定义主机名,添加监控时要用到
③拷贝zabbix网页文件:
cp -r /usr/local/src/zabbix-2.2.13/frontends/php/ /usr/local/nginx/html/zabbix chown -R zabbix:zabbix/usr/local/nginx/html/zabbix/
④修改php.ini配置:
vi /usr/local/php-fastcgi/etc/php.ini 372 max_execution_time = 300 382 max_input_time = 300 393 memory_limit = 128M 660 post_max_size = 32M 910 date.timezone = Asia/Shanghai 1742 mbstring.func_overload = 2
这些参数是zabbix所必需的,否则在安装zabbix的web页面时会报错。修改之后重新启动php-fpm。
(9)启动zabbix:
/usr/local/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
-c 选项指定使用的zabbix_server配置文件,修改了哪个就用哪个。
四、安装zabbix的web页面
因为在nginx中定义的网站根路径在/usr/local/nginx/html/目录下,所以在浏览器上访问时要指定zabbix目录:192.168.199.79/zabbix
1、初次登录会看到下面的页面:
2、直接“next”下一步,会检查所有的依赖,这里出现了一个warning,如下图:
这个warning对于zabbix安装不会产生影响,但是有错误不解决总感觉……
这里需要安装php的gettext模块,有两种方法:
一种是重新编译php加上--with-gettext选项,但是编译php的时间比较长……
第二种方法:
cd /usr/local/src/php-5.5.37/ext/
这个目录下包含了所有的php模块,找到gettext目录,进入到目录里,执行:
/usr/local/php-fastcgi/bin/phpize&& ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config&& make && make install
php的所有模块都可以使用这种方式安装。装完之后要在php.ini文件里添加一行:
extension=gettext.so
之后重启php-fpm,刷新安装页面。嗯,这样就完美了。
3、继续“next”,问题又来了。
在“Database type”这一栏好像只能选择“SQLite3”,没有mysql。因为在编译php时没有指定--with-mysqli=/usr/local/mysql/bin/mysql_config。这时进入php解压之后的目录,执行:
./configure --with-mysqli=/usr/local/mysql/bin/mysql_config && make && make install
有时候直接这样编译会出错,需要先执行一下make clean。
/usr/local/php-fastcgi/bin/php -m查看所有已经安装的php扩展。
4、安装之后刷新页面,嗯……mysql出来了。
这里有个问题需要注意,如果你在数据库中授权时指定的host是localhost,那么这里的Database host就应该是localhost,否则就要写明ip地址,在zabbix_server配置文件中也是要一致的,建议授权时指定ip地址。
5、继续“next”下一步。
这里要指明zabbix server的ip地址。就是在zabbix_agentd.conf中要指定的server。
6、继续“next”下一步。
7、再下一步。
查看提示的路径下内容:
可以发现这个目录下不存在需要的文件,执行下面命令:
cd /usr/local/nginx/html/zabbix/conf/ cp zabbix.conf.php.example zabbix.conf.php vi zabbix.conf.php 1 <?php 2 // Zabbix GUIconfiguration file 3 global $DB; 4 5$DB["TYPE"] = ‘MYSQL‘; 6$DB["SERVER"] = ‘192.168.199.79‘; 7$DB["PORT"] = ‘0‘; 8$DB["DATABASE"] = ‘zabbix‘; 9$DB["USER"] = ‘zabbix_user‘; 10$DB["PASSWORD"] = ‘123456‘; 11 // SCHEMA is relevantonly for IBM_DB2 database 12$DB["SCHEMA"] = ‘‘; 13 14 $ZBX_SERVER =‘192.168.199.79‘; 15 $ZBX_SERVER_PORT = ‘10051‘; 16 $ZBX_SERVER_NAME = ‘‘; 17 18$IMAGE_FORMAT_DEFAULT =IMAGE_FORMAT_PNG; 19 ?>
这个文件中填写的内容。要跟第三步、第四步的信息一致。改完之后retry,如下图:
“OK”可以结束了。zabbix安装之后默认的用户名是admin,密码是zabbix。
8、登录之后可能不如想象中那么完美:“Zabbix server is not running:the information displayed may not becurrent”。
导致这种问题的原因我知道的有以下几个:
①zabbix_server.conf中的配置跟/usr/local/nginx/html/zabbix/conf/zabbix.conf.php中的配置不一致。
②防火墙跟selinux的影响。
③数据库授权时指定的主机是localhost还是ip地址?
到此,zabbix服务器端的配置告一段落,之后会有客户端的配置,跟一些常用的监控项。
本文出自 “宁静” 博客,请务必保留此出处http://zhen0522.blog.51cto.com/11834939/1825803