注:CentOS7 源码安装Zabbix7时由于OpenSSL兼容性问题无法安装,本人已尝试过多个OpenSSL版本去编译Zabbix7,但始终不成功,要用OpenSSL是因为要用到共享密钥。
下载地址:https://www.zabbix.com/download
开源地址:https://github.com/zabbix/zabbix
官方文档:https://www.zabbix.com/documentation/current/en
Go 下载地址:https://go.dev/dl/
Zabbix使用手册(推荐):https://www.bookstack.cn/read/zabbix-6.0-zh/f6322a7bda5cdadc.md
[root@localhost /root]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost /root]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS 7.9
>= 8.0.30
>= 11
>= 1.21
>= 7.4.0
Nginx
或者 Apache
使用系统自带的
OpenSSL 1.0.2k-fips
版本即可。
这里安装的版本为 1.8.0_421
,可参考我博客中相关文档。
这里安装的版本为 8.0.34
,,可参考我博客中相关文档。
Zabbix仅支持 utf8_bin、utf8mb3_bin、utf8mb4_bin排序规则。
修改MySQL的主配置文件my.cnf
:
# my.cnf配置
vim /etc/my.cnf
# 修改或添加部分信息
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_bin
修改完配置文件后,需重启服务后生效:
systemctl restart mysqld
配置和更新系统的 MySQL 库路径,以确保系统可以正确找到并使用特定版本的 MySQL 库:
echo "/data/mysql/mysql/lib" | sudo tee -a /etc/ld.so.conf.d/mysql.conf
ldconfig
在安装 devtoolset-11
之前,需要先启用 CentOS Software Collections (SCL) 仓库。
编辑仓库配置文件CentOS-SCLo-scl.repo
,添加以下内容:
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo <<'EOF'
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
EOF
执行yum
命令安装Devtoolset-11版本:
yum install -y devtoolset-11-gcc*
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++
gcc --version
# 显示版本
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
g++ --version
# 显示版本
g++ (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
zabbix安装使用
--enable-agent2
,需要GO环境,如果不使用可以不配置GO环境。这里安装的版本为
1.22.5
。
下载go源码包并解压到指定路径/usr/local
下:
cd /usr/local/src
wget https://dl.google.com/go/go1.22.5.linux-amd64.tar.gz
tar -xzf go1.22.5.linux-amd64.tar.gz -C /usr/local
配置/etc/profile
环境变量文件,添加 Go 语言的环境变量:
cat >> /etc/profile <<'EOF'
# go
export PATH=$PATH:/usr/local/go/bin
EOF
执行环境变量生效:
source /etc/profile
安装成功并配置好环境变量后,直接通过执行go
命令检查 Go 版本来验证:
go version
# 显示版本
go version go1.22.5 linux/amd64
查看所有 Go 环境变量,可以执行以下命令:
go env
除了前面这些,还需要安装一些Zabbix的构建工具和依赖项:
yum install -y openssl-devel libevent-devel libcurl-devel libxml2-devel net-snmp-devel unixODBC-devel libssh-devel OpenIPMI-devel openldap-devel fping
这里源码安装的版本为
6.4.19
。
下载 Zabbix 源码包并解压:
cd /usr/local/src
wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.19.tar.gz
tar -xzf zabbix-6.4.19.tar.gz
cd zabbix-6.4.19
在编译Zabbix时,指定安装路径,这里安装到 /data/zabbix
:
./configure --prefix=/data/zabbix \
--enable-server \
--enable-agent \
--enable-agent2 \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-unixodbc \
--enable-java \
--enable-ipv6 \
--with-openssl \
--with-openipmi \
--with-libpcre \
--with-libevent \
--with-iconv
开始编译并安装 Zabbix 源码:
make -j $(nproc)
make install
安装成功后,可以通过检查 Zabbix Server 版本来验证:
/data/zabbix/sbin/zabbix_server --version
# 显示版本
zabbix_server (Zabbix) 6.4.19
Revision 6cb22301f83 23 September 2024, compilation time: Nov 8 2024 21:22:18
Copyright (C) 2024 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.
This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).
Compiled with OpenSSL 1.0.2k-fips 26 Jan 2017
Running with OpenSSL 1.0.2k-fips 26 Jan 2017
安装完成后,所有数据存放在/data/zabbix
目录下,在该目录下新建logs
和alertscripts
目录,用来存放 Zabbix 的日志文件和自定义的告警脚本:
mkdir -p /data/zabbix/{
logs,alertscripts}
创建一个名为 zabbix
的用户,不创建用户的主目录,并将其登录 shell 设置为 /sbin/nologin
,即无法登录系统,主要用于运行 zabbix 服务:
useradd zabbix -s /sbin/nologin -M