前言
因本人在集成过程中踩过了坑,故会很详细的列出有坑的地方,你们在集成的过程中也会非常顺利
本人使用的项目是SpringBoot项目,所以第二步是添加Maven依赖,如果你使用的其他开发语言也不用担心,只用在第二部换一下依赖就可以
一、成品展示
先给你们看看成品,让你们学习的更有激情
二、项目添加依赖
1、添加Maven依赖
这里以SpringBoot项目为例,添加的Maven依赖如下:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
因为没有填写版本号,这里分两种情况:
-
不填版本号没有报错,并且还有以下图标
你是不是感觉到疑惑,我什么时候添加了prometheus的父依赖 ,咱们跟着步骤接着看
到这里就清楚了吧
-
报错并提示你填写版本号
那就说明你不是用的SpringBoot项目,如果你看了情况1,就知道了该添加一个SpringBoot的依赖,prometheus的版本会跟着你SpringBoot的版本,笔者这里使用的2.2.0.RELEASE版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
到这里,依赖就添加完了
2、配置文件
然后将你的配置文件中actuator安全配置的端点打开,在项目的配置文件中加入配置:
① yml文件
management:
endpoints:
web:
exposure:
include: *
health:
show-details: always
prometheus:
enabled: true
② properties文件
management.endpoints.web.exposure.include=*
management.server.servlet.context-path=/
management.endpoint.prometheus.enabled=true
management.endpoint.health.show-details=always
3、运行项目,浏览器访问
http://项目所在服务器ip:项目使用的port端口号/actuator/prometheus
我这里私服为例:http://192.168.1.125:35010/actuator/prometheus
有上面的配置信息显示则配置成功
三、安装Prometheus
1、下载镜像
笔者这里使用的docker安装,如果你使用的安装包安装也是一样的,只不过我觉得docker更加的方便
# 这里的tag是版本,如果你没有版本要求,那可以直接下载最新版本:latest
docker pull prom/prometheus:tag
安装完成后 docker images 查看镜像是否存在
2、编写配置文件
找一个服务器目录,我一般将docker容器的映射文件统一放在一个目录中,输入以下命令
# 新建目录 根据你想存放的目录而定
mkdir /data/docker-container/prometheus
# 新建文件
cd /data/docker-container/prometheus
touch prometheus.yml
然后将以下配置复制
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).
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# 这里配置的是prometheus的信息,也可以不要
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
# 这里配置你的项目信息
- job_name: 'nc-console-service' # 项目名称,自定义
metrics_path: '/actuator/prometheus' # 指标获取路径
scrape_interval: 20s # 间隔
scrape_timeout: 20s
static_configs:
- targets: ['192.168.1.125:35010'] # 这里填写你项目访问ip:port,可以多个
然后通过 vim prometheus.yml 命令,按以下 i 进入编辑模式,粘贴以上内容,按 esc ,在输入命令:wq 保存退出
3、运行访问
因为prometheus所用的端口号为9090,如果你使用的不是容器化安装,则先检查是否端口被占用
# 检查端口使用情况,没有信息输出代表端口没有被占用
lsof -i:9090
# 如果提示lsof命令不存在,可安装一个
yum install lsof
找到prometheus镜像id,使用 docker images 命令查看
运行prometheus
docker run -d --name prometheus -p 9090:9090 -v /data/docker-container/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml 620d5e2a39df --config.file=/etc/prometheus/prometheus.yml
这里的docker命令不多做赘述,有以下容器id出现代表命令执行成功
使用 docker logs 44d 查看日志,这里的44d是容器id的前3位
又上图信息则ok,我们在浏览器中访问 http://192.168.1.125:9090/
up说明项目是健康的,由于prometheus的界面可视化不强,可以安装Grafana让我们看的更仔细
四、安装Grafana
1、下载镜像
这里的安装和prometheus的安装基本一样,更加的简单
# 先安装,这里直接下载最新的
docker pull grafana/grafana
# 新建一个数据目录
mkdir /data/docker-container/grafana/
# 查看端口占用情况
lsof -i:3000
2、运行
docker run -d --name grafana -u root -p 3000:3000 -v /data/docker-container/grafana:/var/lib/grafana 06e5d59b720d
/var/lib/grafana 为数据目录,包含一个插件文件夹以及一个 db 文件,该文件会存储用户在界面中操作及一些系统配置
-u root,这里映射了目录,可能需要创建目录文件,需要root权限
3、浏览器访问
http://192.168.1.125:3000/
第一次登录默认的账号密码都为 admin,会让你修改密码
4、配置数据源
只用填写名称和地址保存即可 ,数据源就创建好了
5、添加JVM监控面板
网上有很多模版,我这里选择的是4701,也是第一步成品展示的模版,你也可以在以下地址中找一个模版 Dashboards | Grafana Labs
选择好之后load,可以自定义面板名称,然后选择我们刚才创建的数据源import就ok了
然后面板就有了
是不是很简单,但是想看懂上面的指标,可得学习学习咯