zabbix 简单介绍 及部署

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: zabbix 简单介绍 及部署

一   监控软件作用

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 的下载源

 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页面中文乱码问题
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
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

下载zabbix 的下载源

将网络元指向阿里元

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

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

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 等信息的收集。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
监控 Linux 应用服务中间件
centos7 部署zabbix5 踩坑笔记
centos7 部署zabbix5 踩坑笔记
221 0
|
7月前
|
监控 Unix Windows
Zabbix【部署 04】 Windows系统安装配置agent及agent2
Zabbix【部署 04】 Windows系统安装配置agent及agent2
903 0
|
4月前
|
存储 弹性计算 监控
快速部署 Zabbix 社区版
Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的告警,以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。本文介绍如何通过计算巢快速部署 Zabbix 社区版。
快速部署 Zabbix 社区版
|
3月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
216 0
|
3月前
|
监控 Linux
Zabbix 5.0 LTS的agent服务部署实战篇
文章介绍了如何在CentOS 7.6操作系统上部署Zabbix 5.0 LTS版本的agent服务,包括配置软件源、安装agent、修改配置文件、启动服务,并在Zabbix web界面添加监控。
151 4
Zabbix 5.0 LTS的agent服务部署实战篇
|
3月前
|
监控 前端开发 数据库
Zabbix 5.0 LTS部署实战篇
这篇文章是关于Zabbix 5.0 LTS部署的详细教程,包括版本选择、服务器平台选择、安装步骤、数据库配置、前端安装以及修改时区和设置开机自启等内容。
286 1
Zabbix 5.0 LTS部署实战篇
|
7月前
|
监控 关系型数据库 MySQL
基于AnolisOS8.6+PolarDB-X部署ZABBIX6.0
在AnolisOS-8.6-x86_64-minimal虚拟环境中,使用VirtualBox配置2 vCPU,4G RAM和60 vDisk,下载并安装PolarDB-X,包括libaio和ncurses-devel依赖。创建polarx用户,设置权限和目录结构,编写my.cnf配置文件,然后初始化并启动PolarDB-X。接着安装ZABBIX 6.0,创建数据库、用户及权限,导入数据,并编辑Zabbix配置文件以匹配PolarDB-X。最后,重启相关服务,启用并检查状态,通过指定IP访问Zabbix Web界面,注意初始账号密码为Admin / zabbix。
|
监控 Ubuntu Shell
用shell脚本部署zabbix
用shell脚本部署zabbix
199 1
|
7月前
|
监控 Java 数据库
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
572 0
|
7月前
|
监控 关系型数据库 MySQL
zabbix部署以及配置
zabbix部署以及配置
231 3

推荐镜像

更多
下一篇
DataWorks