当前位置: 首页 > article >正文

centos7.9源码安装zabbix7.12,求赞

centos7.9源码安装zabbix7.12-全网独有

  • 3.CentOS7_Zabbix7.0LTS
    • 3.1.安装环境
    • 3.2.换成阿里源
    • 3.3.安装相关依赖包
      • 3.3.1.直接安装依赖
      • 3.3.2.编译安装-遇到问题01-net-snmp
      • 3.3.3.编译安装-遇到问题02-libevent
      • 3.3.4.编译安装-遇到问题03-安装openssl
    • 3.4.创建用户和组
    • 3.5.下载上传源码包
    • 3.6.源码编译安装zabbix-server、zabbix-agentd、zabbix-proxy
    • 3.7.创建软链接与环境变量
    • 3.8.授权
    • 3.9.修改 Zabbix Server 配置文件
    • 3.10.创建Zabbix Server的服务文件:star:
    • 3.11.修改 Zabbix Agented配置文件
    • 3.12.Zabbix agentd的服务文件:star:
    • 3.13.Zabbix proxy的服务文件:star:
    • 3.14.Zabbix Java Gateway的服务文件:star:
  • 4.yum源安装Mysql
    • 4.1.安装Mysql的yum源
    • 4.2.默认安装Mysql8.0
    • 4.3.安装mysql-server
    • 4.4.启动mysql-server
    • 4.5.获取mysql-server初始登陆的密码
    • 4.6.创建数据库
    • 4.7.初始化数据库
    • 4.8.验证数据库和相关表
  • 5.安装Apache服务
  • 6.安装第三方源-remi源
    • 6.1.获取源信息
    • 6.2.配置php和初始化登录WEB页面
    • 6.3.安装php依赖包
    • 6.4.查看php版本信息
    • 6.5.编辑配置文件
    • 6.6.测试
  • 6.配置zabbix
    • 6.1.安装中文包
    • 6.2.zabbix界面配置
  • 7.部分脚本
  • 创作不易,小小的支持一下吧!
  • endl-版权所有,转发请说出处,制作不易

3.CentOS7_Zabbix7.0LTS

里面的包已下载,在此处下载
https://wwqz.lanzouw.com/b00q0lr2mf
密码:bk2o

3.1.安装环境

系统:centos7.9
php版本:php8.2.20
mysql版本:mysql8.0.42
zabbix版本:7.0.12关闭系统防火墙
selinux

在这里插入图片描述

3.2.换成阿里源

备份源信息
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
下载centos源信息
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
安装epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

3.3.安装相关依赖包

3.3.1.直接安装依赖

[root@centos7-7 ~]# yum -y install gcc gcc-c++ unixODBC-devel httpd mysql-devel libcurl libcurl-devel  fping curl-devel libxml2 libxml2-devel  perl-ExtUtils-MakeMaker libssh2 libssh2-devel pcre2-devel openssl11-libs java-11-openjdk-devel

在这里插入图片描述

3.3.2.编译安装-遇到问题01-net-snmp

1️⃣ 其他注意事项:有可能遇到的问题及解决办法

Zabbix 7.0 需要 Net-SNMP 5.9 或更高版本,而 CentOS 7 默认的 net-snmp 是 5.7.x,太旧了。
net-snmp net-snmp-devel
[root@centos7-7 ~]# yum info net-snmp net-snmp-devel | egrep '^Name|^Version|^Release|^Arch'

在这里插入图片描述

2️⃣ 遇到的问题

下面就是遇到的问题:Zabbix 使用了 NET-SNMP 中的一些新宏(如 NETSNMP_CALLBACK_OP_SEC_ERROR、NETSNMP_CALLBACK_OP_RESEND),但你当前系统中安装的 net-snmp 版本太老,缺少这些定义,导致编译失败。
这些宏出现在 net-snmp 5.8 或更高版本中,而你当前使用的是:net-snmp 5.7.2-49.el7_9.4

在这里插入图片描述

[root@centos7-7 ~]# yum remove -y net-snmp net-snmp-devel

3️⃣ 下载源码包并解压:

cd /usr/local/src
wget https://sourceforge.net/projects/net-snmp/files/net-snmp/5.9.1/net-snmp-5.9.1.tar.gz
tar xf net-snmp-5.9.1.tar.gz
cd /usr/local/src/net-snmp-5.9.1

4️⃣ 编译安装

./configure --prefix=/usr/local/net-snmp --with-defaults使用所有 CPU 核心进行编译并安装
make -j$(nproc) && make install

5️⃣ 设置环境变量,让 Zabbix 使用新的 net-snmp

