zabbix4.4 最高可使用PHP7.4,推荐在PHP7.2 ~ 7.4版本之间。
openeuler系统的源,除了SP1的源有PHP7.2版本之外,其它SP2甚至更高,都是PHP8.0及以上的版本。
一、替换当前系统repo文件为SP1的仓库
# 切换到yum.repos.d目录下
cd /etc/yum.repos.d/
# 注释metalink选项(有baseurl就够了)
sed -i '/^metalink/ s/^/#/' openEuler.repo
# 替换仓库地址为2003SP1的仓库
sed -i 's/SP4/SP1/g;/.*main/ s/main\///g' openEuler.repo
二、添加Nginx官方源
cat>/etc/yum.repos.d/nginx.repo<<-'EOF'
[nginx-stable]
name=Nginx Stable Repo
baseurl=https://nginx.org/packages/centos/8/$basearch/
enabled=1
gpgcheck=0
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF
# 更新软件列表
yum clean all && yum makecache
注:官方源安装的Nginx默认开启IPV6监听,如果系统关闭了ipv6功能,则会导致启动时报错。
三、安装Nginx+MySQL+PHP
yum install -y \
php-cli \
php-common \
php-fpm \
php-bcmath \
php-gd \
php-mbstring \
php-mysqlnd \
php-opcache \
php-xml \
php-ldap \
php-snmp \
mariadb-devel \
mariadb-server \
nginx-1.20.2
四、配置Nginx
#1. 禁用默认的nginx-default.conf配置文件
rename .conf .conf.bak /etc/nginx/conf.d/*.conf
#2. 写入自己的nginx配置文件
cat>/etc/nginx/conf.d/zabbix.conf<<-'EOF'
server {
listen 80;
server_name _;
root /usr/share/nginx/html/zabbix;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
#3. 添加zabbix网站存放目录
mkdir -p /usr/share/nginx/html/zabbix
#4. 启动nginx
systemctl enable --now nginx
五、配置MySQL
#1. 启动数据库
systemctl enable --now mariadb
#2. 安全初始化数据库(需手动确认)
mysql_secure_installation
#3. 创建zabbix数据库
echo "create database zabbix character set utf8 collate utf8_bin;" | mysql -uroot
echo "create user zabbix@'localhost' identified by '0.com.cn';" | mysql -uroot
echo "grant all on zabbix.* to zabbix@'localhost';" | mysql -uroot
六、配置PHP
#1. 修改PHP启动用户为nginx
sed -i '/^user/ s@apache@nginx@g;' /etc/php-fpm.d/www.conf
sed -i '/^group/ s@apache@nginx@g;' /etc/php-fpm.d/www.conf
#2. 修改php选项
1. PHP默认最大的post请求默认值是8M,zabbix需要16M,修改它
2. PHP默认超时时间是30s,zabbix需要300s,修改它
3. PHP处理客户请求时可接受输入数据最大的时间默认是60s,zabbix需要300s,修改它
4. PHP默认未开放时区的参数,这里需要添加 Asia/Shanghai 时区参数,修改它
sed -Ei 's/^(max_execution_time\s*=\s*).*/\1300/' /etc/php.ini
sed -Ei 's/^(max_input_time\s*=\s*).*/\1300/' /etc/php.ini
sed -Ei 's/^(post_max_size\s*=\s*).*/\116M/' /etc/php.ini
sed -Ei 's/.*(date.timezone\s*=\s*).*/\1 Asia\/Shanghai/' /etc/php.ini
#3. 检查是否修改成功
egrep -n '^(max_[ei]|date.timezone|post_max)' /etc/php.ini
#4. 修改默认监听方式
(默认采用的监听方法是套接字。如果想要替换为IP+Port的方式,需要进行修改配置文件)
sed -i '/^listen/{s/^/;/;p;s/;listen.*/listen = 127.0.0.1:9000/}' /etc/php-fpm.d/www.conf
#5. 添加会话保持功能(如果不做,会导致500错误)
(此目录会自动创建,但是用户和组默认是root:apache,需要改为nginx)
mkdir /var/lib/php/session -p
chmod 755 /var/lib/php/session
chown nginx.nginx /var/lib/php/session
#6. 启动php-fpm
systemctl enable --now php-fpm
七、配置zabbix4.4源码包&RPM包
源码包只需要提取里面的UI界面文件
7.1 部署Zabbix Server后台服务
# 创建程序存放目录,并下载安装 4.4 源码包/RPM包
mkdir -p /server/tools/zabbix &&\
cd /server/tools/zabbix/ &&\
wget https://cdn.zabbix.com/zabbix/sources/oldstable/4.4/zabbix-4.4.9.tar.gz &&\
yum install -y \
https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-server-mysql-4.4.9-1.el8.x86_64.rpm
# 导入sql文件到数据仓库
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p0.com.cn zabbix
# 修改zabbix server配置文件,让其可连接数据仓库
sed -i '/DBHost=/{p;s/^# //}' /etc/zabbix/zabbix_server.conf
sed -Ei '/DBPassword=/{p;s/^# //;s/(.*)/\10.com.cn/}' /etc/zabbix/zabbix_server.conf
sed -Ei '/DBPort=/{p;s/^# //;s/(.*)/\13306/}' /etc/zabbix/zabbix_server.conf
# 检查是否正确
grep -n '^DB.*' /etc/zabbix/zabbix_server.conf
92:DBHost=localhost
101:DBName=zabbix
117:DBUser=zabbix
126:DBPassword=0.com.cn
142:DBPort=3306
# 启动 zabbix server 服务
systemctl enable --now zabbix-server
7.2 部署Zabbix UI服务
# 解压压缩包中的内容到指定目录下
tar -xf zabbix-4.4.9.tar.gz \
-C /usr/share/nginx/html/zabbix/ \
--strip-components=3 'zabbix-4.4.9/frontends/php'
# 设定此目录的属主属组为nginx
chown -R nginx:nginx /usr/share/nginx/html/zabbix
八、Web界面配置Zabbix
至此,Server 端安装成功。