一、環境準備
本人用的是RedHat 6.6 做的試驗。參照運維生存時間PDF版本或者網頁鏈接,
謝謝運維生存時間的技術人員的整理。
環境是 nginx + php + mysql + zabbix(所有軟件都是源碼安裝)
各個版本號,nginx-1.10.2、PHP-7.0.12、mysql-5.6.14、zabbix-2.2.2
- 首先關閉 selinux
查看selinux的狀態
#getenforce
#或者
#sestaus -v
- 1
- 2
- 3
- 1
- 2
- 3
零時關閉
#setenforce 0
- 1
- 1
重啓生效,修改配置文檔/tec/sysconfig/selinux
#vim /tec/sysconfig/selinux
SELINUX=disabled
- 1
- 2
- 1
- 2
- 關閉iptables
及時生效
開啓
#chkconfig iptables on
關閉
#chkconfig iptables off
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 同步時間以及創建本地yum源
#crontab -l
5 18 * * * /usr/sbin/ntpdate *.*.*.* > /var/log/ntpdate.log
- 1
- 2
- 1
- 2
(不會的自行百度吧)
- 卸載自帶的mysql
#rpm -qa | grep mysql ###查看自帶的mysql
#rpm -e (安裝包) ###卸載
- 1
- 2
- 1
- 2
二、安裝nginx
- 必要軟件準備
爲了支持rewrite功能,我們需要安裝pcre
# yum install pcre* ###如過你已經裝了,請跳過這一步
- 1
- 1
需要ssl的支持,如果不需要ssl支持,請跳過這一步
# yum install openssl*
- 1
- 1
- 安裝依賴包
yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
- 下載nginx (本文所有網上下載的安裝包,都放在
/usr/local/src/
下)
#cd /usr/local/src/
#wget -c http://nginx.org/download/nginx-1.10.2.tar.gz
- 1
- 2
- 1
- 2
- 解壓安裝
#tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
#./configure --prefix=/usr/local/nginx-1.10.2 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
#make
#make install
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 啓動和關閉
#/usr/local/nginx-1.10.2/sbin/nginx ###啓動
#/usr/local/nginx-1.10.2/sbin/nginx -s stop ###關閉
#/usr/local/nginx-1.10.2/sbin/nginx -s reload ###重置
- 1
- 2
- 3
- 1
- 2
- 3
三、PHP安裝+nginx配置
- 安裝所需的依賴包
確保安裝之前有安裝gd,png,curl,xml等等lib開發庫。如果不確定,執行以下命令:
#yum install -y gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel freetype-devel
- 1
- 1
- 下載php
#cd /usr/local/src/
#wget -c http://cn2.php.net/distributions/php-7.0.12.tar.gz
- 1
- 2
- 1
- 2
- 解壓並安裝
#tar -zxvf php-7.0.12.tar.gz
#cd php-7.0.12
#./configure --prefix=/usr/local/php-7.0.12 --with-config-file-path=/usr/local/php-7.0.12/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
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 配置php
#cp php.ini-production /usr/local/php-7.0.12/etc/php.ini
#cp www.conf.default www.conf
#cp /usr/local/php-7.0.12/etc/php-fpm.conf.default /usr/local/php-7.0.12/etc/php-fpm.conf
- 1
- 2
- 3
- 1
- 2
- 3
- 運行php
#/usr/local/php7.0.12/sbin/php-fpm ##啓動php
#killall php-fpm ###停止php
- 1
- 2
- 1
- 2
如果執行完啓動PHP命令之後沒有報錯,一般情況表示啓動正常,如果不放心,也可以通過端口判斷php是否啓動
#netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
- 1
- 2
- 1
- 2
- 配置nginx
配置測試站點test.com
#mkdir -p /data/logs/nginx/ ###用於存放nginx日誌
#mkdir -p /data/site/test.com/ ###站點根目錄
#vim /data/site/test.com/info.php
<?php
phpinfo();
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
- 修改nginx配置文檔
在nginx.conf的http段中加入如下內容:
#vim /usr/local/nginx-1.10.2/conf/nginx.conf
server {
listen 80;
server_name localhost;
access_log /data/logs/nginx/zabbix.com.access.log main;
index index.php index.html index.html;
root /data/site/test.com;
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;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 啓動nginx
#/usr/local/nginx-1.10.2/sbin/nginx/
- 1
- 1
-
訪問測試
使用瀏覽器訪問ip地址,出現nginx的版本號說明安裝成功了 -
啓動nginx報錯及解決辦法(本人所遇到的問題,通過百度解決之)
報錯1
bashunknown log format "main" in /usr/local/nginx-1.10.2/conf/nginx.conf:38
- 1
- 1
打開nginx.conf,”main”錯誤是因爲丟失了log_format選項,之前把他屏蔽掉了,修改之後問題解決。
報錯2
nginx: [error] open() "/usr/local/nginx-1.10.2/logs/nginx.pid" failed (2: No such file or directory)
- 1
- 1
使用nginx -c的參數指定nginx.conf文件的位置
#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- 1
- 1
四、安裝mysql
- 安裝必要的組件
#yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel
- 1
- 1
- 下載安裝mysql
#cd /usr/local/src/
#http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
#tar -zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz -C ../
#cd /usr/lcoal/
#ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql ###創建一個軟鏈接
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 創建mysql用戶和用戶組,及數據庫存放目錄
#mkdir -p /data/mysql_data_3306
#mkdir -p /data/mysql_log
$mkdir -p /data/log-bin
#groupadd mysql
#useradd mysql -g mysql -M -s /sbin/nologin
#chown -R mysql.mysql /data/mysql_data_3306 /data/mysql_log /data/log-bin
#chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 修改配置文件
#vim /etc/my.cnf
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /data/mysql_data_3306/mysql.sock
pid-file = /data/mysql_data_3306/mysql.pid
port = 3306
# MyISAM #
key_buffer_size = 1344M
myisam_recover = FORCE,BACKUP
# SAFETY #
max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve
# DATA STORAGE #
datadir = /data/mysql_data_3306/
long_query_time = 1
# BINARY LOGGING #
log-bin = /data/log-bin/mysql-bin-3306
expire-logs-days = 14
sync-binlog = 1
server-id = 1
max_binlog_size = 500M
# REPLICATION #
relay-log = /data/log-bin/relay-bin-3306
slave-net-timeout = 60
# CACHES AND LIMITS #
tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096
# INNODB #
innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_lock_wait_timeout = 50
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 8G
# LOGGING #
log-error = /data/mysql_log/mysql-error-3306.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow-3306.log
# FOR SLAVE #
#binlog-format = ROW
#log-slave-updates = true
#gtid-mode = on
#enforce-gtid-consistency = true
#master-info-repository = TABLE
#relay-log-info-repository = TABLE
#sync-master-info = 1
#slave-parallel-workers = 2
#binlog-checksum = CRC32
#master-verify-checksum = 1
#slave-sql-verify-checksum = 1
#binlog-rows-query-log_events = 1
#report-port = 3306
#report-host = 10.1.1.10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 系統服務
# cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld_3306
# vi /etc/init.d/mysqld_3306 ###修改兩處位置:
basedir=/usr/local/mysql
datadir=/data/mysql_data_3306
執行如下命令
# chmod 755 /etc/init.d/mysqld_3306 ###修改權限
# chkconfig --add mysqld_3306 ###添加啓動項
# chkconfig --level 345 mysqld_3306 on
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 初始化數據庫
#cd /usr/local/mysql
#./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
- 1
- 2
- 1
- 2
- 啓動數據庫
#server mysqld_3306 start
- 1
- 1
- 修改root密碼
# /usr/local/mysql/bin/mysql -p -uroot -S /data/mysql_data_3306/mysql.sock #這裏直接回車就能進入數據庫系統
Mysql>delete from mysql.user where user='';
Mysql>update mysql.user set password=PASSWORD(‘xxxxxxxx’) where user='root';
Mysql> create database zabbix default charset utf8; ###防止亂碼
Mysql>flush privileges;
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
五、安裝zabbix
- 下載安裝zabbix
#cd /usr/local/src/
#wget -c http://iweb.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz
#tar -zxvf zabbix-2.2.2.tar.gz ###解壓
#cd zabbix-2.2.2
#./configure --prefix=/usr/local/zabbix-2.2.2/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
#make
#make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 報錯信息
報錯1
configure: error: MySQL library not found
the problem is not installed mysql-devel
- 1
- 2
- 1
- 2
安裝MySQL-devel
#yum install mysql-devel
- 1
- 1
報錯2
configure: error : Not found NET-SNMP library
- 1
- 1
安裝snmp支持
#yum install net-snmp-devel
- 1
- 1
創建用戶
#groupadd zabbix
#useradd -g zabbix zabbix
- 1
- 2
- 1
- 2
- 初始化數據庫
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/schema.sql
如果你僅僅是初始化proxy的數據庫,那麼就夠了。如果初始化server,就接着導入下面兩個sql。
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/images.sql
#mysql -uroot -p123456 -S /data/mysql_data_3306/mysql.sock zabbix < /usr/local/src/zabbix-2.2.2/database/mysql/data.sql
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
- 配置zabbix
#cd /usr/local/src/zabbix-2.2.2
#mkdir /etc/zabbix
#cp conf/zabbix_server.conf /etc/zabbix/
#vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=root
DBPassword=ttlsapwd
DBPort=3306
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 啓動zabbix server
#/usr/loca/zabbix-2.2.2/sbin/zabbix_server
- 1
- 1
六、zabbix客戶端安裝配置
- 下載安裝
#cd /usr/local/src
#wget -c http://iweb.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz ##和zabbix server端一樣
解壓安裝
#cd zabbix-2.2.2
#./configure --prefix=/usr/lcoal/zabbix-2.2.2/ --enable-agent
#make
#make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- zabbix客戶端配置
修改zabbix_agentd配置文件,在zabbix源碼目錄下
#vim /usr/local/zabbix-2.2.2/etc/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被動後者是主動。也就是說Server這個配置是用來允許127.0.0.1這個ip來我這取數據。而serverActive的127.0.0.1的意思是,客戶端主動提交數據給他。
- zabbix客戶端啓動
#/usr/local/zabbix-2.2.2/sbin/zabbix_agentd
- 1
- 1
七、zabbix管理網站配置
- 拷貝前端文件
# mkdir /data/logs/nginx
# mkdir /data/site/test.com/zabbix
# cp -rp frontends/php/* /data/site/test.com/zabbix
- 1
- 2
- 3
- 1
- 2
- 3
- 配置虛擬主機
查看並修改配置文件路徑(安裝php時候已修改,此處可忽略)
# vim /usr/local/nginx-1.5.8/conf/vhost/test.com.conf
server {
listen 80;
server_name localhost;
access_log /data/logs/nginx/test.com.access.log main;
index index.html index.php index.html;
root /data/site/test.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;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 在線配置zabbix
瀏覽器打開本地ip地址
然後到歡迎界面,配置沒有問題(圖片可參考運維生存時間)上面的。- 看到Welcome to Zabbix 2.2幾個大字,然後點擊 Next>>
- php需求檢查,右邊框裏所有OK就沒有問題,接着點擊Next>>
- MySQL配置,填入相應的數據庫信息
Database trpe MySQL Database host 127.0.0.1 Database port 3306 Database name zabbix User root Password ***
點擊 Test connection 出現OK,說明沒有問題,接着點擊Next>> - zabbix服務端詳細信息(這裏要注意三個都得填寫,後期出錯,各種找原因,就是因爲Name這項沒有填寫導致)
Host localhost Port 10051 Name zabbix
接着點擊Next>> - zabbix安裝錢信息列表,點擊Next>>
- 安裝完成
按照說明,需要把配置文件下載到本地之後,導入到相應的目錄,操作完成之後,點擊Retry,顯示綠色的OK,說明已經成功。 - 點擊Finish 進入登陸界面,輸入賬號密碼
默認賬號:admin
密碼:zabbix - 進入首頁
八、結束
到此安裝結束,之間碰到各種報錯,然後就各種百度,最後還是把問題解決了。安裝比較簡單,但是比較耗時,安裝完之後纔是真正的開始,希望大家看到這裏之後zabbix環境已經搭建完成。如有問題,首先自己動手解決,實在解決不了的,上運維生存時間的留言區查找答案,或者留言說出問題。謝謝運維生存時間的技術們,你們辛苦了。。