身处小公司,全栈(全干)攻城狮,没有闲篇,直接开干。
一、准备内容
本次搭建环境共涉及2台服务器,分别是A服务器(192.168.1.30),B服务器(192.168.1.31)
8899: cAdvisor--docker容器监控
9090: prometheus端口
9100:node_exporter---收集主机的监控数据
9093: alertmanager ---告警组件
9094:飞书端口
需要防火墙放开端口,就不一一列举。
命令如下:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" port protocol="tcp" port="9093" accept"
firewall-cmd --reload
如果部署在阿里云等云服务器,还需要在阿里云的安全规则中放行相关端口。
1.2需要在各个服务的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>
1.3需要在各个服务的nacos配置中添加如下内容
另外需要注意:配置以后可能不生效,需要重启nacos和相关服务
management:
endpoints:
web:
exposure:
# 暴露相关项目信息
include: "prometheus" # 只暴露/actuator/prometheus
endpoint:
prometheus:
enabled: true
health:
show-details: always
metrics:
export:
prometheus:
enabled: true
1.4 在Dockerfile中java执行命令添加参数
此参数可不加,根据自己情况而定。
"-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/data/soft/dump/服务.hprof","-XX:+ExitOnOutOfMemoryError","-XX:MaxRAMPercentage=75.0"
其中:
-XX:+HeapDumpOnOutOfMemoryError:参数表示当JVM发生OOM时,自动生成DUMP文件
-XX:HeapDumpPath=/temp/dump/服务.hprof:生成dump目录文件的位置以及文件名称
-XX:+ExitOnOutOfMemoryError:JVM在第一次出现内存不足错误时退出,启动JVM实例
-XX:MaxRAMPercentage=75.0: 这为JVM定义了75%的总内存限制
1.5 安装Telnet服务
yum install telnet telnet-server
二、架构图
架构设计图如下所示: