Prometheus+node_exporter+grafana打造spring boot项目的监控系统

参考:Prometheus+node_exporter+grafana打造spring boot项目的监控系统 - 简书

0. 先看监控的效果

0.1,监控了一台机器的负荷情况:

0.2,监控了一个springboot服务的负荷情况


1. 介绍

Prometheus:

一个监控系统,集成在项目中可以对项目运行的一些情况进行监控,并将监控的数据存储在文件中,并可以通过自带的页面端查询到这些数据。

node_exporter:

一个监控系统,集成在服务器中,可以监控主机的运行状况,可以将node_exporter集成到Prometheus的管理端,通过Prometheus提供的页面查询到相应的数据

grafana:

一个显示页面,比Prometheus自带的更好看,更形象,可以通过给grafana配置Prometheus的数据源,让grafana显示Prometheus的数据。当然除了Prometheus,它也支持其他的数据源

安装顺序:

  1. 先安装node_exporter+配置springboot项目

  2. 安装配置Prometheus

  3. 安装配置grafana


2. 安装配置node_exporter,监控Linux机器负荷

2.1,下载:“node_exporter-1.3.1.linux-amd64.tar”文件解压运行node_exporter。

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar -zxf node_exporter-1.3.1.linux-amd64.tar.gz 
cd node_exporter-1.3.1.linux-amd64/
nohup ./node_exporter & #启动node_exporter,默认9100端口
netstat -ntpl  #查看当前端口,默认端口9100

2.2,配置开机自动启动 

$ vi /etc/rc.local
//在最下方添加如下命令,保存即可
cd /home/vmuser/apps/node_export/node_exporter-1.3.1.linux-amd64
nohup ./node_exporter &

启动后,可以看到默认端口9100


3.springboot项目配置监控

3.1springboot加入micrometer

pom里加入依赖


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

 3.2,application类里加入如下代码

import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;

@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
	return (registry) -> registry.config().commonTags("application", applicationName);
}

3.3,application.yml里加配置

#开放所有页面节点  默认只开启了health、info两个节点
management:
  endpoints:
    web:
      exposure:
        include:  '*'
  metrics:
    tags:
      application: ${spring.application.name}

3.4,访问actuator

如果有登录拦截之类的,把 /**/actuator/** 的路径放开

启动后,访问

http://ip:port/xxxx/actuator/ 可以看到有哪些可以访问的指标路径


 4. 安装配置Prometheus,并监控Prometheus自身

4.1,去官网下载压缩包,解压安装

4.2,docker安装

配置prometheus.yml文件:/opt/prometheus/prometheus.yml

global:
  scrape_interval:     60s
  evaluation_interval: 60s
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['局域网地址:端口'] #prometheus的端口9090,局域网地址才行!!
        labels:
          instance: prometheus
  - job_name: Linux
    static_configs:
      - targets: ['局域网地址:端口'] #node_export,默认9100
  - job_name: 'flower' #springboot服务名
    metrics_path: '/actuator/prometheus'    # endpoint
    scrape_interval: 15s                    # 信息收集间隔10秒
    static_configs:
      - targets: ['局域网地址:端口']  # springboot项目地址+端口
#- targets: ['192.168.120.60:9101','192.168.120.61:9101','192.168.120.62:9101']
##        label

4.3,docker安装+启动。

# 下载Prometheus镜像
docker pull prom/prometheus

# 创建Prometheus容器,默认端口9090,这里映射一下端口,方便管理
docker run -d --name=prometheus -p 9191:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

#查看所有服务
docker ps -a
8a94619f4803   prom/prometheus   "/bin/prometheus --c…"   4 days ago   Up 2 days   0.0.0.0:9191->9090/tcp   prometheus

#设置随容器启动,自动启动 
docker update --restart=always 8a94619f4803 

4.4,启动后查看 


5.安装配置Grafana

5.1,docker安装

# 下载镜像
docker pull grafana/grafana

# 创建容器
docker run -itd --name=grafana \
	--restart=always \
	-p 3000:3000 \
	grafana/grafana

5.2,访问 http://机器ip:3000,默认账号密码都是:admin 

第一次登录,会要求修改密码。。。


6.Grafana配置使用Prometheus

6.1,配置prometheus数据源

菜单:

http://局域网地址:prometheus端口

6.2,配置监控面板dashboards

可以配置多个监控模版,监控机器、springboot项目、redis,等等。

菜单:

输入模版号:8919

常用模版:dashboard的网址https://grafana.com/dashboards

主机监控展示看板 Node-exporter 导入 8919 模板
容器监控展示看板 cadvisor-exporter 导入193 模板
应用监控展示看板 jmx-exporter 导入8563 模板
Redis监控展示看板 Redis-exporter 导入2751 模板
进程监控展示看板 Process-exporter 导入249 模板

然后载入模版,选择数据源为刚刚创建的prometheus

 创建完后,进入面板首页,就可以看到配置的面板了。

查看一个【1 Node Exporter for Prometheus Dashboard CN 20201010】

,就是我们开头提到的一个面板图片了:

7.Prometheus自己的监控界面

7.1,http://ip:端口/targets  ,yml里配置的几个job,在这里查看状态:

7.2,切换到 http://ip:端口/graph 页面

查看微服务使用内存,

输入:jvm_gc_memory_allocated_bytes_total{application="flower"}

flower是微服务名称

8.使用wrk压测该接口

开4个线程,并发2000,测试100秒。

wrk -t4 -c2000 -d100s  http://127.0.0.1:7070/flower

到此结束,其他用法有待探索。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值