导读

微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。

  • Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说的ELK就是基于Logging。
  • Metrics - 用于记录可聚合的数据。例如,队列的当前深度可被定义为一个度量值,在元素入队或出队时被更新;HTTP 请求个数可被定义为一个计数器,新请求到来时进行累。prometheus专注于Metrics领域。
  • Tracing - 用于记录请求范围内的信息。例如,一次远程方法调用的执行过程和耗时。它是我们排查系统性能问题的利器。最常用的有Skywalking,ping-point,zipkin。

今天我们主要聊聊Prometheus的监控,接下来我们了解下需要涉及的几个关键组件。

Prometheus

Prometheus(中文名:普罗米修斯)是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB). Prometheus使用Go语言开发, 是Google BorgMon监控系统的开源版本。

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态, 任意组件只要提供对应的HTTP接口就可以接入监控. 不需要任何SDK或者其他的集成过程。输出被监控组件信息的HTTP接口被叫做exporter,目前开发常用的组件大部分都有exporter可以直接使用, 比如Nginx、MySQL、Linux系统信息、Mongo、ES等

exporter

prometheus可以理解为一个数据库+数据抓取工具, 工具从各处抓来统一的数据, 放入prometheus这一个时间序列数据库中. 那如何保证各处的数据格式是统一的呢?就是通过这个exporter. Exporter是一类数据采集组件的总称. Exporter负责从目标处搜集数据, 并将其转化为Prometheus支持的格式, 它开放了一个http接口(以便Prometheus来抓取数据). 与传统的数据采集组件不同的是, Exporter并不向中央服务器发送数据, 而是等待中央服务器(如Prometheus等)主动前来抓取。https://github.com/prometheus 有很多写好的exporter,可以直接下载使用。

Grafana

Grafana是一个图形化工具, 它可以从很多种数据源(例如Prometheus)中读取数据信息, 使用很漂亮的图表来展示数据, 并且有很多开源的dashborad可以使用,可以快速地搭建起一个非常精美的监控平台。它与Prometheus的关系就类似于Kibana与ElasticSearch。

环境准备

在开始配置之前请下载以下几个软件(直接从github或者grafana官网下载太慢了,简直是龟速而且容易下载失败,建议使用迅雷下载)。

  • prometheus
  • grafana
  • node_exporter

安装

准备两台服务器,一台用作安装prometheus和grafana,一台用作放置exporter组件。建立应用文件夹,将相关软件上传至服务器。

  • 192.168.249.131 prometheus,grafana
  • 192.168.249.129 exporter

prometheus

使用如下shell命令进行安装并启动

tar zxvf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64 prometheus
cd prometheus
nohup ./prometheus &

启动完成后,用浏览器打开http://192.168.249.131:9090进行访问,效果如下:

grafana

使用如下shell命令进行安装并启动

tar grafana-6.4.3.linux-amd64.tar.gz
cd grafana-6.4.3
nohup ./grafana-server &

启动完成后,用浏览器打开http://192.168.249.131:3000进行访问,默认账号密码为admin/admin,初次登陆需要修改密码,修改密码并登陆效果如下:

node_exporter

使用如下shell命令进行安装并启动

tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
nohup ./node_exporter &

node exporter默认使用9100端口,可以使用--web.listen-address=":9200"指定端口号。
启动完成后,用浏览器打开http://192.168.249.129:9100/进行访问,显示效果如下:

配置

prometheus

进入prometheus安装目录,修改prometheus.yml文件,增加监听job server-192.168.249.129,完整配置如下:

# my global config
global:scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:# - "first_rules.yml"# - "second_rules.yml"scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: '192.168.249.129'static_configs:- targets: ['192.168.249.129:9100']

配置完成后重启prometheus,查看监听状态。

grafana

  • 配置prometheus数据源
  • 去官网寻找对应的表盘,我们选择node exporter监控看板
  • 在grafana中在导入表盘
  • 查看监控效果

至此基于Prometheus的监控环境搭建完成,你也来动手试一下吧。

