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