话不多说,直接开始

服务器:192.168.32.103

(一)安装nginx

1)安装nginx所需的基础包:

yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

2)登录到nginx官网下载tar包(nginx.org),选择stable version里面的,下载下来或者直接在linux里面使用wget命令都是一样的

这里使用wget命令:

mkdir /pacakge/nginx

cd /package/nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz

tar -xzvf nginx-1.16.1.tar.gz

cd nginx-1.16.1/

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

make && make install

3)验证是否安装成功

/usr/local/nginx/conf          nginx配置文件目录

/usr/local/nginx/hrml         nginx存放网页文件目录

/usr/local/nginx/logs          nginx日志存放目录

/usr/local/nginx/sbin          nginx日志文件存放目录

4)配置nginx

在执行完nginx的make && make install命令后,还需要把nginx目录添加到环境变量里面去,否则无法直接执行nginx命令

配置nginx环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/nginx/sbin/

source /etc/profile

 nginx -V    查看nginx版本

nginx -t  检查配置文件是否正确

启动nginx:直接执行nginx这个命令

查看nginx后台进程:ps -ef | grep nginx

关闭nginx:nginx -s stop

浏览器验证:192.168.32.103

 

使用systemctl方式管理nginx

先杀掉nginx的进程:pkill nginx

vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

[Install]

WantedBy=multi-user.target

:wq 保存退出

 

重启nginx

systemctl start nginx

systemctl daemon-reload  如果没有报错就不用执行该命令

systemctl enable nginx

 

注意,该方法同样适用于源码安装的其他服务,比如mysql、php

例如mysql

vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=mysqld

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx  这里执行环境变量的目录换成mysql的即可

[Install]

WantedBy=multi-user.target

 

(二).安装mysql5.6

yum install -y gcc gcc-c++ make tar openssl-devel cmake ncurses-devel

useradd -s /bin/nologin mysql

进入到mysqld的解压目录执行以下命令:  ---安装mysql需要些时间,请耐心等待

cmake -DCMAKE_INSTALL-PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1

make && make install

设置mysql环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin/

source /etc/profile

 

cp /package/mysql/mysql-5.6.48/support-files/mysql.server /etc/init.d/mysqld      需要cp的文件在源码解压目录里,具体路径看你自己创建在哪里的

chmod a+x /etc/init.d/mysqld

 

vim /etc/my.cnf

[mysqld]

bind-address=0.0.0.0

port=3306

datadir=/data/mysql

user=mysql

skip-name-resolve

long_query_time=2

slow_query_log_file=/data/mysql/mysql-slow.log

expire_logs_days=2

innodb-file-per-table=1

innodb_flush_log_at_trx_commit=2

log_warnings=1

max_allowed_packet=512M

connect_timeout=60

net_read_timeout=120

[mysqld_safe]

log-error=/data/mysql/mysqld.log

pid-file=/data/mysql/mysqld.pid

 

mysql数据库初始化

mkdir -pv /data/mysql

chown -R mysql:mysql /usr/local/mysql /data/mysql/

yum install -y perl-Module-Install

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/mysql/ 

 

使用systemctl 管理mysqld

vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=mysqld

After=network.target

[Service]

Type=forking

ExecStart=/etc/init.d/mysqld start

[Install]

WantedBy=multi-user.target

 

systemctl start mysqld

systemctl status mysqld

systemctl enable mysqld

netstat -tulnp | grep mysql

 

登录mysql

mysql -uroot -h 127.0.0.1 -p 初始状态没有密码,直接回车即可,一定要指定 -h 127.0.0.1

设置新密码:

SET Password=PASSWORD('zabbixpwd'); 

flush privileges;

 

如果你装的是mysql8,会在mysql日志里面生成一个初始密码,登录(mysql -uroot -h 127.0.0.1 -p)成功后再执行下面的语句:

set global validate_password.policy=0;

set global validate_password.length=1;

alter user 'root'@'localhost' identified by 'zabbixpwd';

flush privileges;

 

mysql授权某ip登录,指定用户名:

注意,需要修改成自己的IP端或者允许所有访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.32.%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;

或者

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;

flush privileges;

 

(三)安装PHP(5.6) 注意,要先安装mysql,否则会报错

下载php源码包:

mkdir /package/php

cd /package/php

http://mirrors.sohu.com/php/  用wget命令或者下载下来上传上去都可以

tar -zxvf php-5.6.34.tar.gz

cd pphp-5.6.34/

 

安装php扩展:

yum -y install epel-release

yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel

 

配置configure:

cd php-5.6.34/

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqld --with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ladp-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm

 

有报错(同样的版本系统,报错也有可能不一样,根据自己遇到的报错来处理即可),根据报错提示安装缺少的依赖包:以下两个报错会出现在php7版本中

执行命令:yum install -y salite-devel
 
Next:

执行命令:yum install  -y oniguruma-devel
 

 发现没有makefile文件,无法执行make && make installa操作,如果编译环境没有报错了,还是无法执行make命令,可以先更新下yum(yum update),再加上参数 --disable-fileinfo

再次执行./configure命令,发现mysql有报错,需要先安装mysql,然后再配置中加上 --with-mysqli=/usr/local/mysql/bin/mysql_config  已在上述编译环境中增加

 
Next:
 

执行命令:yum install libxml2-devel -y
 

执行命名:yum install libcurl-devel -y
 
Next:

 执行命令:yum install -y libjpeg-devel

Next:

执行命令:yum install libpng-devel -y

Next:

执行命令:yum install freetype-devel -y

Next:

执行命令:yum install -y libmcrypt-devel

Next:

继续执行./configure后会有如下报错:

解决方法:

