话不多说,直接开始
服务器: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版本中
发现没有makefile文件,无法执行make && make installa操作,如果编译环境没有报错了,还是无法执行make命令,可以先更新下yum(yum update),再加上参数 --disable-fileinfo
再次执行./configure命令,发现mysql有报错,需要先安装mysql,然后再配置中加上 --with-mysqli=/usr/local/mysql/bin/mysql_config 已在上述编译环境中增加
执行命令: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)
(四).验证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/)