cat >/etc/profile.d/net-snmp.sh<<-eof
export PATH=/usr/local/net-snmp/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/net-snmp/lib:\$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/net-snmp/lib/pkgconfig:\$PKG_CONFIG_PATH
eofsource /etc/profile.d/net-snmp.sh

6️⃣ 验证

[root@centos7-7 net-snmp-5.9.1]# which snmpget
/usr/local/net-snmp/bin/snmpget
[root@centos7-7 net-snmp-5.9.1]# snmpget --version
NET-SNMP version: 5.9.1验证动态库是否找到
[root@centos7-7 net-snmp-5.9.1]# ldd $(which snmpget) | grep net-snmplibnetsnmp.so.40 => /usr/local/net-snmp/lib/libnetsnmp.so.40 (0x00007f7e3b342000)验证 pkg-config 配置
[root@centos7-7 net-snmp-5.9.1]# pkg-config --modversion netsnmp
5.9.1

3.3.3.编译安装-遇到问题02-libevent

1️⃣ 遇到问题

在这里插入图片描述

你当前问题的具体分析
event_base_get_num_events 是 libevent 2.1 以后才引入的函数
EVENT_BASE_COUNT_ADDED 是 libevent 2.1+ 中的宏解决方案总结:升级或安装 libevent 2.1+

2️⃣ 移除旧的安装包

yum -y remove libevent libevent-devel

3️⃣ 下载 libevent 2.1.x 源码

cd /usr/local/src/
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
可能下载失败,手动下载并上传tar xf libevent-2.1.12-stable.tar.gz
cd /usr/local/src/libevent-2.1.12-stable/

4️⃣ 编译安装

配置编译,开启 pkg-config 支持
./configure --prefix=/usr/local/libevent2 --disable-static --enable-shared使用所有 CPU 核心进行编译并安装
make -j$(nproc) && make install

5️⃣ 设置环境变量让编译器找到新版本 libevent

cat >/etc/profile.d/libevent.sh<<-eof
export CPPFLAGS="-I/usr/local/libevent2/include"
export LDFLAGS="-L/usr/local/libevent2/lib"
export LD_LIBRARY_PATH="/usr/local/libevent2/lib:\$LD_LIBRARY_PATH"
export CPPFLAGS="-I/usr/local/openssl/include -I/usr/local/libevent2/include"
export LDFLAGS="-L/usr/local/openssl/lib -L/usr/local/libevent2/lib"
eofsource /etc/profile.d/libevent.sh

6️⃣ 查看当前版本信息

[root@centos7-7 libevent-2.1.12-stable]# pkg-config --modversion libevent
2.1.12-stable

7️⃣ 让系统识别自定义 libevent 的库路径

添加库路径
[root@centos7-7 ~]# echo "/usr/local/libevent2/lib" > /etc/ld.so.conf.d/libevent2.conf
刷新库缓存
[root@centos7-7 ~]# ldconfig
验证
[root@centos7-7 ~]# ldconfig -p | grep libevent_corelibevent_core-2.1.so.7 (libc6,x86-64) => /usr/local/libevent2/lib/libevent_core-2.1.so.7libevent_core-2.0.so.5 (libc6,x86-64) => /lib64/libevent_core-2.0.so.5

3.3.4.编译安装-遇到问题03-安装openssl

官网旧版本:https://openssl-library.org/source/old/index.html

1️⃣ 下载源码包,并解压

cd /usr/local/src
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1k/openssl-1.1.1k.tar.gz
tar -xzf openssl-1.1.1k.tar.gz
cd /usr/local/src/openssl-1.1.1k安装依赖包
yum -y install zlib-devel.x86_64

2️⃣ 配置编译

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

3️⃣ 使用所有 CPU 核心进行编译并安装

make -j$(nproc) && make install

4️⃣ 查看当前版本新

[root@centos7-7 openssl-1.1.1k]# /usr/local/openssl/bin/openssl version
OpenSSL 1.1.1k  FIPS 25 Mar 2021

5️⃣ 导入环境变量

cat >/etc/profile.d/openssl.sh<<-eof
export PATH=/usr/local/openssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH
export CPPFLAGS="-I/usr/local/openssl/include"
export LDFLAGS="-L/usr/local/openssl/lib"
eofsource /etc/profile.d/openssl.sh

6️⃣ 配置动态库搜索路径(让系统找到它的 .so 库)

echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig

5️⃣ 验证结果

[root@centos7-7 openssl-1.1.1k]# which openssl
/usr/bin/openssl
[root@centos7-7 openssl-1.1.1k]# openssl version
OpenSSL 1.1.1k  25 Mar 2021

