文章目录
- 1 介绍
- 1.1 架构
- 1.2 主要概念和名词
- 1.3 最新 7.0 TLS 版本的部分新特性
- 更灵活的资源发现和管理
- 2 官方部署指导地址
- 3 在 Rocky Linux 9 上安装 zabbix
- 3.1 安装软件包
- 3.2 创建初始化数据库
- 3.3 配置zabbix-server
- 3.4 启动Zabbix server和agent进程
- 3.5 默认监听端口
- 3.6 访问 Zabbix Server
- 4 配置前端
- 4.1 检查 php 环境
- 4.2 设置 MySQL
- 4.3 设置时区和界面主题
- 4.4 登录
- 4.5 配置中文
- 4.5.1 安装中文环境
- 4.5.2 配置中文
1 介绍
Zabbix 7.0 LTS版本是基于GNU Affero通用公共许可证第3版(AGPLv3)发布的,7.0 LTS更新了许多新的功能,包含合成终端用户Web监控、Zabbix proxy高可用性和负载均衡、重大性能和可扩展性提升、原生多因子认证(MFA)支持、多种新方法可视化数据和基础设施状态,以及其它各种功能!
1.1 架构
- ① zabbix-server zabbix 监控系统的服务端,C 语言编写。
- ② 前端 zabbix 监控系统的前端,php 语言编写,需要使用 nginx 或者 httpd 代理,功能包含页面管理和数据的可视化。
- 页面管理 比如登录验证,管理被监控对象,管理指标数据,告警信息管理等。
- 数据可视化 将监控指标数据用各种美观的图表展示出来,包含静态和动态的,可以实时观测到被监控对象的监控指标数据。
- ③ zabbix-agent zabbix 监控系统的客户端,主要是获取监控对象的监控指标数据,可以部署在多种操作系统中,早期版本使用 C 编写,后来的 zabbix-agent2 使用 Go 语言编写。
- ④ 数据存储 存放得到的监控的数据,可以是 MySQL,也可以是 Postgresql
- ⑤ Grafana 一个专门用于各种数据可视化的第三方服务,它可以通过自身的zabbix 插件,可以把 zabbix 的监控数据作为自身的数据源,使用非常美观的切酷炫的图表动态的展示出来。
1.2 主要概念和名词
-
主机 一般是被监控对象,比如服务器,容器或网络设备等。
-
主机群组 主机组是一个逻辑上的概念,可以把同一类别或者有共同需要被监控的指标的监控对象放到一个主机组中。
-
键值 是具体如何获取监控指标数据的方式:
-
其背后本质上都是通过相关的命令或者脚本获取到的某些关心的数据,比如CPU的负载,内存使用率,数据库当前连接数等。 -
监控项 就是监控指标,监控项通过 键值 获取到被监控指标的值,并设置每次获取这个监控指标的间隔时间,以及这个监控指标的值的类型,比如是数字,还是普通文本,又或是布尔值等。也可以对这些值进行进一步的处理,称为预处理。
-
触发器 是使用一个zabbix规则的表达式,来判断某个监控项到的某个阈值,达到后会触发一个事件。这个事件可以被 触发器动作 关联和使用。表达式一般是使用逻辑运算符和各种函数对监控项的值进行运算,得到的结果在进行逻辑判断是否为 真。
-
触发器动作 当有与其关联的触发器触发了事件,可以做一些操作,比如发送告警信息到邮件、钉钉等媒介,或者执行一些在服务器上的命令、脚本、程序等。
-
媒介 就是用于接收告警信息的载体,媒介有不同的类型:
值得说的是 脚本 ,就是可以在 zabbix 服务端编写一个脚本,这个脚本可以接收到告警信息,并发送到指定服务(企业微信,钉钉等)。就是比较灵活的一种发送告警信息的方式。
以上就是在学习 zabbix 中,需要掌握的主要概念,当然还有一些其他的概念和名词,后续随着课程的深入,详细你会逐步的了解和掌握。
为了便于理解,下面是我画的一个逻辑路,希望能准确的表达出他们之间的关系,以便能加深对这些概念名词的理解。
1.3 最新 7.0 TLS 版本的部分新特性
更灵活的资源发现和管理
低级别自动发现已经进行了各种改进,使得在发现复杂环境中的主机(如VMware或Kubernetes)时,能够实现增强的主机配置和管理灵活性。
能够将低级别自动发现的主机链接到其它低级别自动发现规则创建的组中
能够自动禁用丢失的资源
将默认的低级别自动发现规则更新间隔更改为1小时
2 官方部署指导地址
可以从官方下载地址获取到各种系统,各个版本的部署步骤。
3 在 Rocky Linux 9 上安装 zabbix
3.1 安装软件包
- 安装 zabbix 仓库
如果安装的系统中已经有 epel 源,请禁用 epel 源中的 zabbix。
需要编辑 /etc/yum.repos.d/epel.repo 并添加如下内容:
[epel]
...
excludepkgs=zabbix*
之后再安装 zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
dnf clean all
- 安装Zabbix server,Web前端,agent
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
- zabbix-server-mysql zabbix 服务端,使用 MySQL作为数据存储
- zabbix-web-mysql zabbix 前端,使用 MySQL作为数据存储
- zabbix-nginx-conf 使用 nginx 作为前端代理的 nginx 配置文件(/etc/nginx/conf.d/zabbix.conf)
- zabbix-sql-scripts 各种数据库需要的初始化SQL 脚本,MySQL的需要 /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz
- zabbix-selinux-policy SELinux 策略
- zabbix-agent zabbix 客户端,就是用于获取监控指标数据的服务程序。
值得注意的是,这里会安装所需要的依赖包,特别是 nginx 和 php-fpm ,这两个服务也是必须的,如果安装依赖失败,就需要自行安装这两个服务。
3.2 创建初始化数据库
在数据库服务器上执行如下命令(你需要提前准备好一个mysql服务,且至少版本是 8.0.30)
# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@<zabbix服务器IP> identified by 'Shark^188';
mysql> grant all privileges on zabbix.* to zabbix@<zabbix服务器IP>;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
将 zabbix 服务器上的 **/usr/share/zabbix-sql-scripts/mysql/server.sql.gz ** 文件传输到 MySQL服务器上
如果MySQL和zabbix 在同一台服务器上,则执行执行如下命令
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
zcat 命令
之后在MySQL服务器上执行如下命令,导入初始架构和数据,系统将提示您输入新创建的密码。
zcat server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
导入成功后,在mysql服务器上执行如下操作,恢复部分配置
# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
3.3 配置zabbix-server
- 为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
DBHost=localhost # mysql的IP后者主机名,如果mysql和zabbix 部署在同一台服务器上,则不需要修改
DBPassword=Shark^188
DBPort=3306
- 为Zabbix前端配置PHP
编辑配置文件 /etc/nginx/conf.d/zabbix.conf 取消注释并设置 isten 和 server_name 指令。
listen 8080;
server_name zabbix.shark.com;
3.4 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
3.5 默认监听端口
3.6 访问 Zabbix Server
浏览器中输入 http://<zabbix服务器IP>:8080
4 配置前端
点击 Next step 继续
4.1 检查 php 环境
拉动 右侧滚动条,至底部,并在此过程中检查每一项是否有异常。
4.2 设置 MySQL
MySQL 在zabbix 服务器上部署的情况下:
MySQL 不在 zabbix 服务器上部署的情况下:
4.3 设置时区和界面主题
4.4 登录
默认用户名为:Admin ,密码为:zabbix
4.5 配置中文
4.5.1 安装中文环境
前提条件:
首先zabbix 服务器中需要有中文的环境,对于 Rokey Linux 9 可以按照如下步骤,设置操作系统的中文环境。
- 执行如下命令,返回的结果中包含 LANG=zh_CN.utf8 则当前是中文环境:
locale
- 否则需要安装中午语言包
dnf install glibc-langpack-zh
- 确保在 /etc/locale.conf 文件中设置正确的语言环境。
LANG=zh_CN.utf8
- 更新当前会话的语言环境:
你可能需要在当前会话中更新语言环境。可以使用以下命令:
export LANG=zh_CN.UTF-8
- 重启 nginx
systemctl restart nginx
4.5.2 配置中文
之后重启访问 zabbix 界面,并点击 左下角的 User sttings