zabbix 简单介绍 及部署

目录

[一 监控软件作用](#一 监控软件作用)

1,生产环境常见框架

2,监控软件的必要性

3,常见监控软件

[二 zabbix 简介](#二 zabbix 简介)

[1,zabbix 是什么](#1,zabbix 是什么)

[2,zabbix 干什么](#2,zabbix 干什么)

[3,zabbix 组件](#3,zabbix 组件)

[3.1 zabbix server](#3.1 zabbix server)

[3.2 zabbix agent](#3.2 zabbix agent)

[4, zabbix 端口](#4, zabbix 端口)

[5, zabbix 特点](#5, zabbix 特点)

[6, zabbix监控主要功能](#6, zabbix监控主要功能)

[7, zabbix 运行机制](#7, zabbix 运行机制)

[8, zabbix工作场景 (监控对象)](#8, zabbix工作场景 (监控对象))

9,监控原理

[10 监控模式](#10 监控模式)

[11 zabbix 具体组件](#11 zabbix 具体组件)

[12, zabbix 架构](#12, zabbix 架构)

[12.1 server-client](#12.1 server-client)

[12.2 server-proxy-client 架构](#12.2 server-proxy-client 架构)

[12.3 Master-Node-Client 架构](#12.3 Master-Node-Client 架构)

[三 实验模拟zabbix](#三 实验模拟zabbix)

[1, 实验环境](#1, 实验环境)

[2, 部署 zabbix 服务端](#2, 部署 zabbix 服务端)

[2.1 获取 zabbix 的下载源](#2.1 获取 zabbix 的下载源)

[2.2 更换 zabbix.repo 为阿里源](#2.2 更换 zabbix.repo 为阿里源)

[2.3 重新生成元数据](#2.3 重新生成元数据)

[2.4 装 zabbix-server-mysql zabbix-agent](#2.4 装 zabbix-server-mysql zabbix-agent)

[2.5 安装SCL(Software Collections)](#2.5 安装SCL(Software Collections))

[2.6 修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下](#2.6 修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下)

[2.7 安装zabbix-web-mysql-scl zabbix-apache-conf-scl](#2.7 安装zabbix-web-mysql-scl zabbix-apache-conf-scl)

[2.8 安装 zabbix 所需的数据库](#2.8 安装 zabbix 所需的数据库)

[2.9 初始化数据库 并设置密码](#2.9 初始化数据库 并设置密码)

[2.10 添加数据库用户,以及 zabbix 所需的数据库信息](#2.10 添加数据库用户,以及 zabbix 所需的数据库信息)

[2.11 导入数据库信息](#2.11 导入数据库信息)

[2.12 修改 zabbix server 配置文件,修改数据库的密码](#2.12 修改 zabbix server 配置文件,修改数据库的密码)

[2.13 修改 zabbix 的 php 配置文件](#2.13 修改 zabbix 的 php 配置文件)

[2.14 启动 zabbix 相关服务](#2.14 启动 zabbix 相关服务)

[2.15 浏览器访问:http://192.168.217.99/zabbix](#2.15 浏览器访问:http://192.168.217.99/zabbix)

[3, 完善zabbix 服务端](#3, 完善zabbix 服务端)

[3.1 改中文](#3.1 改中文)

[3.2 解决 zabbix-server Web页面中文乱码问题](#3.2 解决 zabbix-server Web页面中文乱码问题)

[4, 部署 zabbix 客户端(77机器)](#4, 部署 zabbix 客户端(77机器))

[4.1 为保证数据一致性,两边做时间同步](#4.1 为保证数据一致性,两边做时间同步)

[4.2 设置 zabbix 的下载源,安装 zabbix-agent2](#4.2 设置 zabbix 的下载源,安装 zabbix-agent2)

[4.3 修改 agent2 配置文件](#4.3 修改 agent2 配置文件)

[4.4 启动 zabbix-agent2](#4.4 启动 zabbix-agent2)

[5,在服务端(99机器)验证 zabbix-agent2 的连通性](#5,在服务端(99机器)验证 zabbix-agent2 的连通性)

[6,在 Web 页面中添加 agent 主机](#6,在 Web 页面中添加 agent 主机)

[7, 查看客户端机器状态](#7, 查看客户端机器状态)

[四 总结](#四 总结)

[zabbix server](#zabbix server)

[zabbix agent](#zabbix agent)


一 监控软件作用

1,生产环境常见框架

2,监控软件的必要性

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。

利用一个优秀的监控软件,我们可以:

●通过一个友好的界面进行浏览整个网站所有的服务器状态

●可以在 Web 前端方便的查看监控数据

●可以回溯寻找事故发生时系统的问题和报警情况

3,常见监控软件

传统环境 用zabbix

网络和绘图· cacti

网络监控 nagios

ganglia 分布式监控系统

二 zabbix 简介

1,zabbix 是什么

zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案

2,zabbix 干什么

zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

3,zabbix 组件

zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

(B/S 网页端和服务端 网页端显示服务端所有的监控数据 就是客户端采集数据 交给服务端 网页端再显示服务端的信息)

3.1 zabbix server

zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

3.2 zabbix agent

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

4, zabbix 端口

agent 10050

server 10051

5, zabbix 特点

学习成本比较低 安装配置简单

支持多语言 包括中文

免费开源

自动发现服务器与网络设备

分布式监控以及web集群中的管理功能e

mail 功能通知 短信语音、微信 钉钉

6, zabbix监控主要功能

CPU 负载

业务监控

网络状态

内存使用 磁盘使用率

端口监视

插件开发自定义

日志监视

7, zabbix 运行机制

zabbix-agent 数据采集---》zabbix-server(数据分析/报警)---》数据库(数据存储)---》zabbix-web
(数据展示)

8, zabbix工作场景 (监控对象)

硬件监控(服务器、路由、交换机等)

系统监控(操作系统)

网络监控(网络设备的协议 TCP/IP ICMP HTTP等都监控)

Java监控(监控JDK JVM)

应用服务监控(Tomcat、Nginx、Mysql等)

数据库监控

URL监控(http://)

VMware监控平台(监控虚拟机运行状况)

9,监控原理

zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。

10 监控模式

被动监控: server 向agent 发起连接

主动监控:agent 向 server 发起连接 (一般用这个 减少服务端压力)

(理解为 下属主动向领导交任务)

11 zabbix 具体组件

●zabbix server:zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server;

●zabbix agent:客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等;

●zabbix proxy:zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署;

●zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令;

●zabbix sender:zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。

●zabbix_java_gateway: java 网关

12, zabbix 架构

12.1 server-client

也就是zabbix最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-client之间进行数据交换。适用于网络比较简单,尽量在局域网内,设别比较少的监控环境实用。

12.2 server-proxy-client 架构

server-proxy-client 其中 proxy 和server,client之间沟通一个桥梁,proxy本身有前端,而且本身并不存放数据,只是将agent发来的数据暂时存放,而后在提交给server,这种架构经常是master-node-client,一般适用于跨机房,跨网络的中型网络监控架构

12.3 Master-Node-Client 架构

Master-Node-Client该架构是Zabbix最复杂的监控架构,适用于跨网络跨机房设备多的大型环境。每个Node同时接一个Sever端,Node下面可以接Proxy端,也可以直接连接Client,Node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向Master进行数据同步,Master故障损坏对Node其下架构的完整性无任何影响

三 实验模拟zabbix

1, 实验环境

99机器 为服务端 装

77机器 为客户端 装zabbix client zabbix agent

2, 部署 zabbix 服务端

2.1 获取 zabbix 的下载源
bash 复制代码
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 
2.2 更换 zabbix.repo 为阿里源
2.3 重新生成元数据
2.4 装 zabbix-server-mysql zabbix-agent

zabbix-server-mysql 是一个软件包,它是监控解决方案 Zabbix 的核心组件之一,专为与 MySQL 数据库管理系统配合使用而设计。这个包包含了运行 Zabbix Server 所需的程序和配置文件,当与 MySQL 数据库一起部署时,Zabbix Server 将使用 MySQL 作为其后端数据存储来保存监控数据、配置信息和其他元数据。

2.5 安装SCL(Software Collections)

便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下

2.6 修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下

vim zabbix.repo
#开启安装源

2.7 安装zabbix-web-mysql-scl zabbix-apache-conf-scl

zabbix-web-mysql-scl : 这是待安装的软件包名之一。它代表 Zabbix Web 前端组件,专为与 MySQL 数据库集成而设计。-scl 后缀可能表示该软件包使用了 Software Collections(SCL),这是一个允许在同一系统上并行安装不同版本的语言运行时环境和应用程序的技术。这意味着 zabbix-web-mysql-scl 可能包含一个独立的、与系统默认环境隔离的 Zabbix Web 服务,它可能使用了特定版本的 PHP 或其他依赖,以确保与 Zabbix 的兼容性和稳定性。

zabbix-apache-conf-scl : 这是另一个待安装的软件包名。它包含了为 Apache HTTP 服务器配置 Zabbix Web 界面所需的配置文件。同样带有 -scl 后缀,表明这些配置文件与使用 SCL 的 Zabbix Web 组件配套,以便正确设置 Apache 以服务 Zabbix Web 应用程序。

2.8 安装 zabbix 所需的数据库

mariadb-server: 这是待安装的软件包之一,代表 MariaDB 数据库服务器。安装此包会提供运行 MariaDB 服务器所需的所有核心组件和服务程序,包括数据库引擎、后台进程(如守护进程 mysqld)、系统启动脚本以及必要的配置文件。安装后,系统将具备启动、停止、重启 MariaDB 服务器的能力,并能够为其他应用程序提供数据库服务。

mariadb : 这是另一个待安装的软件包,包含了 MariaDB 的客户端工具和库文件。安装此包后,系统将拥有与 MariaDB 服务器交互的各种命令行工具,如 mysql(用于连接数据库并执行 SQL 查询)、mysqldump(用于备份数据库)、mysqladmin(用于执行管理任务)等。此外,还会安装开发库和头文件,供编译依赖 MariaDB 的第三方应用程序使用。

设置 mariadb 开机自启 并启动

2.9 初始化数据库 并设置密码
2.10 添加数据库用户,以及 zabbix 所需的数据库信息

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

这条 SQL 语句用于创建一个新的数据库,名为 zabbix。同时指定了该数据库的字符集为 utf8,排序规则(collation)为 utf8_bin

*GRANT all ON zabbix. TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';**

这条 SQL 语句用于向特定用户授予对 zabbix 数据库的全部权限,并指定了该用户的登录凭据。

注意此处登录的密码为 rabbix! 这个很重要 服务端配置文件DBPassword=

就要写这个密码 rabbix

查看刚刚创建的库

2.11 导入数据库信息

查询 sql 文件的位置

导入数据库信息

命令解析如下:

  1. zcat :这是一个用于解压缩并查看gzip格式压缩文件内容的命令行工具。在这里,它被用来解压缩位于/usr/share/doc/zabbix-server-mysql-5.0.24/目录下的create.sql.gz文件。这个文件通常包含了用于创建Zabbix所需数据库表、视图、存储过程等对象的SQL脚本。

  2. | (管道符号):将前一个命令(zcat解压缩产生的输出)作为输入传递给后续命令。

  3. mysql:这是MySQL数据库的命令行客户端程序,用于执行SQL语句或者与MySQL服务器进行交互。

    • -u root :指定以MySQL用户root身份登录。

    • -p abc123 :在命令行提示时输入密码,这里直接在命令行中提供了密码abc123(在实际操作中,出于安全考虑,通常不建议明文在命令行中输入密码,而是等待交互式提示输入)。

    • zabbix :指定了要连接的目标数据库名称为zabbix。如果该数据库尚不存在,命令执行过程中会尝试创建它(前提是root用户具有相应的权限)。

综上所述,该命令行操作的整体含义是:使用zcat解压缩Zabbix Server的MySQL数据库创建脚本,然后将解压得到的SQL语句通过管道传递给mysql客户端,由后者执行这些语句来创建名为zabbix的数据库,并在其内部构建完整的Zabbix数据结构,包括表、索引、视图、函数、触发器等,以准备承载Zabbix监控系统的数据。

2.12 修改 zabbix server 配置文件,修改数据库的密码

vim /etc/zabbix/zabbix_server.conf

2.13 修改 zabbix 的 php 配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

2.14 启动 zabbix 相关服务
2.15 浏览器访问:http://192.168.217.99/zabbix

next

next

next

安装完成后,默认的登录账号和密码为:Admin/zabbix

3, 完善zabbix 服务端

3.1 改中文

设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

3.2 解决 zabbix-server Web页面中文乱码问题
bash 复制代码
yum install -y wqy-microhei-fonts

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

4, 部署 zabbix 客户端(77机器)

zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。

zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。

4.1 为保证数据一致性,两边做时间同步

服务端和客户端都配置时间同步

  • 修改了客户端的系统时区设置,使其与假设的服务器端时区(亚洲/上海)保持一致,确保两地系统不仅在绝对时间上同步,还在显示和处理时间时采用相同的时区规则。
4.2 设置 zabbix 的下载源,安装 zabbix-agent2
bash 复制代码
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

下载zabbix 的下载源

将网络元指向阿里元

bash 复制代码
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

安装agent2 客户端

4.3 修改 agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf

bash 复制代码
Server=192.168.217.99			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.217.99		#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			#131行,指定当前 zabbix 客户端的主机名
4.4 启动 zabbix-agent2

查看端口:客户端端口10050

5,在服务端(99机器)验证 zabbix-agent2 的连通性

安装 zabbix 主动获取数据的命令

此处两条命令 检测服务端和客户端的联通性。 -k 指定内容

(服务端去拿客户端的数据,因为客户端搜集数据)

6,在 Web 页面中添加 agent 主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】

【主机名称】设置成 zbx-agent01

【可见的名称】设置成 zbx-agent01-192.168.217.77

【群组】选择 Linux server

【Interfaces】的【IP地址】设置成 192.168.217.77

再点击上方菜单栏【模板】

【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent

点击 【添加】

创建主机

定义模版:

7, 查看客户端机器状态

7.1,点击监测 主机 找到 zabbix-agent
7.2 查看客户端的 键值对

点击 配置 主机 监控项

四 常见故障分析

1,故障现象

笔者在搭建zabbix 时遇到了一个故障。故障现象:

1,zabbix 服务端没有 可用性显示 (正常应该 zbx 显示为绿色)

2, 服务端 systemctl status zabbix-server 显示正在运行,但是 ss -natp | grep 10051 没有端口

2,排错思路

笔者先去 验证客户端与服务端是否连接成功,去到服务端get 客户端数据

说明客户端与 服务端连接没有问题,应该就是服务端与网页端连接的问题,

查看 服务端的报错日志:/var/log/zabbix/zabbix_server.log

bash 复制代码
68782:20240416:193320.572 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES) 68782:20240416:193320.572 database is down: reconnecting in 10 seconds 

查看报错日志,可以发现是 这段错误信息表明Zabbix服务器在尝试连接到名为zabbix的数据库时遇到了问题

再去查看服务端的配置文件,发现 /etc/zabbix/zabbix_server.conf 配置文件的 DBPassword=

配置错误。

  • DBPassword :这一配置项对应的是Zabbix Server用来连接数据库的用户账号的密码。在Zabbix系统中,通常会创建一个专用的数据库用户(如zabbix),用于Zabbix Server与数据库之间的通信。DBPassword字段就是要填入为这个数据库用户分配的密码。

改正即可

五 总结

zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

(B/S 网页端和服务端 网页端显示服务端所有的监控数据 就是客户端采集数据 交给服务端 网页端再显示服务端的信息)

zabbix server

zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

zabbix agent

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

相关推荐
小阿轩yx4 天前
小阿轩yx-案例:Zabbix监控kubernetes云原生环境
linux·云原生·kubernetes·云计算·zabbix·运维开发
小阿轩yx4 天前
小阿轩yx-Zabbix企业级分布式监控环境部署
linux·分布式·云计算·zabbix·运维开发·企业级监控部署
the丶only5 天前
获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组
linux·运维·服务器·自动化·bash·zabbix
henanxiaoman5 天前
zabbix之钉钉告警
钉钉·zabbix
Linux运维老纪5 天前
基于zabbix实现监控Jenkins过程---超详细
linux·云计算·jenkins·zabbix·运维开发
小怪兽ysl5 天前
【zabbix监控软件(配置及常用键值)】
zabbix
henan程序媛6 天前
Zabbix监控自动化
运维·自动化·zabbix·监控
henan程序媛6 天前
Zabbix监控k8s云原生环境
云原生·kubernetes·zabbix
乆乄10 天前
运维学习————Zabbix监控框架(1)
运维·zabbix
张小胡17 天前
zabbix和prometheus介绍;云原生
zabbix·prometheus