3.4.创建用户和组

getent group zabbix || groupadd zabbix && useradd -r -g zabbix -m -s /sbin/nologin zabbix

3.5.下载上传源码包

https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.12.tar.gz
[root@centos7-7 ~]# cd /usr/local/src/
[root@centos7-7 src]# ls
zabbix-7.0.12.tar.gz
[root@centos7-7 src]# tar xf zabbix-7.0.12.tar.gz
[root@centos7-7 src]# cd /usr/local/src/zabbix-7.0.12/
[root@centos7-7 zabbix-7.0.12]# mkdir -p /apps/zabbix

3.6.源码编译安装zabbix-server、zabbix-agentd、zabbix-proxy

自动配置脚本,所有依赖都指定路径,防止报错
time ./configure \--prefix=/apps/zabbix \--enable-server \--enable-agent \--enable-proxy \--enable-java \--with-agent \--with-mysql \--with-libpcre2 \--with-ssh2 \--with-libcurl \--with-libxml2 \--with-unixodbc \-with-libevent=/usr/local/libevent2 \--with-net-snmp=/usr/local/net-snmp \--with-ssl=/usr/local/openssl \CPPFLAGS="-I/usr/local/libevent2/include -I/usr/local/openssl/include -I/usr/local/net-snmp/include" \LDFLAGS="-L/usr/local/libevent2/lib -L/usr/local/openssl/lib -Wl,-rpath=/usr/local/openssl/lib -L/usr/local/net-snmp/lib"

编译安装

使用所有 CPU 核心进行编译并安装
time make -j$(nproc) && make install

如果编译报错执行此命令,清理环境

make distclean

3.7.创建软链接与环境变量

ln -s /apps/zabbix/sbin/* /usr/sbin/
ln -s /apps/zabbix/bin/* /usr/bin/

创建环境变量

echo 'PATH=/apps/zabbix/bin:$PATH' >/etc/profile.d/zabbix.sh
加载环境变量
source /etc/profile.d/zabbix.sh

3.8.授权

chown -R zabbix:zabbix /apps/zabbix/
[root@centos7-7 ~]# tree /apps/zabbix/
/apps/zabbix/
├── bin
│   ├── zabbix_get
│   ├── zabbix_js
│   └── zabbix_sender
├── etc
│   ├── zabbix_agentd.conf
│   ├── zabbix_agentd.conf.d
│   ├── zabbix_proxy.conf
│   ├── zabbix_proxy.conf.d
│   ├── zabbix_server.conf
│   └── zabbix_server.conf.d
├── lib
│   └── modules
├── sbin
│   ├── zabbix_agentd
│   ├── zabbix_java
│   │   ├── bin
│   │   │   └── zabbix-java-gateway-7.0.12.jar
│   │   ├── lib
│   │   │   ├── android-json-4.3_r3.1.jar
│   │   │   ├── logback-classic-1.5.16.jar
│   │   │   ├── logback-console.xml
│   │   │   ├── logback-core-1.5.16.jar
│   │   │   ├── logback.xml
│   │   │   └── slf4j-api-2.0.16.jar
│   │   ├── settings.sh
│   │   ├── shutdown.sh
│   │   └── startup.sh
│   ├── zabbix_proxy
│   └── zabbix_server
└── share├── man│   ├── man1│   │   ├── zabbix_get.1│   │   └── zabbix_sender.1│   └── man8│       ├── zabbix_agentd.8│       ├── zabbix_proxy.8│       └── zabbix_server.8└── zabbix├── alertscripts└── externalscripts18 directories, 24 files

3.9.修改 Zabbix Server 配置文件

[root@Rocky9-15:~]# grep '^[^#]' /apps/zabbix/etc/zabbix_server.conf
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
DBPassword=password
DBPort=3306
Timeout=4
LogSlowQueries=3000
# 允许访问统计信息的 IP 地址为 127.0.0.1(仅本机)
StatsAllowedIP=127.0.0.1,10.0.0.0/24
# 是否启用“全局脚本”功能,0 表示不启用
EnableGlobalScripts=0
cat >/apps/zabbix/etc/zabbix_server.conf<<-eof
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
DBPassword=password
DBPort=3306
Timeout=4
LogSlowQueries=3000
# 允许访问统计信息的 IP 地址为 127.0.0.1(仅本机)
StatsAllowedIP=127.0.0.1,10.0.0.0/24
# 是否启用“全局脚本”功能,0 表示不启用
EnableGlobalScripts=0
eof
grep -q '^JavaGateway=' /apps/zabbix/etc/zabbix_server.conf \&& sed -i 's/^JavaGateway=.*/JavaGateway=127.0.0.1/' /apps/zabbix/etc/zabbix_server.conf \|| echo 'JavaGateway=127.0.0.1' >> /apps/zabbix/etc/zabbix_server.confgrep -q '^JavaGatewayPort=' /apps/zabbix/etc/zabbix_server.conf \&& sed -i 's/^JavaGatewayPort=.*/JavaGatewayPort=10052/' /apps/zabbix/etc/zabbix_server.conf \|| echo 'JavaGatewayPort=10052' >> /apps/zabbix/etc/zabbix_server.confgrep -q '^StartJavaPollers=' /apps/zabbix/etc/zabbix_server.conf \&& sed -i 's/^StartJavaPollers=.*/StartJavaPollers=5/' /apps/zabbix/etc/zabbix_server.conf \|| echo 'StartJavaPollers=5' >> /apps/zabbix/etc/zabbix_server.conf
if grep -q '^JavaGateway=' /apps/zabbix/etc/zabbix_server.conf; thenecho "JavaGateway 配置项已存在"
elseecho "未设置 JavaGateway,现在添加"echo "JavaGateway=127.0.0.1" >> /apps/zabbix/etc/zabbix_server.conf
fi

