date: 2020-10-08title: Prometheus监控tomcat #标题
tags: 监控 #标签
categories: 监控 # 分类

记录Prometheus监控tomcat,参考项目:github

制作tomcat镜像

先从github我的网盘下载(提取码:ubcx )相关jar包及war包,然后上传至服务器。

  1. $ mkdir tomcat/ && cd tomcat/
  2. $ cat > Dockerfile << EOF
  3. FROM tomcat
  4. ADD simpleclient_common-0.9.0.jar /usr/local/tomcat/lib/
  5. ADD simpleclient_servlet-0.9.0.jar /usr/local/tomcat/lib/
  6. ADD simpleclient-0.9.0.jar /usr/local/tomcat/lib/
  7. ADD simpleclient_hotspot-0.9.0.jar /usr/local/tomcat/lib/
  8. ADD tomcat_exporter_client-0.0.13.jar /usr/local/tomcat/lib/
  9. ADD metrics.war /usr/local/tomcat/webapps/
  10. EOF
  11. docker build -t tomcat:latest .
  12. # 待镜像生成后,自行导入到其他节点,或上传至你的私有镜像仓库。

运行tomcat容器

  1. $ cat deploy.yaml # 准备yaml文件
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: tomcat-deployment
  6. namespace: default
  7. spec:
  8. selector:
  9. matchLabels:
  10. app: tomcat
  11. replicas: 2 # tells deployment to run 2 pods matching the template
  12. template: # create pods using pod definition in this template
  13. metadata:
  14. labels:
  15. app: tomcat
  16. annotations:
  17. prometheus.io/scrape: 'true' # 必须有此字段,Prometheus才可以采集到
  18. spec:
  19. containers:
  20. - name: tomcat
  21. #image: xianchao/tomcat_prometheus:v1 如果你自己没做镜像,可以使用此镜像
  22. image: tomcat:latest
  23. imagePullPolicy: IfNotPresent
  24. ports:
  25. - containerPort: 8080
  26. securityContext:
  27. privileged: true
  28. ---
  29. # service可创建,也可不创建
  30. kind: Service
  31. apiVersion: v1
  32. metadata:
  33. # annotations:
  34. # prometheus.io/scrape: 'true'
  35. name: tomcat-service
  36. spec:
  37. selector:
  38. app: tomcat
  39. ports:
  40. - nodePort: 31360
  41. port: 8080
  42. protocol: TCP
  43. targetPort: 8080
  44. type: NodePort
  45. $ kubectl apply -f deploy.yaml # 执行yaml文件
  46. $ kubectl get pods # 确认pod处于运行状态
  47. NAME READY STATUS RESTARTS AGE
  48. tomcat-deployment-5c4c9c79f7-8lfvk 1/1 Running 0 52s
  49. tomcat-deployment-5c4c9c79f7-xb5gk 1/1 Running 0 52s

确认Prometheus已采集到tomcat运行数据

Prometheus监控tomcat - 图1