LNMP+Zabbix搭建

LNMP+Zabbix搭建php

cmake2.8.8,Nginx-1.6.3,Php-5.5.38,Mysql-5.5.32,Zabbix-3.2.6html

 

/etc/selinux/config 文件中的 SELINUX="" 爲 disabled #關閉防火牆命令前端

setenforce 0 即時生效mysql

關閉防火牆的方法爲:linux

1. 永久性生效nginx

開啓:chkconfig iptables onc++

關閉:chkconfig iptables offweb

 

全部須要用到的編譯工具和庫:sql

 yum install make  autoconf automake curl curl-devel gcc gcc-c++ gtk+-devel zlib-devel openssl openssl-devel pcre-devel  perl kernel-headers compat*  cpp glibc libgomp libstdc++-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel  libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libpng* ncurses* libtool* libxml2-devel  bison libaio-devel數據庫

 

1,進入yum源配置目錄 

cd /etc/yum.repos.d 

2,備份系統自帶的yum源 

mv CentOS-Base.repo CentOS-Base.repo.backup 

3,下載新的CentOS-Base.repo 到/etc/yum.repos.d/ 

CentOS 5 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo 

CentOS 6 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 

CentOS 7 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 

4,下載完yum源後,執行下邊命令更新yum配置,使操做當即生效 

yum makecache

# make //肯定你的服務器有安裝make,若是沒有安裝請執行 yum install make

 

先安裝全部須要的開發軟件依賴包命令以下:

 

yum install gcc* make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y

 

##這是安裝MySQL數據庫所須要的依賴包:yum -y install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel libmcrypt-devel zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel mhash mcrypt bzip2-devel

 

解壓 cmake

tar -zvxf cmake-2.8.8.tar.gz

cd cmake-2.8.8

./configure

make && make install

----------------------------------------------------------------------------------------

解壓PHP

tar -zvxf php-5.5.38.tar.gz -C /usr/local/src/ # /home/

cd php-5.5.38

編譯php

./configure --prefix=/usr/local/php-5.5.38 --with-config-file-path=/usr/local/php-5.5.38/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

按照官方要求配置php

cp php.ini-production /usr/local/php-5.5.38/etc/php.ini

###cp /usr/local/php-5.5.38/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

cp /home/php-5.5.38/sapi/fpm/sapi/fpm/php-fpm /usr/local/bin/

[root@localhost php-5.5.38]# vim etc/php.ini

384 max_execution_time = 300

394 max_input_time = 300

405 memory_limit = 128M

672 post_max_size = 32M

800 upload_max_filesize = 2M

878 date.timezone = Asia/Shanghai
View Code

cp /usr/local/php-5.5.38/etc/php-fpm.conf.default /usr/local/php-5.5.38/etc/php-fpm.conf

vim /usr/local/php-5.5.38/etc/php-fpm.conf

; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data

group = www-data

 

/usr/local/php-5.5.38/sbin/php-fpm 啓動命令

cd /usr/local/src/php-5.5.38

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 啓動命令

chmod +x /etc/init.d/php-fpm

殺進程命令 kill -9 id號或者 killall xxx程序名字

測試是否安裝成功:/usr/local/php-5.5.38/bin/php -v

通常顯示正確:

PHP 5.5.38 (cli) (built: Apr 2 2018 07:20:56)

Copyright (c) 1997-2015 The PHP Group

Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

測試頁面

vim /usr/local/nginx-1.6.3/html/test.php

<?php

phpinfo();

?>

-----------------------------------------------------------------------------------------------------------------

解壓 Nginx

tar -zvxf nginx-1.6.3.tar.gz -C /usr/local/src

cd nginx-1.6.3

編譯指定nginx安裝路徑跟功能

./configure --prefix=/usr/local/nginx-1.6.3 \

--with-http_ssl_module --with-http_spdy_module \

--with-http_stub_status_module --with-pcre

 

編譯和編譯安裝

make && make install

安裝Nginx所須要的依賴包:yum install pcre* openssl*

/usr/local/nginx-1.6.3/sbin/nginx 啓動命令

/usr/local/nginx-1.6.3/sbin/nginx -s stop 關閉命令

/usr/local/nginx-1.6.3/sbin/nginx -s reload 重置命令

測試nginx配置是否正確:/usr/local/nginx-1.6.3/sbin/nginx -t

測試是否安裝成功:/usr/local/nginx-1.6.3/sbin/nginx -v

測試:curl -s http://localhost | grep nginx.com

正確結果是:

nginx.com.

 

chmod 755 /usr/local/nginx-1.6.3/html/zabbix/php

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

建立用戶和組

groupadd mysql 

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

解壓MySQL

yum install cmake

tar -zvxf mysql-5.5.32.tar.gz -C /usr/local/src/

cd mysql-5.5.32

 

cmake . -DCMAKE_INSTALL_PREFIX=/apploaclhost/mysql-5.5.32 \- DMYSQL_DATADIR=/apploaclhost/data \-DMYSQL_UNIX_ADDR=/apploaclhost/mysql-5.5.32/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \-DWITH_FAST_MUTEXES=1 \-DWITH_ZLIB=bundled \-DENABLED_LOCAL_INFILE=1 \-DWITH_READLINE=1 \-DWITH_EMBEDDED_SERVER=1 \-DWITH_DEBUG=0

 