3.10.创建Zabbix Server的服务文件⭐️

cat >/usr/lib/systemd/system/zabbix-server.service<<-eof
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target[Service]
Environment="LD_LIBRARY_PATH=/usr/local/libevent2/lib"
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_server -c /apps/zabbix/etc/zabbix_server.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl enable --now zabbix-server.service

3.11.修改 Zabbix Agented配置文件

sed -i.bak \
-e "s/Server=127.0.0.1/Server=10.0.0.7/" \
-e "s/Hostname=Zabbix server/Hostname=Zabbix server/" \
/apps/zabbix/etc/zabbix_agentd.conf[root@centos7-7 ~]# grep '^[^#]' /apps/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.7
ServerActive=127.0.0.1
Hostname=Zabbix server

3.12.Zabbix agentd的服务文件⭐️

cat >/usr/lib/systemd/system/zabbix-agent.service<<-eof
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_agentd -c /apps/zabbix/etc/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl enable --now zabbix-agent.service

3.13.Zabbix proxy的服务文件⭐️

cat >/usr/lib/systemd/system/zabbix-proxy.service<<-eof
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_proxy -c /apps/zabbix/etc/zabbix_proxy.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl enable --now zabbix-proxy.service

在这里插入图片描述

3.14.Zabbix Java Gateway的服务文件⭐️

创建日志文件

touch /tmp/zabbix_java.log
chown zabbix:zabbix /tmp/zabbix_java.log
chmod 644 /tmp/zabbix_java.log

创建服务文件

cat >/usr/lib/systemd/system/zabbix-java-gateway.service<<-eof
[Unit]
Description=Zabbix Java Gateway
After=network.target
Requires=network.target[Service]
Type=forking
PrivateTmp=true
User=zabbix
Group=zabbix
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk/
# 启动脚本(建议脚本内处理后台化与日志输出)
ExecStart=/apps/zabbix/sbin/zabbix_java/startup.sh
# 优雅关闭:脚本应支持 SIGTERM 捕获
ExecStop=/apps/zabbix/sbin/zabbix_java/shutdown.sh[Install]
WantedBy=multi-user.target
eof

启动服务

systemctl daemon-reload
systemctl enable --now zabbix-java-gateway.service

在这里插入图片描述

4.yum源安装Mysql

4.1.安装Mysql的yum源

# linux7 yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
rpm -ivh mysql80-community-release-el7-11.noarch.rpm

4.2.默认安装Mysql8.0

vi /etc/yum.repos.d/mysql-community.repo

4.3.安装mysql-server

yum -y install mysql-server

4.4.启动mysql-server

# 查看Mysql版本信息
mysql --version# 启动mysql
systemctl enable --now mysqld# 查看mysql状态信息
systemctl status mysqld

4.5.获取mysql-server初始登陆的密码

grep 'temporary password' /var/log/mysqld.logMYSQL_TEMP_PASS=$(grep 'temporary password' /var/log/mysqld.log | tail -1 | awk '{print $NF}')mysqladmin -uroot -p"(i(ALaf>_4VS" password 'Mysql.123456'
mysql -uroot -p"(i(ALaf>_4VS"
ALTER  USER  'root'@'localhost'  IDENTIFIED BY 'Mysql.123456';# 设置密码的验证强度等级
#Mysql 8.0 版本
# 将密码复杂度校验调整简单类型
# set global validate_password.policy=MEDIUM;
set global validate_password.policy=LOW;
# 设置密码最少位数限制为 4 位
set global validate_password.length=4;
# 查看 mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
ALTER  USER  'root'@'localhost'  IDENTIFIED BY 'password';

