Prometheus、Grafana安装和配置监控Java应用
Prometheus安装
使用docker
安装
docker
已经安装好之后,正式安装prometheus
。
docker run -d -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/localtime:/etc/localtime prom/prometheus
如果启动成功,访问http://服务器地址:9090
node export 安装
docker run -d -p 9100:9100 quay.io/prometheus/node-exporter
安装完之后,需要修改prometheus.yml
配置文件,增加要监听的job,需要指定job的名称,以及暴露的metrics
的访问路径
- job_name: "node"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9001"] #使用宿主机内网ip
重启prometheus
容器生效
Grafana安装
可以使用grafana
展示监控视图。
docker run -d --name=grafana -p 3001:3000 -v /var/lib/grafana:/var/lib/grafana -v /etc/grafana/grafana.ini:/etc/grafana/grafana.ini -v /etc/localtime:/etc/localtime grafana/grafana
访问http://ip地址:指定的端口
,grafana
安装成功,第一次访问需要修改密码,初始密码是admin/admin
,修改密码之后,需要按照新密码登录。
grafana配置
添加数据源
Name
为数据源名,URL
为prometheus
地址
导入模板
填入8919
导入模板
Prometheus Data Source
为grafana
添加的数据源
监控jvm
web项目中增加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.4</version>
</dependency>
在application.yml
中添加配置
management:
endpoints:
web:
exposure:
include: '*' #开启 Actuator 服务
metrics: #将该工程应用名称添加到计量器注册表的 tag 中
tags:
application: ${spring.application.name} #应用名称比如:app
在工程启动主类中增加监控 JVM 性能指标注释下的
内容:
@SpringBootApplication
public class WebsiteApplication {
public static void main(String[] args) {
SpringApplication.run(WebsiteApplication.class, args);
}
//监控 JVM 性能指标
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName){
return registry -> registry.config().commonTags("application", applicationName);
}
}
启动动服务,浏览器访问 http://127.0.0.1:8088/actuator/prometheus
就可以看到应用的 一系列不同类型 metrics
信息
Prometheus配置新增
在prometheus.yml
文件新增如下配置:
- job_name: 'application'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
file_sd_configs:
- files: ['/etc/prometheus/*.json']
新建json
文件app.json
,内容如下:
[
{
"targets": [
"ip:port" //项目访问地址
],
"labels": {
"instance": "app", //可使用应用名称
"service": "app-service"
}
}
//可增加多个项目的配置
]
重启 Prometheus
服务,查看 Prometheu
界面 Target
中确认是否添加成功。
配置 Grafana JVM Dashboard 监控项
参考grafana配置中导入模板的操作,导入4701
模板
效果如下:
参考地址:
https://blog.csdn.net/aixiaoyang168/article/details/100866159
https://cloud.tencent.com/developer/article/1442143
https://www.jianshu.com/p/12df755f2c66