当前位置:   article > 正文

【分布式】在树莓派集群中部署k3s+node_exporter+Prometheus+Grafana进行集群的监测和感知_prometheus k3s

prometheus k3s

一、项目介绍

本项目中使用Prometheus监控各项系统或业务的运行状态和健康情况。

其中主要用到exporter插件,Exporter的作用就是将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,然后Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据,也可以理解exporter就是部署在客户端的一个Agent。
exporter官方插件有很多个,如node_exporte,、mysql_exporter以及我们之前所介绍过的blackbox_exporter等,都是非常实际好用的。

最后,使用Grafana对以上的数据进行可视化。

二、组件介绍

1. k3s部署

(1)k3s简介

Kubernetes(业界简称k8s) 确实难学。 部署困难, 概念繁重,由于业界文档乱七八糟,理解起来又特别吃力费解。
拿万事开头难,来形容K8s的部署安装 绝对是再适合不过了。正所谓连安装都解决不了,何谈体验。那时候就在我要放弃的时候,我找到了k3s。

什么是k3s? 你就当作是Rancher团队 体会到了k8s给企业和开发者带来了“重”的痛苦后,所开发出来又完全符合k8s标准的优化版本。
虽然说是优化,但它高度整合了k8s所有的概念,这意味着你在k3s所掌握的知识是可以完美兼容到k8s上。部署方式高效、优雅又简洁,起码你不需要再陷入在部署陷阱里无法自拨。
同时k3s 属于 kubernetes 官方认证的发行版,即使你在企业中使用,只要规模不上数十加百台服务,你完全不用担心k3s会给你带坑。

(2)官网介绍图

在这里插入图片描述

2. exporter

一般来说可以将Exporter分为2类:

  • 直接采集:这一类Exporter直接内置了对Prometheus监控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接内置了用于向Prometheus暴露监控数据的端点。

  • 间接采集:间接采集,原有监控目标并不直接支持Prometheus,因此我们需要通过Prometheus提供的Client Library编写该监控目标的监控采集程序。例如:Mysql Exporter,JMX Exporter,Consul Exporter等。

3. Prometheus

(1)简介:

Prometheus 受启发于 Google 的 Brogmon 监控系统(相似的 Kubernetes 是从 Google 的 Brog 系统演变而来),从 2012 年开始由前 Google 工程师在 Soundcloud 以开源软件的形式进行研发,并且于 2015 年早期对外发布早期版本。 2016 年 5 月继 Kubernetes 之后成为第二个正式加入 CNCF 基金会的项目,同年 6 月正式发布 1.0 版本。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配合。 Prometheus 作为新一代的云原生监控系统,目前已经有超过 650+ 位贡献者参与到 Prometheus 的研发工作上,并且超过 120+ 项的第三方集成。

(2)官方架构图

在这里插入图片描述
borgmon(监控系统)对应克隆的版本:prometheus(go 语言开发)所以 prometheus 特别适合 K8S 的架构上。而作为一个数据监控解决方案,它由一个大型社区支持,有来自 700 多家公司的 6300 个贡献者,13500 个代码提交和 7200 个拉取请求。

(3)prometheus 特性

  • 多维的数据模型(基于时间序列的 Key-value 键值对)
  • 灵活的查询和聚合语言 PromQL
  • 提供本地存储和分布式存储
  • 通过基于 HTTP 和 HTTPS 的 Pull 模型采集时间序列数据(pull数据的推送,时间序列:每段时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
  • 可利用 Pushgateway(Prometheus 的可选中间件)实现 Push 模式
  • 可通过动态服务发现或静态配置发现目标机器(通过 consul 自动发现和收缩)
  • 支持多种图表和数据大盘

——————————————————————————————————————

(4)运维监控平台设计思路

  • 数据收集模块
  • 数据提取模块
  • 监控告警模块
    可细化为6层
第六层:用户展示管理层    同一用户管理、集中监控、集中维护
第五层:告警事件生成层    实时记录告警事件、形成分析图表(趋势分析、可视化)
第四层:告警规则配置层    告警规则设置、告警伐值设置
第三层:数据提取层    定时采集数据到监控模块
第二层:数据展示层    数据生成曲线图展示(对时序数据的动态展示)
第一层:数据收集层    多渠道监控数据
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(5)Prometheus 的监控体系

  • 系统层监控(需要监控的数据)
2. CPU、Load、Memory、swap、disk i/o、process 等
3. 网络监控:网络设备、工作负载、网络延迟、丢包率等
  • 1
  • 2
  • 中间件及基础设施类监控
1. 消息中间件:kafka、redis、RocketMQ 等消息代理/中间件
2. WEB 服务器容器:tomcat、weblogic、apache、php、spring 系列
3. 数据库/缓存数据库:MySQL、PostgreSQL、MogoDB、es、redis
  • 1
  • 2
  • 3

redis 监控内容:

  • redis 所在服务器的系统层监控
  • redis 服务状态
  • RDB AOF 日志监控
    (日志 -》如果是哨兵模式 -》哨兵共享集群信息,产生的日志 -》直接包含的其他节点哨兵信息及 mysql 信息)
  • key 的数量
  • key 被命中的数据/次数
  • 最大连接数 -》redis 和系统 (系统:ulimit -a。redis:redis-cli 登陆 -》config get
    maxclients 查看最大连接。)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1014782
推荐阅读
相关标签
  

闽ICP备14008679号