第一章zabbix监控初识

一 监控系统

1为什么要监控

​	在需要的时刻,提前提醒我们服务器出问题了

​	当出问题之后,可以找到问题的根源

​	网站/服务器 的可用性
         
        能够快速定位问题 及时处理 

2 什么是监控?

服务器监控是实时掌握服务器工作状态,并在需要时可以随时调用监控记录进行查看。

网站监控是通过软件或者网站监控服务提供商对网站进行监控以及数据的获取从而达到网站的排错和数据的分析。

3监控的范围

一般我们将监控系统分为五层来考虑,当然也有人分成三层,大致的意思都差不多,仅供参考:

- 客户端监控,用户行为信息,业务返回码,客户端性能,运营商,版本,操作系统等。
- 业务层监控,核心业务的监控,例如:登录,注册,下单,支付等等。
- 应用层监控,相关的技术参数,例如:URL 请求次数,Service 请求数量,SQL 执行的结果,Cache 的利用率,QPS 等等。
- 系统层监控,物理主机,虚拟主机以及操作系统的参数。例如:CPU 利用率,内存利用率,磁盘空间情况。
- 网络层监控,网络情况参数。例如:网关流量情况,丢包率,错包率,连接数等等

4 常见的监控工具

1

Zabbix 是一款企业级的分布式开源监控方案。它由 Alexei Vladishev 创建,由 Zabbix SIA 在持续开发和支持。

Zabbix 能够监控网络参数,服务器健康和软件完整性。它提供通知机制,允许用户配置告警,从而快速反馈问题。

基于存储的数据,Zabbix 提供报表和数据可视化,并且支持主动轮询和被动捕获。它的所有报告、统计信息和配置参数都可以通过 Web 页面访问。

Zabbix 核心组件主要是 Agent 和 Server。其中 **Agent 主要负责采集数据并通过主动或者被动的方式将采集数据发送到 Server/Proxy**。除此之外,为了扩展监控项,Agent 还支持执行自定义脚本。**Server 主要负责接收 Agent 发送的监控信息,并进行汇总存储、触发告警等**。

Zabbix Server 将收集的监控数据存储到 Zabbix Database 中。Zabbix Database 支持常用的关系型数据库,如 MySQL、PostgreSQL、Oracle 等(默认是 MySQL),并提供 Zabbix Web 页面(PHP 编写)数据查询。

由于使用了关系型数据存储时序数据,**Zabbix在监控大规模集群时常常在数据存储方面捉襟见肘**。所以从 4.2 版本后 Zabbix开始支持 TimescaleDB 时序数据库,不过目前成熟度还不高。

2

Open-Falcon 是小米开源的企业级监控工具,用 Go 语言开发而成。这是一款灵活、可扩展并且高性能的监控方案,包括小米、滴滴、美团等在内的互联网公司都在使用它。它的主要组件包括:

**Falcon-agent**:这是用 Go 语言开发的 Daemon 程序,运行在每台 Linux 服务器上,用于采集主机上的各种指标数据,主要包括 CPU、内存、磁盘、文件系统、内核参数、Socket 连接等,目前已经支持 200 多项监控指标。并且,Agent 支持用户自定义的监控脚本。

**Hearthbeat server**:简称 HBS 心跳服务。每个 Agent 都会周期性地通过 RPC 方式将自己的状态上报给 HBS,主要包括主机名、主机 IP、Agent 版本和插件版本,Agent 还会从 HBS 获取自己需要执行的采集任务和自定义插件。

**Transfer**:负责接收 Agent 发送的监控数据,并对数据进行整理,在过滤后通过一致性 Hash 算法发送到 Judge 或者 Graph。

**Graph**:这是基于 RRD 的数据上报、归档、存储组件。Graph 在收到数据以后,会以 rrdtool 的数据归档方式来存储,同时提供 RPC 方式的监控查询接口。

**Judge 告警模块**:Transfer 转发到 Judge 的数据会触发用户设定的告警规则,如果满足,则会触发邮件、微信或者回调接口。这里为了避免重复告警引入了 Redis 暂存告警,从而完成告警的合并和抑制。

**Dashboard**:这是面向用户的监控数据查询和告警配置界面。

3

Nagios 原名为 NetSaint,由 Ethan Galstad 开发并维护。Nagios 是一个老牌监控工具,由 C 语言编写而成,**主要针对主机监控**(CPU、内存、磁盘等)**和网络监控**(SMTP、POP3、HTTP 和 NNTP 等),**当然也支持用户自定义的监控脚本**。

它还支持一种更加通用和安全的采集方式:NREP(Nagios Remote Plugin Executor)。它会先在远端启动一个 NREP 守护进程,用于在远端主机上运行检测命令,在 Nagios 服务端用 check nrep 的 plugin 插件通过 SSL 对接到 NREP 守护进程执行相应的监控行为。相比 SSH 远程执行命令的方式,这种方式更加安全。

4

#### Prometheus(普罗米修斯)

随着这几年云环境的发展,Prometheus 被广泛地认可。它的本质是时间序列数据库,而 Zabbix 采用 MySQL 进行数据存储。

从上面我们对时间序列数据库的分析来看,Prometheus 能够很好地支持大量数据的写入。

它采用拉的模式(Pull)从应用中拉取数据,并通过 Alert 模块实现监控预警。据说单机可以消费百万级时间序列。

一起来看看 Prometheus 的几大组件:

- Prometheus Server,用于收集和存储时间序列数据,负责监控数据的获取,存储以及查询。
- 监控目标配置,Prometheus Server 可以通过静态配置管理监控目标,也可以配合 Service Discovery(K8s,DNS,Consul)实现动态管理监控目标。
- 监控目标存储,Prometheus Server 本身就是一个时序数据库,将采集到的监控数据按照时间序列存储在本地磁盘中。
- 监控数据查询,Prometheus Server 对外提供了自定义的 PromQL 语言,实现对数据的查询以及分析。
- Client Library,客户端库。为需要监控的服务生成相应的 Metrics 并暴露给 Prometheus Server。
- 当 Prometheus Server 来 Pull 时,直接返回实时状态的 Metrics。通常会和 Job 一起合作。
- Push Gateway,主要用于短期的 Jobs。由于这类 Jobs 存在时间较短,可能在 Prometheus 来 Pull 之前就消失了。为此,这些 Jobs 可以直接向 Prometheus Server 端推送它们的 Metrics。
- Exporters,第三方服务接口。将 Metrics(数据集合)发送给 Prometheus。
- Exporter 将监控数据采集的端点,通过 HTTP 的形式暴露给 Prometheus Server,使其通过 Endpoint 端点获取监控数据。
- Alertmanager,从 Prometheus Server 端接收到 Alerts 后,会对数据进行处理。例如:去重,分组,然后根据规则,发出报警。
- Web UI,Prometheus Server 内置的 Express Browser UI,通过 PromQL 实现数据的查询以及可视化。

综合对比

zabbix介绍

1 zabbix的优点

1灵活的阀值定义
2高度可配置化的告警
3实时图表绘制  
4丰富的可视化选项
5配置简单
6自动和自动注册
7易于扩展的agent
posted @   高压锅炖主播  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
点击右上角即可分享
微信分享提示