zoukankan      html  css  js  c++  java
  • Prometheus监控学习笔记之Prometheus监控简介

    0x00 Prometheus容器监控解决方案

    Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的。它是一个独立的开放源码项目,并且独立于任何公司。不同于传统的运维监控工具,Prometheus是面向容器和微服务的监控系统,采用基于时间序列的存储方式,监控采集更加精确,监控频率更高,和容器和微服务兼容性更好。随着目前容器和微服务的使用日趋广泛,Prometheus的应用范围将会越来越广。

    0x01 Prometheus架构

    Prometheus是面向容器和微服务的监控系统,对容器和微服务的兼容性好。

    服务器通过Pull模型以http协议监控数据,监控精确,监控频率高。

    图形数据化展示通过Grafana展示,采用专业的数据函数和公式,将数据以更精准和可读的方式展现出来。

    报警方式通过AlertManager输出,兼容目前市场是主流的报警方式,例如微信,电话,邮件等。

    下面这张图说明了Prometheus的整体架构,以及生态中的一些组件作用: 

    0x02 Prometheus主要特征和优势

    Prometheus的主要特征有:

    • 多维度数据模型
    • 灵活的查询语言
    • 不依赖分布式存储,单个服务器节点是自主的
    • HTTP方式,通过pull模型拉去时间序列数据
    • 也通过中间网关支持push模型
    • 通过服务发现或者静态配置,来发现目标服务对象
    • 支持多种多样的图表和界面展示,grafana也支持它

    Prometheus相对比其他监控的优势:

    • 监控数据的精细程度高,采集精度可以达到1~5s
    • 集群部署速度和监控脚本制作快,大大缩短监控搭建的时间成本
    • 开源软件更新快,bug修复快,周边插件丰富,到手即用,支持多种客户端开发语言
    • 本身基于数学计算模型,直接使用数学公式和数学函数,可以实现很复杂的业务逻辑监控(例如QPA曲线的弯曲、凸起,下跌的比例等模糊概念)
    • 结合Grafana展示图形,效果美观实用
    • 特别针对目前流行容器监控适配,采集深度大

    Prometheus生态包括了很多组件,它们中的一些是可选的:

    • 主服务Prometheus Server负责抓取和存储时间序列数据
    • 客户库负责检测应用程序代码
    • 支持短生命周期的PUSH网关
    • 基于Rails/SQL仪表盘构建器的GUI
    • 多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式
    • 警告管理器
    • 命令行查询工具
    • 其他各种支撑工具
    • 多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署

    0x03 Prometheus配合Grafana和AlertManager实现数据展示和多渠道报警

     

    Grafana展示Prometheus监控的数据

    如下是Prometheus支持的报警渠道,支持邮件,Pageduty,Wehooks,微信等。

    # Configurations for several notification integrations.
    email_configs:
      [ - <email_config>, ... ]
    hipchat_configs:
      [ - <hipchat_config>, ... ]
    pagerduty_configs:
      [ - <pagerduty_config>, ... ]
    pushover_configs:
      [ - <pushover_config>, ... ]
    slack_configs:
      [ - <slack_config>, ... ]
    opsgenie_configs:
      [ - <opsgenie_config>, ... ]
    webhook_configs:
      [ - <webhook_config>, ... ]
    wechat_configs:
      [ - <wechat_config>, ... ]
  • 相关阅读:
    平均要取多少个(0,1)中的随机数才能让和超过1
    perl学习笔记
    K-means
    Mysql数据库常用操作整理
    ETL模型设计
    c++ 面试整理
    vim display line number
    inux 下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用
    Linux命令大总结
    perl learning
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/10096088.html
Copyright © 2011-2022 走看看