vim /etc/ld.so.conf

/usr/local/lib64

/usr/local/lib

/usr/lib

/usr/lib64

#保存退出

ldconfig -v # 使之生效

 

php编译环境检查完毕,没有再报错,如下图

 

再次执行安装命令:

make && make install

安装完毕

cp /package/php/php-5.6.34/php.ini-production /usr/local/php/etc/php.ini      

cp php.ini-production在源码解压目录里面

 

把php加入环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/php/sbin:/usr/local/php/bin/

source /etc/profile

 

启动php-fpm

cd /usr/local/php/etc

执行 php-fpm -t会报错

解决办法:

在当前目录下(/usr/local/php/etc)执行:cp php-fpm.conf.default php-fpm.conf

重新执行:php-fpm

ps -ef | grep php

 

已经运行起来了,先暂时停掉(pkill php-fpm),配置systemctl服务器来管理php-fpm程序

php-fpm的两种模式:

1.socket()

2.网络模式 127.0.0.1:9000

 

使用systemctl 管理php-fpm

vim /usr/lib/systemd/system/php-fpm.service

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/php/sbin/php-fpm

[Install]

WantedBy=multi-user.target

:wq 保存退出

 

systemctl start php-fpm

systemctl status php-fpm

systemctl enable php-fpm

netstat -tulnp | grep php-fpm

 

测试下nginx是否能解析php程序

cd /usr/local/nginx/html

vim test.php

<?php

    echo "hello zabbix

 

:wq 保存退出,去网页验证:192.168.32.103/test.php

会发现不能解析

解决办法:

vim /usr/local/nginx/conf/nginx.conf

搜索index.html ,把index.php加进去,并且修改php文件存放位置指定为网站根目录($document_root)

重启nginx:    systemectl restart nginx

 

(四).验证LNMP环境

cd /usr/local/nginx/html

vim test_mysql.php

<?php

$link=mysql_connect("127.0.0.1","root","zabbixpwd");

if(!$link){

    echo "mysql_connect fail";

} else{

    echo "mysql_connect success";    

}

?>

 

如果返回success,则说明mysql成功,如果返回fail,请检查mysql的用户名,ip,密码或者脚本其他地方有没有写错!还有就是在登录mysql的时候是否指定了主机名,如果登录的时候忘了,记得回到那一步重新登录并设置下密码

 

(五).编译安装zabbix4.0

1).到官网下载zabbix  https://www.zabbix.com/download_sources#tab:40LTS

 

2).zabbix server 编译安装

yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel

useradd -s /sbin/nologin zabbix

cd /package/zabbix

tar -xzvf zabbix-4.0.23.tar.gz

cd /package/zabbix/zabbix-4.0.23

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

make && make install

 

3).验证zabbix-server

设置zabbix环境变量

vim /etc/profile

export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/

source /etc/profile

验证 是否可以使用zabbix命令:zabbix_server --version

 

4).启动zabbix-server

到mysql里面做数据初始化

登录mysql:    mysql -uroot -h 127.0.0.1 -pzabbixpwd

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd';

flush privileges;

set names utf8;

use zabbix

source /package/zabbix/zabbix-4.0.23/database/mysql/schema.sql

source /package/zabbix/zabbix-4.0.23/database/mysql/data.sql

source /package/zabbix/zabbix-4.0.23/database/mysql/images.sql

 

5).配置zabbix-server

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

先清空该文件里面的内容

LogFile=/usr/local/zabbix/zabbix_server.log

DBHost=127.0.0.1

DBName=zabbix

DBUser=zabbix

DBPassword=zabbixpwd

DBPort=3306

Timeout=30

AlertScriptsPath=/usr/local/zabbix/alertscripts

ExternalScripts=/usr/local/zabbix/exterscripts

LogSlowQueries=3000

 

6).启动zabbix-server

chown -R zabbix:zabbix /usr/local/zabbix

 

如果报错,说明你漏掉了创建zabbix账户这一步:   useradd -s /sbin/nologin zabbix

source /etc/profile

执行命令开启zabbix_server:   zabbix_server

查看后台进程:ps -ef | grep zabbix_server

查看zabbix监听端口:netstat -tulnp | grep zabbix

 

(六).配置zabbix-web

1.安装zabbix_web

mkdir /usr/local/nginx/html/zabbix

cp -a /package/zabbix/zabbix-4.0.23/frontends/php/* /usr/local/nginx/html/zabbix/

网页访问:    http://192.168.32.103/zabbix

 

2.初始化zabbix_web

发现php有报错

 

需要修改php的配置文件

vim /usr/local/php/etc/php.ini

post_max_size   = 18M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai  并把前面的注释去掉

把always_populate_raw_post_data = -1 前面的注释去掉即可

#保存退出

重启php-fpm:   systemctl restart php-fpm.service

 

3.配置zabbix连接mysql的页面配置

密码填写zabbix-mysql的密码:zabbixpwd

 

保持默认即可

 

 

这里有报错,需要修改下配置文件,按照报错页面上的两步来

先把页面上的文件下载下来,用编辑器打开

把文件内容粘贴到第二步的该路径下即可:

vim /usr/local/nginx/html/zabbix/conf/zabbix.conf.php

然后重新输入网址重载zabbix

 

4.登录zabbix

1.账号

账号:Admin

密码:zabbix

 

2.禁用zabbix server主机(安装zabbix server的这台机器)的监控  --看个人情况决定

 

4.更改Admin的密码,改成自己的密码

 

至此,源码安装zabbix到此结束,至于在被监控服务器安装zabbix agent就简单了,去搜索引擎搜索下就行了

来源:代码森林、zhiyimian(http://www.gtalent.cn/)