前言
本实验主要在Rocky Linux 中安装Zabbix,其他centos8、Debian、Ubuntu、Alma Linux
都可以安装,就是在中间件有点不同。Nginx就要配置一下,官网给的教程也算是很规范的,就是在MySQL上要自己安装,他没有告诉我们!!!
本实验的环境:Zabbix 7 、Rocky Linux 9、MySQL8.0、Nginx
废话
其实这类监控系统有很多,主要取决于喜欢用什么,怎么用,除了zabbix,还有普罗米修斯Prometheus啊什么的,有的人说普好,有的人说Zabbix好,说普好的是因为6版本以前的Zabbix不支持K8S、docker的监控,然后就找到普能监控,就说普好,现在zabbix都已经兼容了,所以没有好不好区分。
环境下载:
Zabbix官网
Rocky Linux
远程工具:
Mobaxterm
Xshell
其他都可以,也可以直接在客户端中安装
初始化系统
1.新装的linux系统,初始化更新包
sudo yum update
进入Zabbix官网,选择相匹配的环境
下面有安装教程,但是缺少必要的环境,例如MySQL类型!
安装MySQL8.0
Rocky Linux 是基于 RHEL 的 Linux 发行版,所以可以使用 dnf
或 yum
命令来安装 MySQL 和 Nginx。下面是针对 Rocky Linux 的详细安装步骤。
-
更新系统软件包:
sudo dnf update -y
-
添加 MySQL 官方存储库:
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm -y
-
安装 MySQL 8.0:
sudo dnf install mysql-server -y
4. 报错问题及解决方式
- 解决方法1
禁用 GPG 验证(临时方案)企业肯定不行的
sudo dnf install mysql-server -y --nogpgcheck
- 解决方法2
先进入.repo文件查看
vim /etc/yum.repos.d/mysql-community.repo
7.修改gpgkey
看到gpgkey
是file://xxx,这就说明没有配置正确,我们手动将所有的gpgkey改成第一个https
前提条件下载并导入mysql官方的GPG 公钥
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
- 修改gpgkey
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
- 保存退出 :wq
然后再次运行清理命令并尝试安装:
sudo dnf clean all
sudo dnf makecache
sudo dnf install mysql-server -yrpm -qa gpg-pubkey* 查看GPG密钥条目
出现上面结果就说明安装成功了。
- 启动MySQL服务并设置开机启动
sudo systemctl start mysqld //启动
sudo systemctl enable mysqld //开机启动
sudo systemctl status mysqld //验证状态
- 初始化密码
MySQL 在首次安装时会生成一个随机的 root 密码,可以使用以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
- 修改初始密码 (复制旧密码) (WYvsTr93pdr
使用刚才获取的临时密码登录 MySQL:
mysql -u root -p
- 方法1:手动修改
如果已经在 MySQL 中登录,并想手动更改 root 密码,可以在 MySQL 控制台中执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码(大、小、数字、特殊一个都不能少)';
FLUSH PRIVILEGES;
将 新密码
替换为您想设置的新密码。
完成密码更改后,可以输入 exit
退出 MySQL 控制台:
exit;
- 方法2:运行
mysql_secure_installation
设置新密码
MySQL 提供了一个安全配置脚本mysql_secure_installation
,可以用来设置新密码并执行一些安全操作。
在终端中运行:
sudo mysql_secure_installation
该脚本会引导您完成以下操作:
- 更改 root 密码:设置一个新的 root 密码。
- 移除匿名用户:防止匿名用户登录。
- 禁用 root 远程登录:只允许本地访问 root 账户。
- 删除测试数据库:删除默认的测试数据库。
- 刷新权限表:使更改生效。
安装Zabbix Nginx
由于官网会自动安装中间件,我就不再赘述了,
- 安装 zabbix 存储库
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm dnf clean all
- 安装 Zabbix 服务器、前端、代理
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
这里比较慢,耐心等待一下
出现以下就说明安装成功
- 根据官网,这一步就是(我们前面第一步就提前安装了mysql) 输入
前面配置新密码
在您的数据库主机上运行以下命令。
mysql -u root -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'zabbix数据库登录密码'; //这里为了保持一直,就用一个密码,在企业就不行哈 Huawei@123
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
- 在 Zabbix 服务器主机上导入初始架构和数据。系统将提示您输入新创建的密码。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
- 验证:
首先,使用 MySQL 登录到 Zabbix 数据库,以确认是否已导入初始架构和数据。
mysql -u zabbix -p
系统会提示输入您在创建 zabbix
用户时设置的密码。登录后,执行以下 SQL 命令以切换到 Zabbix 数据库并查看表结构:
USE zabbix;
SHOW TABLES;
如果导入成功,您应该会看到大量与 Zabbix 相关的表,如 users
、hosts
、items
等。
- 导入数据库模式后禁用
log_bin_trust_function_creators
选项。
mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit
- 为Zabbix服务器配置数据库
编辑文件/etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
DBPassword=password //这里是之前设置zabbix的密码,也就是我们设置的第二个密码
- 为 Zabbix 前端配置 PHP
编辑文件/etc/nginx/conf.d/zabbix.conf
取消注释并设置“listen”和“server_name”指令。
vim /etc/nginx/conf.d/zabbix.conf
listen 8080;
server_name example.com; //这里提前写入自己的本机IP地址,不然后面还要更新
- 启动Zabbix服务器和代理进程
启动 Zabbix 服务器和代理进程,并使其在系统启动时启动。
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
- 检查服务状态:可以使用以下命令检查各服务的运行状态,确保它们正常运行:
systemctl status zabbix-server
systemctl status zabbix-agent
systemctl status nginx
systemctl status php-fpm
确保每个服务的状态为 active (running)
。
- 如果一切配置正常,您现在可以在浏览器中访问 Zabbix 的前端界面。通常,访问地址为:
http://<服务器IP地址或域名>
- 查看地址
ifconfig
# 或
ip addr
排错
-
访问如果进不去
-
解决方法:
查看防火墙是不是开启的,如果开启,关闭或放行80或443
sudo systemctl status firewalld
很显然是开启的,我们再查看80或443端口有没有放行
sudo firewall-cmd --list-all
很显然,也没有,哈哈
当前防火墙规则中并没有开放 HTTP (http
) 和 HTTPS (https
) 服务,因此,您可能无法通过浏览器
- 开放 HTTP 和 HTTPS 端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
添加完成后,重新加载防火墙以使更改生效:
sudo firewall-cmd --reload
再次查看防火墙规则,确认 HTTP 和 HTTPS 服务已被添加:
sudo firewall-cmd --list-all
如果成功,应该会看到 http
和 https
列在 services
部分中。
- 再次尝试访问zabbix
打开 Zabbix UI 网页
使用 Nginx 时 Zabbix UI 的 URL 取决于您应该进行的配置更改。
如果不配置则出现:
出现错误
- 我们操作一下
进入nginx,把server注释掉或者删掉
vim /etc/nginx/nginx.conf
- 进入zabbix
vim /etc/nginx/conf.d/zabbix.conf
原有的太复杂,直接用下面的
server {listen 8080;server_name 192.168.6.138; //这里写自己的IP地址, 命令:IP addr root /usr/share/zabbix;index index.php index.html;location / {try_files $uri $uri/ =404;}location ~ \.php$ {fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
- 确认Zabbix安装目录权限:确保Nginx用户(通常为
nginx
或www-data
)对/usr/share/zabbix
目录及其文件具有读权限。运行以下命令来确认:
sudo chown -R nginx:nginx /usr/share/zabbix
sudo chmod -R 755 /usr/share/zabbix
- Nginx服务重新加载:确认配置修改后重新加载Nginx服务,而不仅仅是重启。可以执行以下命令确保配置生效:
sudo nginx -t # 检查配置是否有错误
sudo systemctl reload nginx
- 查看防火墙配置:虽然你已经放行8080端口,但建议进一步确认防火墙设置,确保没有其他规则阻止流量。
sudo firewall-cmd --list-all
- Zabbix页面路径验证:确认你的浏览器访问的路径是否正确,应该是
http://192.168.6.138:8080/
,而不需要加/zabbix
。
到此位置!!这个就是最新版本的安装,其他linux版本大差不大,前期就是mysql的搭建
MariaDB 数据库安装
Zabbix 需要数据库来存储数据。我们将安装 MariaDB 并创建一个数据库。
sudo dnf install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行 MariaDB 安全安装脚本
sudo mysql_secure_installation
Zabbix 7 相较于 Zabbix 6.4 引入了一些新功能、改进和性能优化。以下是一些主要区别:
1. 增强的可观测性和监控功能
- 新监控指标:Zabbix 7 引入了更多的内置指标和模板,以便更全面地覆盖各种应用和系统的监控需求。
- 更高级的告警管理:增加了告警管理和通知功能,使用户可以更灵活地配置不同的告警规则,支持多条件告警触发。
2. 用户界面改进
- UI/UX 优化:Zabbix 7 对界面和用户体验做了一些改进,使得仪表板、图表等更加直观和友好,帮助用户更轻松地导航和管理监控系统。
- 自定义仪表板功能增强:允许用户在仪表板上展示更灵活的内容和布局,提高了用户定制化的能力。
3. 性能改进
- 数据存储优化:Zabbix 7 针对大规模数据存储进行了优化,在处理大量历史数据和事件时更加高效。
- 代理性能提升:Zabbix 7 提高了代理(Agent)的性能,减少了代理在采集数据时的系统资源占用。
4. 新数据采集方法
- 增强的 SNMP 和 Prometheus 集成:Zabbix 7 加强了与 SNMP 设备和 Prometheus 数据源的集成,提供更多的配置选项和性能优化。
- 改进的 Webhook 支持:更好地支持第三方服务集成,用户可以更轻松地与其他系统进行数据交互。
5. 支持的系统和平台
- 新增支持的操作系统:Zabbix 7 引入了对一些新操作系统和数据库版本的支持,提供更广泛的部署选择。
- 弃用旧版系统支持:一些旧的操作系统和软件版本可能在 Zabbix 7 中被弃用,以确保安全和性能。
6. 安全性增强
- 强化的认证和授权机制:Zabbix 7 增强了用户认证和角色管理,使得系统更安全可靠,特别是在多用户环境中。
- 日志和事件的加密存储:Zabbix 7 可能支持更安全的数据传输和存储方式,以防止敏感信息泄露。
7. 扩展功能支持
- 增强的 API 功能:Zabbix 7 提供了更多的 API 功能,使开发人员可以更灵活地访问和操作 Zabbix 数据,实现自动化和集成。
- 新的插件框架:Zabbix 7 支持更多插件和集成功能,用户可以轻松地扩展 Zabbix 的原生功能。
8. 维护和升级简化
- 升级流程优化:Zabbix 7 优化了从旧版本到新版本的升级过程,减少了升级带来的停机时间和潜在问题。
- 自动化维护工具:增加了一些自动化的维护工具,帮助用户更高效地管理和维护 Zabbix 服务器。