4.6.创建数据库

[root@centos7-7 ~]# mysql -uroot -p"password"创建 Zabbix 数据库
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
创建 Zabbix 用户
mysql> create user zabbix@'localhost' identified with mysql_native_password by 'password';
授予数据库权限
mysql> grant all privileges on zabbix.* to zabbix@'localhost';
创建 Zabbix 用户
mysql> create user zabbix@'10.0.0.%' identified with mysql_native_password by 'password';
授予数据库权限
mysql> grant all privileges on zabbix.* to zabbix@'10.0.0.%';
允许创建函数时不检查权限
mysql> set global log_bin_trust_function_creators = 1;
授予 SUPER 权限,不一定使用
mysql> GRANT SUPER ON *.* TO zabbix@'localhost';
mysql> GRANT SUPER ON *.* TO zabbix@'10.0.0.%';
mysql> FLUSH PRIVILEGES;
mysql> exit

4.7.初始化数据库

[root@centos7-7 ~]# ls /usr/local/src/zabbix-7.0.12/database/mysql/*.sql -1
/usr/local/src/zabbix-7.0.12/database/mysql/data.sql
/usr/local/src/zabbix-7.0.12/database/mysql/images.sql
/usr/local/src/zabbix-7.0.12/database/mysql/schema.sql
依次执行
mysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/schema.sql
mysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/images.sql
mysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/data.sql

4.8.验证数据库和相关表

[root@centos7-7 ~]# mysql -uzabbix -ppassword -D zabbix -e 'show tables;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| auditlog                   |
| autoreg_host               |
| changelog                  |
| conditions                 |
| config                     |
| config_autoreg_tls         |
| connector                  |
| connector_tag              |

5.安装Apache服务

yum -y install httpd
systemctl enable --now httpd mysqld

6.安装第三方源-remi源

6.1.获取源信息

官方网站:https://rpms.remirepo.net/enterprise/
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php82

6.2.配置php和初始化登录WEB页面

