Zabbix6.0.31 LTS CentOS7 LNMP离线编译安装脚本

  1. Zabbix6.0 LTS 目前最新版Zabbix6.0.31
  2. 离线包123盘下载
  3. 在CentOS7 2009上测试通过
  4. 将package.tar.gz和本脚本放置在同一目录
  5. 使用root用户运行本脚本
  6. 离线编译安装脚本,数据库密码在脚本中定义修改
#!/bin/bash

# 1. 在CentOS7 2009上测试通过
# 2. 将package.tar.gz和本脚本放置在同一目录
# 3. 使用root用户运行本脚本
# 4. 安装完成, 登录界面后, 手动设置成中文和正确的时区

############################   定义变量   ############################
db_password=China123
eth_name=eth0
############################   定义变量   ############################
dir=$(pwd)
echo 关闭selinux和firewalld防火墙
systemctl stop firewalld;systemctl disable firewalld;setenforce 0;sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
echo 解压软件包...
cd $dir
tar zxvf package.tar.gz
cd package/mysql
echo 安装mysql...
rpm -ivh mysql-community-* --force --nodeps
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
 
cat > /etc/my.cnf <<'EOF'
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
port=3306
lower_case_table_names=1
max_connections=500
EOF

systemctl restart mysqld # 需要关闭selinux,否则可能启动失败

echo 初始化数据库
password=`cat /var/log/mysqld.log | grep password | awk '{print $NF}'`
cat > $dir/db_init.txt <<-EOF
alter user 'root'@'localhost' identified by '2wsx#EDC';
set global validate_password.policy=0;
set global validate_password.length=4;
set global validate_password.mixed_case_count=0;
alter user 'root'@'localhost' identified by '$db_password';
flush privileges;
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified with mysql_native_password by '$db_password';
grant all privileges on zabbix.* to 'zabbix'@'localhost';
flush privileges;
EOF
mysql -uroot -p$password < $dir/db_init.txt --connect-expired-password

systemctl restart mysqld
systemctl status mysqld
 
echo 安装nginx...
rpm -Uvh $dir/package/nginx/pcre2-10.23-2.el7.x86_64.rpm
rpm -Uvh $dir/package/nginx/nginx-1.24.0-1.el7.ngx.x86_64.rpm
mkdir /data/web
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
cat > /etc/nginx/conf.d/zabbix.conf <<'EOF'
server {
    listen       80;
    server_name  localhost;
    root         /data/web;
    location / {
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
        #root    /data/web;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
EOF
 
systemctl restart nginx
systemctl status nginx

echo 安装php72W...
rpm -Uvh $dir/package/epel-release/epel-release-7-11.noarch.rpm
rpm -Uvh $dir/package/webtatic-release/webtatic-release.rpm
rpm -Uvh $dir/package/php/mpfr-3.1.1-4.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libmpc-1.0.1-3.el7.x86_64.rpm
rpm -Uvh $dir/package/php/cpp-4.8.5-44.el7.x86_64.rpm
rpm -Uvh $dir/package/php/glibc-* --force --nodeps
rpm -Uvh $dir/package/php/kernel-headers-3.10.0-1160.83.1.el7.x86_64.rpm 
rpm -Uvh $dir/package/php/libX11-common-1.6.7-4.el7_9.noarch.rpm
rpm -Uvh $dir/package/php/libXau-1.0.8-2.1.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libxcb-1.13-1.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libX11-1.6.7-4.el7_9.x86_64.rpm
rpm -Uvh $dir/package/php/libXpm-3.5.12-1.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libargon2-20161029-3.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libjpeg-turbo-1.2.90-8.el7.x86_64.rpm
rpm -Uvh $dir/package/php/libwebp-0.3.0-10.el7_9.x86_64.rpm
rpm -Uvh $dir/package/php/libxslt-1.1.28-6.el7.x86_64.rpm
rpm -Uvh $dir/package/php/php72w-*
rpm -Uvh $dir/package/php/libstdc++-devel-4.8.5-44.el7.x86_64.rpm 
rpm -Uvh $dir/package/php/gcc-*

sed -i 's/max_execution_time = 30/max_execution_time = 300/' /etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 16M/' /etc/php.ini
 
cd /data/web/
cat > index.php <<'EOF'
<?php
phpinfo();
?>
EOF
 
systemctl restart php-fpm
systemctl status php-fpm
 
echo 安装zabbix...
groupadd zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix
rpm -Uvh $dir/package/zabbix-server/yilai/* --force --nodeps
cd $dir/package/zabbix-server/zabbix-6.0.31
export CFLAGS="-std=gnu99"
bash ./configure --sysconfdir=/etc/zabbix --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre
make install
 
sed -i 's/# ListenPort=10051/ListenPort=10051/' /etc/zabbix/zabbix_server.conf
sed -i 's/# DBHost=localhost/DBHost=localhost/' /etc/zabbix/zabbix_server.conf
sed -i "s/# DBPassword=/DBPassword=$db_password/" /etc/zabbix/zabbix_server.conf
 
grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf

echo 开始导入zabbix数据...
mysql -uroot -p$db_password --connect-expired-password <<'EOF'
set global log_bin_trust_function_creators = 1;
EOF
mysql -uzabbix -p$db_password zabbix < $dir/package/zabbix-server/zabbix-6.0.31/database/mysql/schema.sql
mysql -uzabbix -p$db_password zabbix < $dir/package/zabbix-server/zabbix-6.0.31/database/mysql/images.sql
mysql -uzabbix -p$db_password zabbix < $dir/package/zabbix-server/zabbix-6.0.31/database/mysql/data.sql

mysql -uroot -p$db_password --connect-expired-password <<'EOF'
set global log_bin_trust_function_creators = 0;
EOF
cp -rp -f $dir/package/zabbix-server/zabbix-6.0.31/ui/* /data/web/
 
cat > /usr/lib/systemd/system/zabbix-server.service <<'EOF'
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
EOF
 
cp /data/web/conf/zabbix.conf.php.example /data/web/conf/zabbix.conf.php
chown zabbix:zabbix /data/web/conf/zabbix.conf.php
sed -i '/PASSWORD/d' /data/web/conf/zabbix.conf.php
sed -i "/.*USER*./a\$DB[\'PASSWORD\']                 = \'$db_password\';" /data/web/conf/zabbix.conf.php

# 解决图形下中文乱码问题
cp $dir/package/zabbix-server/font/simhei.ttf /data/web/assets/fonts
sudo sed -i 's/DejaVuSans/simhei/g' /data/web/include/defines.inc.php
# 设置系统时区                                                                                                          timedatectl set-timezone Asia/Shanghai        

systemctl daemon-reload
systemctl restart mysqld
systemctl restart nginx
systemctl restart zabbix-server
systemctl enable mysqld nginx php-fpm zabbix-server
systemctl status zabbix-server
server_ip=`ip -brief address show $eth_name | perl -F'\s+|\/' -nlae 'print $F[2]'`
echo url:http:/$server_ip/ username:Admin password:zabbix
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liujinbao8000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值