部署步骤:
一、准备工作
关闭selinux和防火墙
1. vi /etc/selinux/config 或
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled’ /etc/selinux/config
2. systemctl stop firewalld systemctl disable firewalld 或
service iptables stop chkconfig iptables off
二、安装mysql数据库
1. 卸载mysql和mariadb相关软件并创建mysql用户
rpm -e --nodeps mariadb-libs
useradd -d /home/mysql mysql
2.到官网下载rpm包
# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-community-server
3.启动mysql 进入设置root密码
systemctl start mysqld.service
sudo grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
mysql> alter user 'root'@'localhost' identified by 'Galaxy123..';
mysql> flush privileges;
或
mysqladmin -uroot -p'xxxx' password 'xxxxx'
4.创建zabbix数据库和zabbix用户并赋予权限
mysql> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'xxxxxx';
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit;
三、导入zabbix数据
1.tar xf zabbix-5.0.13.tar.gz
2.cd ./zabbix-5.0.13/database/mysql
3.mysql -uzabbix -p zabbix < ./schema.sql
4.mysql -uzabbix -p zabbix < ./images.sql
5.mysql -uzabbix -p zabbix < ./data.sql
或
mysql>use zabbix;
mysql>source /opt/zabbix-5.0.3/database/mysql/schema.sql
mysql>source /opt/zabbix-5.0.3/database/mysql/data.sql
mysql>source /opt/zabbix-5.0.3/database/mysql/images.sql
四、编译安装zabbix-server
1.安装zabbix的支持功能依赖包
yum install -y gcc mysql-community-devel net-snmp-devel libxml2-devel unixODBC-devel libcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel libevent-devel pcre-devel
yum install -y fping
2.安装java环境
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
3.编译安装
cd /opt/zabbix-5.0.13/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-libcurl --with-libxml2 --with-openipmi --with-net-snmp --with-ssh2 --with-unixodbc --with-openssl --enable-java
4.make && make install
5.修改server配置文件
LogFile=/usr/local/zabbix/log/zabbix_server.log
LogFileSize=5
PidFile=/usr/local/zabbix/zabbix_server.pid
DBHost=192.0.0.38
DBName=zabbix
DBUser=zabbix
DBPassword=
AllowRoot=1
6.修改agent配置文件
PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogType=file
LogFile=/usr/local/zabbix/log//zabbix_agentd.log
Server=
ServerActive=
Hostname=
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
AllowRoot=1
UnsafeUserParameters=1
7.mkdir /usr/local/zabbix/log
五、编译安装Nginx
1. tar xf nginx-1.20.1.tar.gz
2. cd ./nginx-1.20.1
3.安装依赖包
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
4.编译安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre
### http_ssl_module支持https;stub_status_module支持监控状态
5.make && make install
6.修改nginx配置文件使其支持php-fpm
server {
1.listen 80; ###端口可改可不改
2.server_name localhost; ###改成本机ip
3.index index.html index.htm index.php; ###添加index.php
4.location /nginx_status {
stub_status on;
} ###添加该字段开启nginx_status模块,监控nginx需要
5.#location ~ \.php$ {
# root html; ###/usr/local/nginx/html
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# include fastcgi_params;
#}
###取消注释该部分,修改fastcgi_param字段:$document_root$fastcgi_script_name
六、编译安装PHP
1.tar xf php-7.3.29.tar.gz
2.cd php-7.3.29
3.安装依赖包
yum install -y libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel freetype-devel gd openldap-devel openssl-devel
4.编译安装
./configure --prefix=/usr/local/php --enable-fpm --enable-mbstring --with-openssl --with-mysqli --with-mysql-sock --with-gd --enable-pdo --with-pdo-mysql --with-gettext --enable-sockets --enable-bcmath --enable-xml --with-bz2 --with-freetype-dir=/usr/local --with-libxml-dir=/usr/local --with-zlib --with-curl --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-ldap --with-libdir=lib64
### --enable-fpm启用php-fpm . --with-mysql和 --enable-gd-native-ttf 在PHP7.3中弃用 --with-pdo-mysql代替--with-mysql, --enable-gd-native-ttf参数弃用无影响
#PHP7.4版本编译报错configure: WARNING: unrecognized options: --with-gd, --with-freetype-dir, --with-libxml-dir, --with-jpeg-dir, --with-png-dir 原因是这几个参数在7.4版本中不支持了
#解决方法: 换用这三个参数即可 --enable-gd --with-jpeg --with-freetype
5.make && make install
6.修改php配置文件
cd /opt/php-7.3.29
cp php.ini-production /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini
date.timezone = Asia/Shanghai
post_max_size = 20M
upload_max_filesize = 20M
max_execution_time = 300
max_input_time = 300
memory_limit = 1024M
7.
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
七、拷贝zabbix前端到nginx默认web目录
cd /opt/zabbix-5.0.13/
cp -a ui/* /usr/local/nginx/html/
编写systemd服务启动文件,方便管理
vi /usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
Type=forking
PIDFile=/usr/local/zabbix/zabbix_server.pid
Restart=on-failure
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx # 描述服务
After=network.target # 描述服务类型
[Service]
Type=forking # 后台运行
ExecStart=/usr/local/nginx/sbin/nginx # 运行
ExecReload=/usr/local/nginx/sbin/nginx -s reload # 重启
ExecStop=/usr/local/nginx/sbin/nginx -s quit # 停止
PrivateTmp=true # 给服务分配独立的临时空间
[Install]
WantedBy=multi-user.target # 多用户
vi /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.targe
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target
vi /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf"
Type=forking
PIDFile=/usr/local/zabbix/zabbix_agentd.pid
Restart=on-failure
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
#注意事项 mysql 8.0版本 问题
#在MySQL 8.0.11中,caching_sha2_password是默认的身份验证插件,而不是以往的
mysql_native_password。有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性
的信息,请参阅caching_sha2_password作为首选的身份验证插件。
(翻译自https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html)
从8.0.11版本起,不再像mysql5.7及以前版本那样,设置用户密码时默认的验证方式为
caching_sha2_password,如果发现升级mysql8.0.11后原有的程序不能连接mysql,
可迅速在mysql command line client客户端用下面的命令设置成mysql5.7及以前版本的密码验证方式,
同时MYSQL8.0.11下修改密码的方式与原先也不大一样,原先的部分修改密码的命令在mysql8.0.11下不能使用。
> use mysql
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
> FLUSH PRIVILEGES;
二,mysql 安装了最新版本8.0.11后创建用户并授权后,授权的用户连接数据库提示
The server requested authentication method unknown to the client
查阅一些相关的资料后发现是由于新版本的mysql账号密码解锁机制不一致导致的
解决办法:
删除创建的用户和授权,
找到mysql配置文件并加入
default_authentication_plugin=mysql_native_password
变为原来的验证方式,然后从新创建用户并授权即可
或
mysql -uroot -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';