mkdir -p /var/www/html/zabbix
cp -a /usr/local/src/zabbix-7.0.12/ui/* /var/www/html/zabbix/chown -R zabbix:zabbix /var/www/html/zabbix

在这里插入图片描述

6.3.安装php依赖包

yum -y install php-gd php-xml php-cli php-json php-mysqlnd php php-ldap php-mbstring php-bcmath php-fpm php-opcache php-pear openssl-devel

在这里插入图片描述

6.4.查看php版本信息

查看php版本信息[root@centos7-7 ~]# php -v
PHP 8.2.20 (cli) (built: Jun  4 2024 13:22:51) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.20, Copyright (c) Zend Technologieswith Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

6.5.编辑配置文件

[root@centos7-7 ~]# vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
重启服务
[root@centos7-7 ~]# systemctl restart php-fpm.service
[root@centos7-7 ~]# systemctl enable php-fpm.service
[root@centos7-7 ~]# systemctl restart httpd.service

6.6.测试

[root@centos7-7 ~]# cat >/var/www/html/index.php<<-eof
<?php phpinfo();    
?>
eof

在这里插入图片描述

6.配置zabbix

6.1.安装中文包

安装中文包,再修改语言,否则无法选择
yum -y install kde-l10n-Chinese glibc-common

6.2.zabbix界面配置

在这里插入图片描述
在这里插入图片描述

用户名:zabbix
密码:password

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@centos7-7 ~]# vim /var/www/html/zabbix/conf/zabbix.conf.php
[root@centos7-7 ~]# cat /var/www/html/zabbix/conf/zabbix.conf.php
<?php
// Zabbix GUI configuration file.$DB['TYPE']     = 'MYSQL';
$DB['SERVER']     = 'localhost';
$DB['PORT']     = '3306';
$DB['DATABASE']     = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD']     = 'password';// Schema name. Used for PostgreSQL.
$DB['SCHEMA']     = '';// Used for TLS connection.
$DB['ENCRYPTION']   = false;
$DB['KEY_FILE']     = '';
$DB['CERT_FILE']    = '';
$DB['CA_FILE']      = '';
$DB['VERIFY_HOST']    = false;
$DB['CIPHER_LIST']    = '';// Vault configuration. Used if database credentials are stored in Vault secrets manager.
$DB['VAULT']      = '';
$DB['VAULT_URL']    = '';
$DB['VAULT_PREFIX']   = '';
$DB['VAULT_DB_PATH']    = '';
$DB['VAULT_TOKEN']    = '';
$DB['VAULT_CERT_FILE']    = '';
$DB['VAULT_KEY_FILE']   = '';
// Uncomment to bypass local caching of credentials.
// $DB['VAULT_CACHE']   = true;// Uncomment and set to desired values to override Zabbix hostname/IP and port.
// $ZBX_SERVER      = '';
// $ZBX_SERVER_PORT   = '';$ZBX_SERVER_NAME    = 'zabbix-server';$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;// Uncomment this block only if you are using Elasticsearch.
// Elasticsearch url (can be string if same url is used for all types).
//$HISTORY['url'] = [
//  'uint' => 'http://localhost:9200',
//  'text' => 'http://localhost:9200'
//];
// Value types stored in Elasticsearch.
//$HISTORY['types'] = ['uint', 'text'];// Used for SAML authentication.
// Uncomment to override the default paths to SP private key, SP and IdP X.509 certificates, and to set extra settings.
//$SSO['SP_KEY']      = 'conf/certs/sp.key';
//$SSO['SP_CERT']     = 'conf/certs/sp.crt';
//$SSO['IDP_CERT']    = 'conf/certs/idp.crt';
//$SSO['SETTINGS']    = [];// If set to false, support for HTTP authentication will be disabled.
// $ALLOW_HTTP_AUTH = true;

在这里插入图片描述
在这里插入图片描述

Zabbix 前端已经就绪!第一次登录, 默认的用户名是 Admin,密码是zabbix

在这里插入图片描述

修改PHP文件,防止重复安装

mv /var/www/html/zabbix/setup.php /var/www/html/zabbix/setup.php.bak

再次登录

http://10.0.0.7/zabbix/

在这里插入图片描述

7.部分脚本

需要提前准备安装包到/usr/local/src/目录下

里面的包已下载,在此处下载
https://wwqz.lanzouw.com/b00q0lr2mf
密码:bk2o

在这里插入图片描述

#!/bin/bash
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repoyum -y install gcc gcc-c++ unixODBC-devel httpd mysql-devel libcurl libcurl-devel  fping curl-devel libxml2 libxml2-devel  perl-ExtUtils-MakeMaker libssh2 libssh2-devel pcre2-devel openssl11-libs java-11-openjdk-devel# net-snmp
yum info net-snmp net-snmp-devel | egrep '^Name|^Version|^Release|^Arch'
yum remove -y net-snmp net-snmp-devel
cd /usr/local/src
tar xf net-snmp-5.9.1.tar.gz
cd /usr/local/src/net-snmp-5.9.1
./configure --prefix=/usr/local/net-snmp --with-defaults
make -j$(nproc) && make install
cat >/etc/profile.d/net-snmp.sh<<-eof
export PATH=/usr/local/net-snmp/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/net-snmp/lib:\$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/net-snmp/lib/pkgconfig:\$PKG_CONFIG_PATH
eof
source /etc/profile.d/net-snmp.sh
which snmpget
snmpget --version
ldd $(which snmpget) | grep net-snmp
pkg-config --modversion netsnmp# libevent
yum -y remove libevent libevent-devel
cd /usr/local/src/
tar xf libevent-2.1.12-stable.tar.gz
cd /usr/local/src/libevent-2.1.12-stable/
./configure --prefix=/usr/local/libevent2 --disable-static --enable-shared
make -j$(nproc) && make install
cat >/etc/profile.d/libevent.sh<<-eof
export CPPFLAGS="-I/usr/local/libevent2/include"
export LDFLAGS="-L/usr/local/libevent2/lib"
export LD_LIBRARY_PATH="/usr/local/libevent2/lib:\$LD_LIBRARY_PATH"
export CPPFLAGS="-I/usr/local/openssl/include -I/usr/local/libevent2/include"
export LDFLAGS="-L/usr/local/openssl/lib -L/usr/local/libevent2/lib"
eof
source /etc/profile.d/libevent.sh
pkg-config --modversion libevent
echo "/usr/local/libevent2/lib" > /etc/ld.so.conf.d/libevent2.conf
ldconfig
ldconfig -p | grep libevent_core# openssl
cd /usr/local/src
tar -xzf openssl-1.1.1k.tar.gz
cd /usr/local/src/openssl-1.1.1k
yum -y install zlib-devel.x86_64
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make -j$(nproc) && make install
/usr/local/openssl/bin/openssl version
cat >/etc/profile.d/openssl.sh<<-eof
export PATH=/usr/local/openssl/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH
export CPPFLAGS="-I/usr/local/openssl/include"
export LDFLAGS="-L/usr/local/openssl/lib"
eof
source /etc/profile.d/openssl.sh
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
ldconfig
which openssl
openssl version# zabbix
getent group zabbix || groupadd zabbix && useradd -r -g zabbix -m -s /sbin/nologin zabbix
cd /usr/local/src/
tar xf zabbix-7.0.12.tar.gz
cd /usr/local/src/zabbix-7.0.12/
mkdir -p /apps/zabbix
time ./configure \--prefix=/apps/zabbix \--enable-server \--enable-agent \--enable-proxy \--enable-java \--with-agent \--with-mysql \--with-libpcre2 \--with-ssh2 \--with-libcurl \--with-libxml2 \--with-unixodbc \-with-libevent=/usr/local/libevent2 \--with-net-snmp=/usr/local/net-snmp \--with-ssl=/usr/local/openssl \CPPFLAGS="-I/usr/local/libevent2/include -I/usr/local/openssl/include -I/usr/local/net-snmp/include" \LDFLAGS="-L/usr/local/libevent2/lib -L/usr/local/openssl/lib -Wl,-rpath=/usr/local/openssl/lib -L/usr/local/net-snmp/lib"
time make -j$(nproc) && make install
ln -s /apps/zabbix/sbin/* /usr/sbin/
ln -s /apps/zabbix/bin/* /usr/bin/
echo 'PATH=/apps/zabbix/bin:$PATH' >/etc/profile.d/zabbix.sh
source /etc/profile.d/zabbix.sh
chown -R zabbix:zabbix /apps/zabbix/
tree /apps/zabbix/cat >/apps/zabbix/etc/zabbix_server.conf<<-eof
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
DBPassword=password
DBPort=3306
Timeout=4
LogSlowQueries=3000
# 允许访问统计信息的 IP 地址为 127.0.0.1(仅本机)
StatsAllowedIP=127.0.0.1,10.0.0.0/24
# 是否启用“全局脚本”功能,0 表示不启用
EnableGlobalScripts=0
eof
cat >/usr/lib/systemd/system/zabbix-server.service<<-eof
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target[Service]
Environment="LD_LIBRARY_PATH=/usr/local/libevent2/lib"
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_server -c /apps/zabbix/etc/zabbix_server.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl enable --now zabbix-server.servicesed -i.bak \
-e "s/Server=127.0.0.1/Server=10.0.0.7/" \
-e "s/Hostname=Zabbix server/Hostname=Zabbix server/" \
/apps/zabbix/etc/zabbix_agentd.conf
cat >/usr/lib/systemd/system/zabbix-agent.service<<-eof
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_agentd -c /apps/zabbix/etc/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eofsystemctl daemon-reload
systemctl enable --now zabbix-agent.servicecat >/usr/lib/systemd/system/zabbix-proxy.service<<-eof
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_proxy -c /apps/zabbix/etc/zabbix_proxy.conf
ExecStop=/bin/kill -SIGTERM \$MAINPID
RestartSec=10s
User=zabbix
Group=zabbix[Install]
WantedBy=multi-user.target
eofsystemctl daemon-reload
systemctl enable --now zabbix-proxy.servicetouch /tmp/zabbix_java.log
chown zabbix:zabbix /tmp/zabbix_java.log
chmod 644 /tmp/zabbix_java.log
cat >/usr/lib/systemd/system/zabbix-java-gateway.service<<-eof
[Unit]
Description=Zabbix Java Gateway
After=network.target
Requires=network.target[Service]
Type=forking
PrivateTmp=true
User=zabbix
Group=zabbix
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk/
# 启动脚本(建议脚本内处理后台化与日志输出)
ExecStart=/apps/zabbix/sbin/zabbix_java/startup.sh
# 优雅关闭:脚本应支持 SIGTERM 捕获
ExecStop=/apps/zabbix/sbin/zabbix_java/shutdown.sh[Install]
WantedBy=multi-user.target
eof
systemctl daemon-reload
systemctl enable --now zabbix-java-gateway.servicewget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
rpm -ivh mysql80-community-release-el7-11.noarch.rpm
yum -y install mysql-server
mysql --version
systemctl enable --now mysqld
systemctl status mysqld
# 1. 获取 MySQL 安装生成的临时密码
MYSQL_TEMP_PASS=$(grep 'temporary password' /var/log/mysqld.log | tail -1 | awk '{print $NF}')
# 2. 定义新密码(你可以改成自己想要的)
NEW_PASS="Mysql.123456"
mysqladmin -uroot -p"${MYSQL_TEMP_PASS}" password "${NEW_PASS}"mysql -uroot -p"${NEW_PASS}" --connect-expired-password <<EOF
-- 设置密码策略为 LOW
SET GLOBAL validate_password.policy=LOW;-- 设置密码最小长度为 4
SET GLOBAL validate_password.length=4;-- 再次修改密码为更简单的密码(如果你想)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';-- 查看当前密码策略设置
SHOW VARIABLES LIKE 'validate_password%';
EOF# 定义变量
MYSQL_ROOT_PASS="password"
ZABBIX_DB="zabbix"
ZABBIX_USER_PASS="password"# 登录 MySQL 执行批量 SQL 语句
mysql -uroot -p"${MYSQL_ROOT_PASS}" <<EOF-- 创建 Zabbix 数据库
CREATE DATABASE IF NOT EXISTS ${ZABBIX_DB} CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;-- 创建本地用户
CREATE USER IF NOT EXISTS 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY '${ZABBIX_USER_PASS}';-- 授予本地用户权限
GRANT ALL PRIVILEGES ON ${ZABBIX_DB}.* TO 'zabbix'@'localhost';-- 创建远程用户
CREATE USER IF NOT EXISTS 'zabbix'@'10.0.0.%' IDENTIFIED WITH mysql_native_password BY '${ZABBIX_USER_PASS}';-- 授予远程用户权限
GRANT ALL PRIVILEGES ON ${ZABBIX_DB}.* TO 'zabbix'@'10.0.0.%';-- 设置允许创建函数不校验安全
SET GLOBAL log_bin_trust_function_creators = 1;-- 可选:授予 SUPER 权限(某些环境可能不需要)
GRANT SUPER ON *.* TO 'zabbix'@'localhost';
GRANT SUPER ON *.* TO 'zabbix'@'10.0.0.%';-- 应用权限变更
FLUSH PRIVILEGES;EOFmysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/schema.sql
mysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/images.sql
mysql -uzabbix -ppassword -D zabbix < /usr/local/src/zabbix-7.0.12/database/mysql/data.sqlmysql -uzabbix -ppassword -D zabbix -e 'show tables;'ps -ef | grep zabbix

创作不易,小小的支持一下吧!

请添加图片描述

endl-版权所有,转发请说出处,制作不易

http://www.lryc.cn/news/2403762.html

相关文章:

  • 亚远景科技助力东风日产通过ASPICE CL2评估
  • Go语言进阶④:Go的数据结构和Java的有啥不一样
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • IDEA 打开文件乱码
  • 第2章:Neo4j安装与配置
  • Shell 命令及运行原理 + 权限的概念(7)
  • 抽奖系统核心——抽奖管理
  • Android 蓝牙通信
  • 任务调度器-关于中心化调度 vs 去中心化调度的核心区别
  • 二、【ESP32开发全栈指南:ESP32 GPIO深度使用】
  • 力扣刷题(第四十九天)
  • 机器学习:集成学习概念和分类、随机森林、Adaboost、GBDT
  • 基于J2EE架构的在线考试系统设计与实现【源码+文档】
  • tpc udp http
  • 联想拯救者R9000P 网卡 Realtek 8852CE Ubuntu/Mint linux 系统睡眠后,无线网卡失效
  • Python训练营打卡 Day46
  • 解决微软应用商店 (Microsoft store) 打不开,无网络连接的问题!
  • 《影像引导下骨盆创伤手术的术前骨折复位规划:基于学习的综合流程》|文献速递-深度学习医疗AI最新文献
  • 如何使用Webhook触发器,在 ONLYOFFICE 协作空间构建智能工作流
  • 跟我学c++中级篇——理解类型推导和C++不同版本的支持
  • 什么是DevOps智能平台的核心功能?
  • Windows账户管理,修改密码,创建帐户...(无需密码)
  • 软件功能模块归属论证方法
  • 【Java后端基础 005】ThreadLocal-线程数据共享和安全
  • 【C语言】C语言经典小游戏:贪吃蛇(下)
  • NTT印地赛车:数字孪生技术重构赛事体验范式,驱动观众参与度革命
  • 30.【新型数据架构】-区块链数据架构
  • 使用docker 安装Redis 带配置文件(x86和arm)版本
  • 在CSDN发布AWS Proton解决方案:实现云原生应用的标准化部署
  • 小白的进阶之路系列之十----人工智能从初步到精通pytorch综合运用的讲解第三部分