1.通过spring-actuator监控jvm数据并开放监控数据
1.1引入依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <exclusions> <exclusion> <artifactId>log4j-api</artifactId> <groupId>org.apache.logging.log4j</groupId> </exclusion> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> <exclusion> <artifactId>log4j-to-slf4j</artifactId> <groupId>org.apache.logging.log4j</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
1.2 开放监控数据的接口
management:
endpoints:
web:
exposure:
include: prometheus # 打开 Prometheus 的 Web 访问 Path
metrics:
# 下面选项建议打开,以监控 http 请求的 P99/P95 等,具体的时间分布可以根据实际情况设置
distribution:
sla:
http:
server:
requests: 1ms,5ms,10ms,50ms,100ms,200ms,500ms,1s,5s
# 在 Prometheus 中添加特别的 Labels
tags:
# 必须加上对应的应用名,因为需要以应用的维度来查看对应的监控
application: ${spring.application.name}
2.通过Prometheus 抓取数据并在grafa配置显示的大屏
2.1 prometheus 安装
Prometheus 安装准备
上传路径:/usr/local
tar -xzvf prometheus-2.38.0.linux-amd64.tar.gz
mv prometheus-2.38.0.linux-amd64 /usr/local/prometheus
cd /usr/local/prometheus
useradd -M -s /sbin/nologin prometheus
mkdir -p /data/prometheus
chown -R prometheus:prometheus /usr/local/prometheus /data/prometheus
cp prometheus /usr/local/bin/
chmod 777 /usr/local/prometheus/ /data/prometheus
配置启动文件
vi /etc/systemd/system/prometheus.service
文件内容:
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
Environment="GOMAXPROCS=4"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/data/prometheus \
--storage.tsdb.retention=30d \
--web.console.libraries=/usr/local/prometheus/console_libraries \
--web.console.templates=/usr/local/prometheus/consoles \
--web.listen-address=0.0.0.0:9090 \
--web.read-timeout=5m \
--web.max-connections=10 \
--query.max-concurrency=20 \
--query.timeout=2m \
--web.enable-lifecycle
ReadWriteDirectories=/data/prometheus
ProtectSystem=full
[Install]
WantedBy=multi-user.target
刷新文件
systemctl daemon-reload
启动命令
systemctl start prometheus #启动
systemctl stop prometheus #停止
systemctl restart prometheus #重启
systemctl status prometheus #查看状态
./promtool check config prometheus.yml #检查配置文件
2.1 大屏配置
待配置