赞
踩
说明:
Prometheus:
是一个服务监控系统。它可以在给定的时间间隔从配置的目标收集监控指标,并在观察到指定条件时触发警报;
Grafana:
一个将监控的各项指标可视化的工具,其中有很多dashbord,即仪表盘,用来展示监控的各项指标数据;
下载地址:
Prometheus:https://prometheus.io/download/
Grafana:https://grafana.com/grafana/download
主要实现:(均已测试)
1:SpringBoot集成Prometheus,监控Java项目运行;
2:Prometheus监控Tomcat;
3:Prometheus监控Windows服务器(开发环境监控Windows10;生成环境监控Windows Server
2008均已测试);
SpringBoot集成Prometheus监控Java项目:
准备工作:
自行下载Prometheus及Grafana;
步骤:
1:下载好的Prometheus及Grafana;
2:SpringBoot项目集成监控
依赖:
-
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.4.0</version>
- </parent>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
-
- <!--监控报警-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- <dependency>
- <groupId>io.micrometer</groupId>
- <artifactId>micrometer-registry-prometheus</artifactId>
- </dependency>
- </dependencies>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
application.yml配置:
- server:
- port: 80
- # JVM监控
- management:
- endpoints:
- web:
- exposure:
- include: '*'
- base-path: /actuator # 默认actuator
- metrics:
- tags:
- application: App # 启动类名称
配置文件:
- import io.micrometer.core.instrument.MeterRegistry;
- import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- @Configuration
- public class MicrometerConfiguration {
- @Bean
- MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
- return meterRegistry1 -> {
- meterRegistry.config() // 注册
- .commonTags("application", "App"); // App:为启动类名称
- };
- }
- }
3:修改Prometheus中的prometheus.yml文件,指定监控对象:
- # 此处只贴了配置部分,该配置文件其它部分不需要动
- scrape_configs:
- # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- - job_name: "prometheus"
-
- # metrics_path defaults to '/metrics'
- # scheme defaults to 'http'.
-
- static_configs:
- - targets: ["localhost:9090"]
-
- - job_name: 'manager-api'
- scrape_interval: 5s
- metrics_path: '/actuator/prometheus' # 指标获取路径
- static_configs:
- - targets: ["IP地址:80"] # 80 为你Java项目的启动端口
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
4:启动Prometheus&Grafana&Java项目
Prometheus(启动时默认读取prometheus.yml文件,默认端口9090)
安装目录->prometheus.exe
Grafana(默认端口3000)
安装目录->bin->grafana-server.exe
5:查看监控节点启动情况:
6:到Grafana配置数据源及选择合适的dashboard
第一次访问需要你输入账户/密码,默认账户/密码(admin/admin)
①:添加数据源
②:选择并配置数据源
③:测试通过后选择dashboard
完成:
更多dashboard地址:
https://grafana.com/grafana/dashboards/
Prometheus监控Tomcat
准备:
1:tomcat
2:jmx_prometheus_javaagent-0.3.1.jar(自行下载)
3:tomcat.yml(自行新建)
步骤:
1:tomcat.yml内容:(不同的dashboard可能略有不同,详情参考官网)
- ---
- lowercaseOutputLabelNames: true
- lowercaseOutputName: true
- whitelistObjectNames: ["java.lang:type=OperatingSystem", "Catalina:*"]
- blacklistObjectNames: []
- rules:
- - pattern: 'Catalina<type=Server><>serverInfo: (.+)'
- name: tomcat_serverinfo
- value: 1
- labels:
- serverInfo: "$1"
- type: COUNTER
- - pattern: 'Catalina<type=GlobalRequestProcessor, name=\"(\w+-\w+)-(\d+)\"><>(\w+):'
- name: tomcat_$3_total
- labels:
- port: "$2"
- protocol: "$1"
- help: Tomcat global $3
- type: COUNTER
- - pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), name=([-a-zA-Z0-9+/$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|processingTime|errorCount):'
- name: tomcat_servlet_$3_total
- labels:
- module: "$1"
- servlet: "$2"
- help: Tomcat servlet $3 total
- type: COUNTER
- - pattern: 'Catalina<type=ThreadPool, name="(\w+-\w+)-(\d+)"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):'
- name: tomcat_threadpool_$3
- labels:
- port: "$2"
- protocol: "$1"
- help: Tomcat threadpool $3
- type: GAUGE
- - pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), context=([-a-zA-Z0-9+/$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):'
- name: tomcat_session_$3_total
- labels:
- context: "$2"
- host: "$1"
- help: Tomcat session $3 total
- type: COUNTER
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
2:将tomcat.yml和jmx_prometheus_javaagent-0.3.1.jar放置于tomcat的bin目录中(无硬性要求只
是在配置catalina.bat时更方便一些)
3:修改tomcat的catalina.bat文件
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:.\jmx_prometheus_javaagent-0.3.1.jar=9000:.\tomcat.yml"
4:在Prometheus的安装目录中额外再新增tomcat.yml并修改prometheus.yml文件:
新增tomcat.yml文件:
- - targets:
- - localhost:9000 # catalina.bat中配置的指标收集器端口
- labels:
- idc: js_company
- service: tomcat
修改prometheus.yml文件:
在prometheus.yml中添加关于监控的tomcat的配置;
- - job_name: 'tomcat'
- file_sd_configs:
- - files: ['./tomcat.yml']
- refresh_interval: 180s
5:启动tomcat&查看Prometheus中关于tomcat节点的情况&在Grafana中配置数据源并选择Tomcat
的dashboard;
6:tomcat(dashboard ID:8704)
7:完成:
Prometheus监控Windows服务器
准备:
windows_exporter-0.16.0-amd64.exe(自行安装,默认端口9182)
步骤:
1:启动 windows_exporter-0.16.0-amd64.exe
查看启动情况:
2:配置prometheus.yml文件,增加对Windows的监听
- - job_name: 'windows'
- scrape_interval: 10s
- scrape_timeout: 10s
- static_configs:
- - targets: ['localhost:9182']
3:查看该节点状态:
4:在Grafana中配置数据源&选择合适的dashboard:(Windows dashboardID:10467)
5:完成
路漫漫其修远兮,吾将上下而求索;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。