注意:上篇文章我们已经安装好了一个版本为8.33的MySQL数据库,这篇文章介绍如何搭建一个Zabbix高可用集群
为了满足公司对高级监控功能需求。例如更精细的告警设置、多样化的数据可视化、更好的网络拓扑图等功能,公司选择升级或迁移到Zabbix 6.0。同时随着业务发展,公司的IT基础设施规模和复杂性在不断增加。公司需要一个更强大的监控系统来处理大规模的监控数据和监控对象,并能够提供灵活的扩展性。Zabbix 6.0能提供了更好的性能和扩展性,以应对公司不断变化的监控需求。
Zabbix HA(High Availability,高可用性)是指Zabbix监控系统实现高可用性和容错能力的解决方案。使用Zabbix HA,可以确保当一个节点或组件发生故障时,监控系统能够继续正常运行,以避免监控中断和数据丢失。
Zabbix HA 节点包括以下几种状态:
在同一个 Zabbix HA 集群中,只有一个实例或节点处于 active(活动)状态,其他节点处于standby(备用)状态,不进行数据收集、处理或其他任务,并且不监听端口,并保持一个最少的数据库连接。
主机名 | IP地址 | 操作系统 | 说明 |
Zabbix_Server01 | 192.168.88.21 | CentOS 8.5 | Zabbix Server节点 |
Zabbix_Server02 | 192.168.88.22 | CentOS 8.5 | Zabbix Server节点 |
Zabbix_Server03 | 192.168.88.23 | CentOS 8.5 | Zabbix Server节点 |
Zabbix_MySQL | 192.168.88.10 | CentOS 8.5 | MySQL数据库 |
[root@Zabbix_Server01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
警告:/var/tmp/rpm-tmp.v7oVwI: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:zabbix-release-6.0-1.el8 ################################# [100%]
[root@Zabbix_Server01 ~]# ls /etc/yum.repos.d/
CentOS-Linux.back contrnue_source.repo zabbix.repo
[root@Zabbix_Server01 ~]# yum clean all
[root@Zabbix_Server01 ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
Zabbix Server(Zabbix 服务器):
Zabbix Server是Zabbix系统的核心组件,它负责监控和管理整个监控系统。它可以收集来自各种网络设备和服务器的性能数据,并进行存储、分析和报告。Zabbix Server还负责处理报警事件,它能够根据设定的触发条件向管理员发送警报通知。
Zabbix Web(Zabbix 网页前端):
Zabbix Web是Zabbix系统的用户界面,通过Web浏览器可以方便地访问和管理Zabbix监控系统。它提供了用户友好的界面,可以查看和配置监控项、触发器、图形、报告等。管理员和用户可以通过Zabbix Web查看实时监控数据,并自定义和调整监控设置。
Zabbix Agent2(Zabbix 代理):
Zabbix Agent2是安装在被监控设备上的软件代理,它负责收集和发送设备的性能数据给Zabbix Server。Zabbix Agent2可以安装在各种不同的操作系统上,如Linux、Windows、Unix等,并通过与Zabbix Server建立连接,定期上报监控数据。Zabbix Agent2还可以执行远程命令和收集其他一些系统信息。
这三个组件共同工作,实现了全面的网络监控和管理功能。管理员可以通过Zabbix Web配置和监控各种设备和应用程序,同时通过Zabbix Agent2获取到设备的性能数据,从而实现对系统的实时监控和报警。
[root@Zabbix_MySQL ~]# mysql -uroot -p'密码'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user zabbix@'192.168.88.%' identified by 'zabbix';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@'192.168.88.%';
Query OK, 0 rows affected (0.00 sec)
mysql> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
// 测试zabbix用户是否创建成功
[root@Zabbix_MySQL ~]# mysql -uzabbix -p'zabbix' -h 192.168.88.10
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[root@Zabbix_Server01 zabbix-sql-scripts]# find / -name server.sql.gz
/usr/share/zabbix-sql-scripts/mysql/server.sql.gz
/usr/share/zabbix-sql-scripts/postgresql/server.sql.gz
[root@Zabbix_Server01 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -pzabbix -h192.168.88.10
[root@Zabbix_Server01 ~]# vim /etc/zabbix/zabbix_server.conf
………………………………
// 修改数据库的配置参数
DBHost=192.168.88.10
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
………………………………
// 修改HA的配置的参数
# HANodeName设置为当前节点主机名或者IP地址,需保证同一集群中唯一
HANodeName=Zabbix_Server01
# NodeAddress设置为节点IP:10051
NodeAddress=192.168.88.21:10051
…………………………………
[root@Zabbix_Server01 ~]# vim /etc/nginx/conf.d/zabbix.conf
## 取消listen和server_name的注释,并设置为相应的监听端口和域名
listen 8080;
server_name zabbix.example.com;
[root@Zabbix_Server01 ~]# systemctl enable zabbix-server zabbix-agent2 nginx php-fpm --now
访问 http://192.168.88.21:8080,可以看到设置界面
注意:用户名为 Admin ,密码为:zabbix