普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建相关推荐

  1. 普罗米修斯?对!就是 Prometheus ,如何计算 P90 / P99 ? 准确评控服务耗时性能!

    文章目录 普罗米修斯?对!就是 Prometheus ,如何计算 P90 / P99 ? 准确评控服务耗时性能! 服务耗时是对系统性能评估的重要因素 极短的服务耗时是用户体验良好的基准 P90 / P ...

  2. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  3. metrics类型 普罗米修斯_接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  4. 接近完美的监控系统—普罗米修斯

    普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...

  5. 一篇文章搞定Prometheus普罗米修斯监控系统的部署

    Prometheus普罗米修斯监控系统 一.普罗米修斯监控概述 1.1 什么是普罗米修斯监控 二.时间序列数据 2.1 什么是序列数据 2.2 时间序列数据特点 2.3 普罗米修斯特征 三.普罗米修斯 ...

  6. Centos7安装普罗米修斯(Prometheus)监控

    一.普罗米修斯介绍 在古希腊神话中普罗米修斯曾与智慧女神雅典娜共同创造了人类,普罗米修斯负责用泥土雕塑出人的形状,雅典娜则为泥人灌注灵魂,并教会了人类很多知识.普罗米修斯还反抗宙斯,将火种带到人间.在 ...

  7. 普罗米修斯监控服务之PromQL语法和常用计算

    PromQL QL顾名思义,Query language即查询语言.Prometheus作为强大的开源监控系统,最大的依赖便是PromQL.是监控数据个性化查询.展示的基础.所以要掌握Promethe ...

  8. 普罗米修斯(prometheus)应用

    普罗米修斯是一套开源的监控系统,可以监控啥呢?如下: linux服务器 开源软件,如redis.mysql 你自己写的项目 一.安装go语言环境 官网地址:https://golang.org 下载: ...

  9. 普罗米修斯(Promethus)介绍及安装与配置

    这篇文章主要为大家介绍了普罗米修斯基本功能特点及安装与配置实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪! 1. 普罗米修斯概述 Prometheus(是由go语 ...

最新文章

  1. 禅道设置bug模板_JPress v3.0 beta.2 发布,修复 bug 和完善产品细节
  2. 计算机应用基础a,计算机应用基础A卷答案
  3. 关于#!/bin/sh 和 #!/bin/bash 的差别
  4. Windows Server 2003显示中文为乱码(方框)的问题
  5. Android使用ViewPager实现左右滑动效果
  6. [js] 使用ajax请求真的不安全吗?为什么?
  7. JDBC模板对象是多例的
  8. html漂亮的表格模板+背景_咨询amp;金融主题响应式网站着陆页模板
  9. “衰亡”的雅虎:30 亿用户账号全部泄漏还能怎么活?
  10. css中的 font 与 font-size
  11. html meta标签
  12. python 【第一篇】初识python
  13. 第四节 二维连续型随机变量及分布、条件概率密度
  14. __kindof的用法
  15. 一加5android,不输Lineage OS,一加5刷入Paranoid Android体验
  16. 【Matlab数字识别】数字仪表图像识别【含源码 693期】
  17. php开发前端的框架有哪些,网站的一些前端框架有哪些?4个前端框架对比
  18. win10+uefi模式下装引导器之/boot,/efi的区别
  19. 计算机备课组小结,计算机备课组工作总结
  20. CAD关于图层隐藏图层操作(com接口c#语言)

热门文章

  1. excel中怎样用公式获取表单控件_老会计不愿教的工资表汇总公式,真是太好用了...
  2. Android开发之使用Android studio进行两个项目合并的方法
  3. expect switch 多条件_JavaScript-流程控制语句:选择结构(if和switch)
  4. php 使用webservice_PHP中如何调用webservice的实例参考
  5. oracle mysql 创建表,Oracle 创建表用户、空间
  6. matlab火箭升空问题,困扰火箭的三大问题终于要解决了!球迷:我都要膨胀了!...
  7. 创建 Image - 每天5分钟玩转 OpenStack(21)
  8. 深入Spring:自定义注解加载和使用
  9. 仿网易云音乐客户端的底部播放器的实现思路
  10. mongodb服务部署