Prometheus-采集tomcat监控数据
tomcat_exporter地址:https://github.com/nlighten/tomcat_exporter
1.把包下载下来制作tomcat_exporte镜像
[root@master01 tomcat]# cat Dockerfile FROM tomcat ADD metrics.war /usr/local/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/
构建镜像
[root@master01 tomcat]# docker build -t='hwf/tomcat_prometheus:v1' .
2.基于上面的hwf/tomcat_prometheus:v1镜像创建一个tomcat实例
[root@master01 tomcat]# cat tomcat-deploy.yaml 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: hwf/tomcat_prometheus:v1 ports: - containerPort: 8080 securityContext: privileged: true
在prometheus查看tomcat报警是否添加成功
创建一个service,可操作也可不操作
Prometheus-采集Nginx监控数据
1.下载nginx-module-vts模块
https://github.com/hnlq715/nginx-vts-exporter
[root@master01 nginx]# docker pull sophos/nginx-vts-exporter:v0.10.7
1.下载nginx-module-vts模块
nginx-vts
nginx的监控模块,能够提供json、html、prometheus格式的数据产出。
[root@master01 nginx]# docker pull gaciaga/nginx-vts:1.11.12-alpine-vts-0.1.14
注意:此镜像,默认已经开启了status
运行pod
[root@master01 nginx]# kubectl apply -f nginx.yaml deployment.apps/my-nginx created service/nginx-web01 created
nginx.yaml文件如下:
[root@master01 nginx]# cat nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx name: my-nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: prometheus.io/scrape: 'true' spec: containers: - image: gaciaga/nginx-vts:1.11.12-alpine-vts-0.1.14 name: nginx-vts imagePullPolicy: IfNotPresent securityContext: privileged: true ports: - protocol: TCP name: nginx containerPort: 80 resources: #资源配额 limits: #资源限制,最多可用的cpu和内存 cpu: 1 memory: 1Gi requests: #最少需要多少资源才可以运行Pod cpu: 0.5 memory: 1Gi --- apiVersion: v1 kind: Service metadata: name: nginx-web01 namespace: default spec: ports: - name: nginx port: 80 protocol: TCP targetPort: 80 nodePort: 30008 selector: app: nginx type: NodePort
访问status页面
http://192.168.1.183:30008/status
效果如下:
2.下载nginx-vts-exporter模块
主要用于收集nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。
[root@master01 nginx]# docker pull sophos/nginx-vts-exporter:v0.10.7
运行pod
[root@master01 nginx]# kubectl apply -f nginx-export.yaml
nginx.-exportyaml文件如下:
nodeport只是方便调试,正常不放开
[root@master01 nginx]# cat nginx-export.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx-export name: nginx-export spec: replicas: 1 selector: matchLabels: app: nginx-export template: metadata: labels: app: nginx-export annotations: prometheus.io/scrape: 'true' spec: containers: - name: nginx-module image: gaciaga/nginx-vts:1.11.12-alpine-vts-0.1.14 imagePullPolicy: IfNotPresent securityContext: privileged: true ports: - protocol: TCP name: nginx-module containerPort: 80 resources: #资源配额 limits: #资源限制,最多可用的cpu和内存 cpu: 1 memory: 1Gi requests: #最少需要多少资源才可以运行Pod cpu: 0.5 memory: 1Gi - name: nginx-vtx image: sophos/nginx-vts-exporter:v0.10.7 env: - name: NGINX_STATUS value: "http://localhost/status/format/json" imagePullPolicy: IfNotPresent securityContext: privileged: true ports: - protocol: TCP name: nginx-vtx containerPort: 9913 resources: #资源配额 limits: #资源限制,最多可用的cpu和内存 cpu: 1 memory: 1Gi requests: #最少需要多少资源才可以运行Pod cpu: 0.5 memory: 1Gi --- apiVersion: v1 kind: Service metadata: name: nginx-export namespace: default spec: ports: - name: nginx-module port: 80 protocol: TCP targetPort: 80 nodePort: 30008 - name: nginx-vtx port: 9913 protocol: TCP targetPort: 9913 nodePort: 30009 selector: app: nginx-export type: NodePort
访问metrics页面
http://192.168.1.183:30009/metrics
3.在grafana界面导入nginx图标
继续阅读

我的微信
这是我的微信扫一扫
评论