【云原生 | Kubernetes 系列】---Prometheus 监控Java服务
2023-09-14 09:15:20 时间
1. Prometheus 监控Java服务
基于第三方exporter实现对目的服务的监控
监控tomcat的活跃连接数,堆栈内存等信息:
tomcat_connections_active_total{name="http-nio-8080",} 2.0
jvm_memory_bytes_used{area="heap",} 2.4451216E7
2. 自定义镜像
FROM tomcat:8.5.73
ADD server.xml /usr/local/tomcat/conf/server.xml
RUN mkdir /data/tomcat/webapps -p
ADD myapp /data/tomcat/webapps/myapp
ADD metrics.war /data/tomcat/webapps
ADD simpleclient-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_common-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_hotspot-0.8.0.jar /usr/local/tomcat/lib/
ADD simpleclient_servlet-0.8.0.jar /usr/local/tomcat/lib/
ADD tomcat_exporter_client-0.0.12.jar /usr/local/tomcat/lib/
EXPOSE 8080 8443 8009
构建镜像
#!/bin/bash
docker build -t harbor.intra.com/wework/tomcat-app1:v1 .
docker push harbor.intra.com/wework/tomcat-app1:v1
启动镜像看一下是否正常
docker run --rm -it -p 8801:8080 harbor.intra.com/wework/tomcat-app1:v1
3. 用Pod方式运行
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
namespace: default
spec:
selector:
matchLabels:
app: tomcat
replicas: 1 # tells deployment to run 2 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: tomcat
annotations:
prometheus.io/scrape: 'true'
spec:
containers:
- name: tomcat
image: harbor.intra.com/wework/tomcat-app1:v1
ports:
- containerPort: 8080
securityContext:
privileged: true
---
kind: Service
apiVersion: v1
metadata:
name: tomcat-service
spec:
selector:
app: tomcat
ports:
- nodePort: 31080
port: 80
protocol: TCP
targetPort: 8080
type: NodePort
部署
kubectl apply -f tomcat-deploy.yaml
先测试是否可以打开nodeport的metrics页面
prometheus添加对nodeport的监控
- job_name: "k8s-tomcat-31080"
metrics_path: /metrics
static_configs:
- targets: ["192.168.31.113:31080"]
重启prometheus后就能在prometheus中看到tomcat的信息
grafana导入
相关文章
- java scanner怎么用_Java中Scanner类的用法及使用步骤分享!「建议收藏」
- eclipse创建一个java项目目录_Eclipse创建JAVA项目
- java冒泡排序代码_Java冒泡排序
- java检测网站死链,网站死链检测工具
- 【说站】java内部类的内存泄漏原因
- Java重载和重写的区别「建议收藏」
- java IO流的概念理解「建议收藏」
- php getrealpath,java_java 获取路径的各种方法(总结),(1)、request.getRealPath(“/”);//不推 – phpStudy…
- Java—java.util.calendar类详解「建议收藏」
- Java 代码审计基础知识 — java反射机制
- java中静态变量与实例变量有何区别
- Linux平台上Java新版本发布(linux发布java)
- Java监控Oracle性能的最佳实践(java监控oracle)
- 数据库Java实现Oracle数据库监控(java监听oracle)
- Java轻松使用Redis实现数据高效存储(java使用redis)
- 数据库简易指南:如何使用 Java 连接 MySQL 数据库(java连接mysql)
- 方案Java Redis数据库备份策略(javaredis备份)
- 失效Key处理Redis Java过期失效的Key策略(redisjava过期)
- 数据失效解决Redis Java中数据过期失效问题(redisjava过期)
- Java编程实现MySQL表备份(java备份mysql表)
- Using Java to Work with MongoDB: A Guide for Developers(java操作mongodb)
- Oracle收购了Java一个伟大的转折点(java被oracle吗)
- Java模拟Oracle实现稳定数据库性能(java模仿oracle)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)