date: 2020-10-08title: Prometheus监控tomcat #标题
tags: 监控 #标签
categories: 监控 # 分类
记录Prometheus监控tomcat,参考项目:github
制作tomcat镜像
先从github或我的网盘下载(提取码:ubcx )相关jar包及war包,然后上传至服务器。
$ mkdir tomcat/ && cd tomcat/
$ cat > Dockerfile << EOF
FROM tomcat
ADD simpleclient_common-0.9.0.jar /usr/local/tomcat/lib/
ADD simpleclient_servlet-0.9.0.jar /usr/local/tomcat/lib/
ADD simpleclient-0.9.0.jar /usr/local/tomcat/lib/
ADD simpleclient_hotspot-0.9.0.jar /usr/local/tomcat/lib/
ADD tomcat_exporter_client-0.0.13.jar /usr/local/tomcat/lib/
ADD metrics.war /usr/local/tomcat/webapps/
EOF
docker build -t tomcat:latest .
# 待镜像生成后,自行导入到其他节点,或上传至你的私有镜像仓库。
运行tomcat容器
$ cat deploy.yaml # 准备yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
namespace: default
spec:
selector:
matchLabels:
app: tomcat
replicas: 2 # 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' # 必须有此字段,Prometheus才可以采集到
spec:
containers:
- name: tomcat
#image: xianchao/tomcat_prometheus:v1 如果你自己没做镜像,可以使用此镜像
image: tomcat:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
securityContext:
privileged: true
---
# service可创建,也可不创建
kind: Service
apiVersion: v1
metadata:
# annotations:
# prometheus.io/scrape: 'true'
name: tomcat-service
spec:
selector:
app: tomcat
ports:
- nodePort: 31360
port: 8080
protocol: TCP
targetPort: 8080
type: NodePort
$ kubectl apply -f deploy.yaml # 执行yaml文件
$ kubectl get pods # 确认pod处于运行状态
NAME READY STATUS RESTARTS AGE
tomcat-deployment-5c4c9c79f7-8lfvk 1/1 Running 0 52s
tomcat-deployment-5c4c9c79f7-xb5gk 1/1 Running 0 52s