一、prometheus企业级监控实战

任务背景(实战)

某某某公司是一家电商网站,由于公司的业务快速发展,公司要求对现有机器进行业务监控,责成运维部门来实施这个项目。

笔记配套视频效果更佳哦:视频地址:https://edu.51cto.com/lecturer/14390454.html

  • 任务要求

(1)部署监控服务器,实现7x24实时监控
(2)做好问题预警机制,对可能
一级报警 电话通知
二级报警 微信通知
三级报警 邮件通知
(3)处理好公司服务器异地集中监控问题.

  • 任务分析

为什么要监控?
答: 实时收集数据,通过报警及时发现问题,及时处理。数据为优化也可以提供依据。

监控四要素:
监控对象 [主机(内存、磁盘空间等) 业务(端口、状态)]
用什么监控 [zabbix-server zabbix-agent] ========> 普罗米修斯监控
什么时间监控 [7x24 5x8]
报警给谁 [管理员]

项目选型:

  • mrtg (Multi Router Traffic Grapher)通过snmp协议得到设备的流量信息,并以包含PNG格式的图形的HTML文档方式显示给用户。
  • cacti (仙人掌) 用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据。官网地址: https://www.cacti.net/
    ntop 官网地址: https://www.ntop.org/
  • nagios 能够跨平台,插件多,报警功能强大。官网地址: https://www.nagios.org/
    centreon 底层使用的就是nagios。是一个nagios整合版软件。官网地址:https://www.centreon.com/
  • ganglia 设计用于测量数以千计的节点,资源消耗非常小。官网地址:http://ganglia.info/
  • open-falcon 小米发布的运维监控软件,高效率,高可用。时间较短,用户基数小。官网地址: http://open-falcon.org/
  • zabbix 跨平台,画图,多条件告警,多种API接口。使用基数特别大。官网地址: https://www.zabbix.com/
  • prometheus 基于时间序列的数值数据的容器监控解决方案。官网地址: https://prometheus.io/

综合分析:Prometheus比较适合公司的监控需求

Prometheus介绍

prometheus官网:官网地址

1.1 Prometheus的特点

  • 多维度数据模型,使用时间序列数据库TSDB而不使用mysql。

  • 灵活的查询语言PromQL。

  • 不依赖分布式存储,单个服务器节点是自主的。

  • 主要基于HTTP的pull方式主动采集时序数据。

  • 也可通过pushgateway获取主动推送到网关的数据。

  • 通过服务发现或者静态配置来发现目标服务对象。

  • 支持多种多样的图表和界面展示,比如Grafana等。

1.2 基本原理

1.2.1 原理说明

Prometheus的基本原理是通过各种exporter提供的HTTP协议接口

周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。

不需要任何SDK或者其他的集成过程,非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。

互联网公司常用的组件大部分都有exporter可以直接使用,如Nginx、MySQL、Linux系统信息等。

1.2.2 架构图:

img

1.2.3 三大组件

  • Server 主要负责数据采集和存储,提供PromQL查询语言的支持。

  • Alertmanager 警告管理器,用来进行报警。

  • Push Gateway 支持临时性Job主动推送指标的中间网关。

1.2.4 架构服务过程

Prometheus Daemon负责定时去目标上抓取metrics(指标)数据
每个抓取目标需要暴露一个http服务的接口给它定时抓取。
支持通过配置文件、文本文件、Zookeeper、DNS SRV Lookup等方式指定抓取目标。

PushGateway用于Client主动推送metrics到PushGateway
而Prometheus只是定时去Gateway上抓取数据。
适合一次性、短生命周期的服务。

Prometheus在TSDB数据库存储抓取的所有数据
通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中。

Prometheus通过PromQL和其他API可视化地展示收集的数据。
支持Grafana、Promdash等方式的图表数据可视化。
Prometheus还提供HTTP API的查询方式,自定义所需要的输出。

Alertmanager是独立于Prometheus的一个报警组件
支持Prometheus的查询语句,提供十分灵活的报警方式。

笔记配套视频效果更佳哦:视频地址:https://edu.51cto.com/lecturer/14390454.html

posted @ 2022-01-19 17:27  老王教你学Linux  阅读(128)  评论(0编辑  收藏  举报