ZABBIX 版本:6.4
操作系统发行版:Red Hat Enterprise Linux
操作系统版本:8
ZABBIX 组件:Server, Frontend, Agent
数据库:MySQL(8.0.30以上)
Web Server:Apache
官方链接:下载安装Zabbix
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
命令释义:下载并安装 Zabbix 软件源配置文件(zabbix-release-6.4-1.el8.noarch.rpm)
rpm
: 这是一个用于管理 RPM(Red Hat Package Manager)软件包的命令行工具。-Uvh
: 这是 rpm
命令的选项之一,指示 rpm
在安装软件包之前先升级已经存在的同名软件包(如果有的话)。-U
表示升级,-v
表示显示详细的安装过程,-h
表示哈希符号 (#) 的形式显示进度条。https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
: 这是要安装的软件包的 URL 地址。它指向 Zabbix 官方软件源中的 Zabbix 发行版软件包。该软件包是一个无架构(noarch)的 RPM 包,适用于 RHEL 8 x86_64 架构。dnf clean all
命令释义:清理 DNF (Dandified Yum) 包管理器的缓存和临时文件
dnf clean all
是一个属于 Fedora 操作系统的命令
dnf module switch-to php:7.4
命令释义:系统将尝试安装或更新 PHP 模块,以确其版本为 7.4。
dnf module switch-to
是 DNF 命令的一部分,用于切换到指定模块的版本。模块是一组相关软包的集合,可以提供特定功能或服务。在种情况下,PHP 是一个模块,它提供了 PHP 编程语言的支持。php:7.4
是切换到的 PHP 模块的名称和版本号。这表示将当前系统中的 PHP 模块切换到版本 7.4。dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
命令释义:在基于 Red Hat 或 CentOS 系统上使用 DNF 包管理器安装 Zabbix 监控系统的相关组件和依赖项。
dnf install
:这是 DNF 包管理器的命令,用于安装软件包。zabbix-server-mysql
:这是 Zabbix 服务器 MySQL 数据库之间的连接器。zabbix-web-mysql
:这是 Zabbix Web 前端与 MySQL 数据库之间的连接器。zabbix-apache-conf
:这是 Apache Web 服务器的配置文件,用于支持 Zabbix Web 前端。zabbix-sql-scripts
:这是 Zabbix 数据库脚本,用于创建和更新 Zabbix 数据库结构。zabbix-selinux-policy
:这是 Zabbix SELinux 策略模块,用于配置 SELinux 安全策略以允许 Zabbix 运行。zabbix-agent
:这是 Zabbix 代理程序,用于收集被监控主机的数据并将其发送到 Zabbix 服务器。通过执行这段代码,你将安装 Zabbix 监控系统所需的服务器、Web 前端、数据库连接器SELinux 策略模块和代理程序。请注意,这只是安装 Zabbix 的一种方法,具体步骤可能因操作系统版本和个人需求而有所不同。
# mysql -uroot -p password mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit;
命令释义:在 MySQL 数据库中创建一个名为 “zabbix” 的数据库,并创建一个名为 “zabbix” 的用户,然后所有权限授予该用户。
mysql -uroot -p
:以 root 用户身份登录到 MySQL 数据库。-uroot
表示使用 root 用户登录,-p
表示需要输入密码。create database zabbix character set utf8mb4 collate utf8mb4_bin;
: 这个命令用于创建一个名为 “zabbix” 的数据库。
character set utf8mb4
指定了数据库的字符集为 UTF-8;collate utf8mb4_bin
指定了排序规则为进制。create user zabbix@localhost identified by 'password';
: 这个命令用于创建一个名为 “zabbix” 的用户,并设置密码为 ‘password’。
@localhost
表示该用户只能从本地连接访问数据库。grant all privileges on zabbix.* to zabbix@localhost;
: 这个命令用于给予用户 “zabbix” 对 “zabbix” 数据库的所有权限。
*
表示所有表和对象。set global log_bin_trust_function_creators = 1;
: 这个命令用于设置全局变量 log_bin_trust_function_creators
的值为 1。这是为了允许在二进制日志中记录创建函数的语句。quit;
: 这个命令用于退出 MySQL 数据库的命令行工具。系统将提示您输入新创建的密码。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
命令释义:将压缩的 Zabbix MySQL 数据库脚本进行解压后导入到 MySQL 数据库中
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz
:这部分命令使用 zcat
工具来解压缩 server.sql.gz
文件。
zcat
是一个用于解压缩 gzip 压文件的命令;/usr/share/zabbix-sql-scripts/mysql/server.sql.gz
是压缩文件的路径。|
:这个符是管道操作符,它将前一个命令的输出作后一个命令输入。mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
:这部分命令使用mysql
命令连接到 MySQL 数据库,并执行导入操作:
mysql
:这是用于连接和操作 MySQL 数据库的命令。--default-character-set=utf8mb4
:这个选项指定了默认字符集为 utf8mb4
,确保正确处理包含特殊字符的数据。(与先前创建的Zabbix数据库的字符集保持一致)-uzabbix
:这个选项指定了连接数据库的用户名为 zabbix
。(-u即-user)-p
:这个选项提示用户输入密码,以便进行身份验证。(-p即-password)zabbix
:这是要连接的数据库名称。# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
命令释义:以 root 用户身登录到 MySQL 数据库,并将全局变量 log_bin_trust_function_creators
的值设置为 0
mysql>
: 这是 MySQL 命令行提示符表示您已成功登录到 MySQL 服务器。set global log_bin_trust_function_creators = 0;
: 这是一个 SQL 命令,用设置 MySQL 服务器的全局变量 log_bin_trust_function_creators
的值为 0。该变量控制是否允许创建和修改二进制日志中的函数。将其设置为 0 表示不信任函数创建者,需要具有 SUPER 权限才能创建或更改函数。这是出于安全考虑,默认情况下该变量的值为 0。个人理解:第4步在创建zabbix的database时先设置log_bin_trust_function_creators
为1,然后第5步导入初始架构和数据,导入成功后,第6步把这个权限再关闭即log_bin_trust_function_creators
设置为0。
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBPassword=password
应该是设置数据库连接密码。
启动Zabbix server和agent进程
systemctl restart zabbix-server zabbix-agent httpd php-fpm
为它们设置开机自启
systemctl enable zabbix-server zabbix-agent httpd php-fpm