make && make install

ln -s /application/mysql-5.5.32/ /application/mysql

拷貝配置文件和修改權限

cp support-files/my-small.cnf /etc/my.cnf

chown -R mysql.mysql /application/mysql/data/

chmod 1777 /tmp/

echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile

tail -l /etc/profile

source /etc/profile

echo $PATH

cd /application/mysql/scripts/

 ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql 初始化

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

chmod +x /etc/init.d/mysqld

/etc/init.d/mysqld start

修改密碼:

mysql>set password for root@'localhost'=password('123456');

mysql -uroot -p

-bash: mysql: command not found

解決辦法:

ln -s /usr/local/mysql-5.5.32/bin/mysql /usr/bin/ #mysql-5.5.32是編譯安裝的路徑

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

查看全部正在運行的端口命令:netstat -anptl

解壓Zabbix

tar -zvxf mysql-5.5.32.tar.gz

cd /home/zabbix-3.2.6

所須要的依賴包:yum install -y php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel net-snmp net-snmp-devel perl-DBI

./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-agent --enable-ipv6

 

make & make install

3、數據庫配置

# 數據庫初始化命令

mysql_secure_installation

 

忘記root密碼修改root密碼

mysqld_safe --skip-grant-tables(這條命令得掛着改纔有效)

mysql> use mysql;

mysql> update user set password=password("123456") where user="root";

mysql> flush privileges;

# mysql -u root -p

mysql> create database zabbix character set utf8; ##建立數據庫zabbix,而且數據庫編碼使用utf8

mysql>grant all on zabbix.*to 'zabbix'@'%'identified by 'zabbix'with grant option; ##容許帳戶能從本機鏈接至數據庫zabbix

mysql> flush privileges; ##刷新系統受權

 

②導入數據庫

[root@localhost zabbix-3.2.6]# ls

aclocal.m4 conf configure.ac INSTALL man upgrades

AUTHORS config.guess COPYING install-sh misc

bin config.log database m4 missing

build config.status depcomp Makefile NEWS

ChangeLog config.sub frontends Makefile.am README

compile configure include Makefile.in src

# cd database

# cd mysql

