prometheus + grafna 监控

前提

项目重要技术栈主要是Spring cloud 2.x + docker

现状

项目中使用到Spring boot admin ,zipkin,以及http上报等形式收集数据,mysql持久化必要数据,在superset上连接数据源,以图表的形式展示数据

改进目标

目前有多个纬度,不同的监控平台,需要登陆多个地址去查看不同的数据,稍显繁琐,并且数据统计形式比较乱,查看也不方便,希望有一个统一的监控平台

选型

最后选择Prometheus和Grafna
监控产品有很多,比如Prometheus,Graphite,InfluxDB,OpenTSDB等有很多时间序列数据库。有兴趣可以去官网看下Prometheus和其他产品的对比。

快速搭建过程

这个仅仅是一个快速上手的描述,如果有需要请按照官方文档说下进行按需配置。

  1. 项目中改动:
    引入Jar包,最新版本可以去maven仓库寻找
<dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>1.0.8</version>
    </dependency>
  </dependencies>

yml文件中添加配置:

management:
  security:
    enabled: false
  endpoints:
    web:
      exposure:
        include: '*'

ps:这个改动是因为Spring boot 2.x 默认只暴露info和health接口,需要暴露出其他接口。(*是图测试省事,如果服务暴露公网的情况,自己酌情暴露需要的服务,一般情况下是不需要暴露公网的)
这两步过后,启动服务,就会采集一些监控信息,并且通过http://localhost:8080/actuator/prometheus进行暴露出来,可以看到metric数据。原理就是prometheus定时去扫描配置文件中配置的targets,获取metric然后存入prometheus中。

  1. docker启动prometheus+grafna
    编写prometheus.xml的简单配置文件,配置项有很多,详情参考官方文档:
global:
  scrape_interval:     5s
  evaluation_interval: 5s
scrape_configs:
  - job_name: 'metric_job'
    metrics_path: '/actuator/prometheus'
    static_configs:
    - targets: ['localhost:8080'] #Provide your ip and Do not give localhost as we are running the Prometheus in docker
      labels:
        application: demo-service

ps:注意事项
在docker环境下,promethus 配置job扫描机器和 grafna配置数据源都需要使用真实IP。上面targets是写死的机器IP和端口,这个为了灵活性最好配置成类似consul注册中心的形式,prometheus支持主流的配置中心,请移步文档查看。还有生产中请不要单机运行,查看文档如何集群部署。

  1. 编写docker-compose文件
version: '3'

services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
    depends_on:
      - prometheus
  1. 启动docker容器
docker-compose up -d

启动完成后校验一下:
prometheus访问:http://localhost:9090
grafna 访问:http://localhost:3000

grafna配置监控项

主要配置监控内容:

  1. Basic
    应用启动时间,运行时长,cpu使用率,内存使用率等


    image.png
  2. JVM
    Eden,Survivor,Old,MetaData 等Space,classload数,线程数,gc数,gc停顿时长等信息


    image.png
  3. Http
    Http请求数,Http响应时长,各个状态码等请求数,请求速率(QPS)等


    image.png
  4. Log
    各种级别log等数量,主要关注error和warn~

  5. 其他
    根据actuator/prometheus接口的收集的内容,结合prometheus提供的各种函数,可以根据需求显示自己想要的监控信息。
    ps: 重点!!!理清自己的需求,需要监控那些信息,熟悉prometheus的各种使用方式和函数。官方文档~!
    比如:

topk(5, sum(rate(http_requests_total[$__range])) by (instance))

比如$__range == 1m,统计instance这个实例1m内请求速率等top5

  1. 统计机器信息
    通过在本地安装node_exporter这个go服务,可以收集本地机器的监控信息。具体信息详情查看官方文档
配置grafna等小技巧(官方文档中有):
  1. 配置变量
    在dashboard等setting中配置,下图配置都prometheus都两个变量,application 和 instance,instance根据application来获取的,很方便灵活


    image.png

    使用变量,通过$variable来使用


    image.png

    最后是使用效果,根据配置的变量,选择变量,下面的dashboard会相应的变动。
    image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容