序:这是我个人的一些笔记和总结,有不当和错误的地方欢迎指出纠正!
整个环境所需要的软件包
php-5.5.35
&&libmcrypt-2.5.8
&&mysql-5.5.49
&&nginx-1.9.15
&&zabbix-3.2.1
我们需要先构建LNMP
的环境,因为Zabbix
通过PHP
页面展示(相关包会在后面做一个汇总分享)
1.安装 Nginx
[root@minion1 ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
zlib:给 Nginx
提供 gzip
模块,需要的支持;
OPenssl
提供SSL
功能;
PCRE
,地址重写
下载nginx软件包并进入到目录中:
wget http://nginx.org/download/nginx-1.9.15.tar.gz && tar xvf nginx-1.9.15.tar.gz && cd nginx-1.9.15
进行源码安装
tar xvf nginx-1.9.15.tar.gz -C /usr/local/src/ && cd /usr/local/src/nginx-1.9.15 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre make && make install
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
--with-pcre:为了支持rewrite重写功能,必须制定pcre
添加一个nginx用户
[root@minion1 nginx-1.9.15]# useradd -u 8001 -M -s /sbin/nologin nginx
修改/usr/local/nginx/conf/nginx.conf
#user nobody; user nginx nginx; #此行添加 ........ location ~ \.php$ { #这里默认注释手动去掉注释 root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; }
启动nginx并加入开机自启
[root@minion1 nginx-1.9.15]# /usr/local/nginx/sbin/nginx [root@minion1 nginx-1.9.15]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
设置防火墙通过nginx
[root@minion1 nginx-1.9.15]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@minion1 nginx-1.9.15]# /etc/rc.d/init.d/iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@minion1 nginx-1.9.15]# service iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
2.安装mysql
下载MySQL安装
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49.tar.gz [root@minion1 ~]# tar xvf mysql-5.5.49.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.5.49
添加mysql用户和组
groupadd mysql useradd mysql -s /sbin/nologin -M -g mysql
#先安装cmake(mysql5.5以后是通过cmake来编译的)
yum install -y cmake
#创建mysql的安装目录及数据库存放目录
[root@minion1 mysql-5.5.49]# mkdir -p /usr/local/mysql [root@minion1 mysql-5.5.49]# mkdir -p /usr/local/mysql/data [root@minion1 mysql-5.5.49]# chmod +w /usr/local/mysql/ [root@minion1 mysql-5.5.49]# chown -R mysql:mysql /usr/local/mysql/ [root@minion1 mysql-5.5.49]# mkdir -p /var/mysql [root@minion1 mysql-5.5.49]# mkdir -p /var/mysql/data/ [root@minion1 mysql-5.5.49]# mkdir -p /var/mysql/log/ [root@minion1 mysql-5.5.49]# chown -R mysql:mysql /var/mysql/
安装mysql
[root@minion1 mysql-5.5.49]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/var/mysql/data \ -DMYSQL_USER=mysql …… …… CMake Warning: Manually-specified variables were not used by the project: MYSQL_USER WITH_MEMORY_STORAGE_ENGINE -- Build files have been written to: /usr/local/src/mysql-5.5.49 [root@localhost mysql-5.5.22]#make 解决报错:-- Configuring incomplete, errors occurred! 先安装 ncurses-devel 包 yum install ncurses-devel 再删除刚才编译生成的 CMakeCache.txt 文件 rm CMakeCache.txt 再次执行一次cmake ... 一般都可以顺利安装的。 [root@minion1 mysql-5.5.49]#make && make install ln -s /usr/local/mysql/bin/* /usr/bin/ #添加软链接
配置mysql
[root@minion1 mysql-5.5.49]# cd support-files/ [root@minion1 support-files]# cp my-medium.cnf /etc/my.cnf [root@minion1 support-files]# cp mysql.server /etc/init.d/mysql
初始化安装。
/usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/etc/my.cnf \ --basedir=/usr/local/mysql \ --datadir=/var/mysql/data \ --user=mysql …… …… You can start the MySQL daemon with: cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!
修改配置文件
[root@minion1 support-files]# vi /etc/init.d/mysql basedir=/usr/local/mysql datadir=/var/mysql/data [root@minion1 support-files]# chmod +x /etc/init.d/mysql [root@minion1 support-files]# vi /etc/init.d/mysql [root@minion1 support-files]# chkconfig --add mysql [root@minion1 support-files]# chkconfig --level 345 mysql on [root@minion1 support-files]# cd /usr/local/mysql [root@minion1 mysql]# service mysql start Starting MySQL.. [ OK ]
设置开机自启
chkconfig mysql on
设置密码
/usr/local/mysql/bin/mysql_secure_installation ....... ew password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! .......
测试登录
[root@minion1 mysql]# mysql -uroot -p123456 .......... Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
登录数据库,创建zabbix数据库及用户名和密码:
mysql> create database zabbix default charset utf8; #新加一个zabbix的库 Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix'; #添加一个zabbix用户并给他zabbix库权限并设置密码为zabbix Query OK, 0 rows affected (0.03 sec) mysql> flush privileges; #刷新缓存 Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | zabbix | +--------------------+ 5 rows in set (0.00 sec)ot创建密码:
3.安装PHP
下载PHP安装包
wget http://cn2.php.net/get/php-5.5.35.tar.gz/from/this/mirror
解压并编译
mv mirror php-5.5.35.tar.gz && tar xvf php-5.5.35.tar.gz -C /usr/local/src/ ; cd /usr/local/src/php-5.5.35
编译安装
[root@minion1 php-5.5.35]#./configure --prefix=/usr/local/src/php-5.5.35
#提示“freetype-config not found” FreeType是一个完全开源的、可扩展、可定制且可移植的字体引擎,它提供TrueType字体驱动的实现统一的接口来访问多种字体格式文件
yum -y install freetype*
再配置
make && make install ln -s /usr/local/src/php-5.5.35 /usr/local/php cp php.ini-production /usr/local/php/etc/php.ini cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf
修改php.ini参数:(zabbix环境需要修改的参数)
cd /usr/local/php/etc/ max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 date.timezone = PRC
4.安装zabbix server
安装zabbix
[root@zabbix ~]# tar zxf zabbix-3.0.3.tar.gz && cd zabbix-3.0.3
编译zabbix
./configure --prefix=/usr/local/zabbix-3.0.3/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 make && make install
编译过程中如果有报错:
故障:
checking for mysql_config... no configure: error: MySQL library not found
解决:
yum install mysql-devel -y
故障:
checking for net-snmp-config... no configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决:
yum install net-snmp-devel -y
创建zabbix用户:
[root@zabbix zabbix-3.0.3]# groupadd zabbix [root@zabbix zabbix-3.0.3]# useradd zabbix -s /sbin/nologin -M –g zabbixzabbix server需要导入3个sql文件: [root@zabbix zabbix-3.0.3]# mysql -uroot -pzabbix zabbix < database/mysql/schema.sql [root@zabbix zabbix-3.0.3]# mysql -uroot -pzabbix zabbix < database/mysql/images.sql [root@zabbix zabbix-3.0.3]# mysql -uroot -pzabbix zabbix < database/mysql/data.sql
如遇以下报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决办法:
Mkdir /var/lib/mysql [root@zabbix ~]# ln -s /tmp/mysql.sock /var/lib/mysql/
五、zabbix管理网站配置(nginx)
创建项目目录:
[root@zabbix zabbix-3.0.3]# mkdir /data/web/zabbix.lifec.com -p [root@zabbix zabbix-3.0.3]# mkdir /data/logs/zabbix -p
将前端文件拷贝到项目目录下
[root@zabbix zabbix-3.0.3]# cp -rp frontends/php/* /data/web/zabbix.lifec.com/
编辑nginx虚拟主机
cd /usr/local/nginx/conf/ [root@zabbix conf]# mkdir extra [root@zabbix conf]# cd extra/ [root@zabbix extra]# vim zabbix.conf server { listen 8027; server_name zabbix.lifec.com; access_log /data/logs/zabbix/zabbix.lifec.com.access.log main; index index.html index.php index.html; root /data/web/zabbix.lifec.com; location /{ try_files $uri $uri/ /index.php?$args; } location ~ ^(.+.php)(.*)$ { fastcgi_split_path_info ^(.+.php)(.*)$; include fastcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param PATH_INFO $fastcgi_path_info; } }
编辑nginx.conf配置文件:
[root@zabbix conf]# cat nginx.conf user nginx; worker_processes 1; #error_log logs/error.log warning; #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; include extra/*.conf; }
编辑zabbix_server.conf文件
[root@zabbix etc]# pwd /usr/local/zabbix-3.0.2/etc/zabbix_server.conf LogFile=/tmp/zabbix_server.log PidFile=/tmp/zabbix_server.pid DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
未完待续......
最新评论