[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql

[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < images.sql

[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < data.sql

數據庫裏直接導入法:

mysql> use zabbix; mysql> source /home/zabbix-3.2.6/database/mysql/schema.sql;

mysql> source /home/zabbix-3.2.6/database/mysql/images.sql;

mysql> source /home/zabbix-3.2.6/database/mysql/data.sql;
View Code

#########官網 www.zabbix.com ########

/usr/local/zabbix/etc/zabbix_server.conf

vim /usr/local/zabbix/etc/zabbix_server.conf

38 LogFile=/tmp/zabbix_server.log ##日誌文件地址

68 PidFile=/tmp/zabbix_server.pid

77 DBHost=localhost ##數據庫主機

87 DBName=zabbix ##數據庫名

103 DBUser=zabbix ##數據庫用戶名

111 DBPassword=zabbix ##數據庫密碼

299 ListenIP=127.0.0.1,192.168.72.131 ##數據庫IP地址

447 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts ##zabbix運行腳本存放目錄
View Code

vim /usr/local/zabbix/etc/zabbix_agent.conf

11 PidFile=/tmp/zabbix_agentd.pid ##進程PID

30 LogFile=/tmp/zabbix_agentd.log ##日誌保存位置

69 EnableRemoteCommands=1 ##容許執行遠程命令

91 Server=127.0.0.1 被動##server端的ip ,建議這裏改爲server端的ip,不然可能會在建立監控模板啓動報錯

 

132 ServerActive=127.0.0.1 ##主動模式本機 IP

143 Hostname=Zabbix server ##必須與zabbix建立的hostname相同,也能夠是客戶端ip

262 Include=/usr/local/etc/zabbix_agentd.conf.d/

 

278 UnsafeUserParameters=1 ##啓動自定義key
View Code

groupadd zabbix

useradd -g zabbix -s /sbin/nologin zabbix

修改vim /etc/services,添加下面幾行

zabbix-agent 10050/tcp #zabbix agent

zabbix-agent 10050/udp #zabbix agent

zabbix-trapper 10051/tcp #zabbix trapper

zabbix-trapper 10051/udp #zabbix trapper
View Code

 

拷貝啓動命令:

cp /home/zabbix-3.2.6/misc/init.d/fedora/core/* /etc/init.d/

 

[root@localhost ~]# vi /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix ##########修改這行 #路徑看編譯的路徑

[root@localhost ~]# vi /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix ##########修改這行

建立

mkdir /usr/local/nginx-1.6.3/html/zabbix/

拷貝Zabbix下的php文件到nginx前端(主要是這裏使用的是nginx做爲web)

cp -a /home/zabbix-3.2.6/frontends/php/ /usr/local/nginx-1.6.3/html/zabbix/

修改使用者和修改權限

chown zabbix.zabbix /usr/local/nginx-1.6.3/html/zabbix/ -R

chmod -R 777 /usr/local/nginx-1.6.3/html/zabbix/

 

檢查Zabbix是否配置正確的命令:

grep -n '^'[a-Z] /usr/local/zabbix/etc/zabbix_server.conf

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

配置nginx的vim /usr/local/nginx-1.6.3/conf/nginx.conf

#設置用戶

user nginx;

#工做衍生進程數

worker_processes 1;

#設置錯誤文件存放路徑

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

 

#設置pid存放路徑(pid是控制系統中重要文件)

pid /usr/local/nginx-1.6.3/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壓縮

#gzip on;

include extra/*.conf;

server {

listen 80;

server_name www.zabbix1.com;

index index.html index.htm index.php;

root /usr/local/nginx-1.6.3/html/zabbix/php;

 

#設置字符

#charset koi8-r;

 

#access_log logs/host.access.log main;

 

location / {

root /usr/local/nginx-1.6.3/html/zabbix/php;

 

index index.php index.html index.htm;

}

#error_page 404 /404.html;

 

#redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_index index.php;

fastcgi_pass 127.0.0.1:9000;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

 

}

# deny access to .htaccess files, if Apache's document root

#concurs with nginx's one

#

#location ~ /\.ht {

# deny all;

#}

}

# another virtual host using mix of IP-, name-, and port-based configuration

 

#server {

#listen 8000;

#listen somename:8080;

#server_name somename alias another.alias;

 

#location / {

# root html;

# index index.html index.htm;

# }

#}

# HTTPS server

 

#server {

#listen 443 ssl;

#server_name localhost;

 

#ssl_certificate cert.pem;

#ssl_certificate_key cert.key;

 

#ssl_session_cache shared:SSL:1m;

#ssl_session_timeout 5m;

 

#ssl_ciphers HIGH:!aNULL:!MD5;

#ssl_prefer_server_ciphers on;

 

#location / {

# root html;

# index index.html index.htm;

# }

#}

}
View Code

啓動Zabbix web頁面出現的問題

問題1提示:  #PHPbcmath extension missing (PHP configuration parameter --enable-bcmath)

解決步驟

路徑:/usr/local/src/php-5.5.38/ext/bcmath

/usr/local/php-5.5.38/bin/phpize

./configure --with-php-config=/usr/local/php-5.5.38/bin/php-config

[root@localhost bcmath]# make && make install

Installing shared extensions: /usr/local/php-5.5.38/lib/php/extensions/no-debug-non-zts-20121212/bcmath.so

[root@localhost bcmath]# vim /usr/local/php-5.5.38/etc/php.ini

extension_dir配置的路徑, bcmath.so拷貝到該路徑下。而後重啓php

或者刪除安裝目錄,從新編譯安裝便可。

 

 

grant all on zabbix.*to 'zabbix'@'localhost'identified by 'zabbix'with grant option;

處理的方法是要麼寫個測試腳本,要麼就是查看一下是否有受權,或者把%替換localhost便可。

作了個測試腳本:

vim /usr/local/nginx-1.6.3/html/zabbix/php/test_mysql.php

<?php

$link_id=mysql_connect('192.168.xx.xx:3306','zabbix','zabbix') or mysql_error();

if ($link_id) {

echo "mysql successful by chenshuitao !";

}else{

echo mysql_error();

}

?>

 

問題2提示:Zabbix_server 啓動失敗。。

netstat -anp | grep zabbix 查看服務是否啓動

setenforce 0 關閉SELinux

lsof -i:10051

Zabbix-server 啓動正常可是10051端口沒有起來,

解決方法

看日誌 tail -f /tmp/zabbix_server.log的報錯以下;vim /usr/local/zabbix/etc/zabbix_server.conf

1635:20140706:015834.413 [Z3001] connection to database ‘zabbix’ failed: [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

1635:20140706:015834.413 Database is down. Reconnecting in 10 seconds.

看來是mysql sock錯誤了。 找到 #DBSocket=/usr/local/mysql-5.5.32/tmp/mysql.sock 去掉前面的#而後按照數據庫的路徑改註釋便可。

zabbix頁面亂碼解決問題:

1,到windows系統下下載個新的字體

2,到zabbix頁面的路徑下替換原來的字體便可

/usr/local/nginx-1.6.3/html/zabbix/php/fonts/

 

問題3:Zabbix日誌提示

 

解決方案:yum install fping

 

問題4提示:

解決方案:1,查看Zabbix-server日誌 命令以下:tail -f /tmp/zabbix_server.log,

2,修改Zabbix-server配置文件裏的

ListenIP=爲本機ip (數據庫ip)

3,重啓虛擬機

 

注: 

界面切換命令行:Ctrl+alt+f2 切換回來按 alt+f7

rz sz命令安裝:yum install lrzsz -y

上傳命令:rz-y

 

 

 

修改主機名:vim /etc/sysconfig/network

修改靜態ip

[root@zabbix-server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

 

 

 

 

 

/etc/init.d/network restart

相關文章
相關標籤/搜索