[关闭]
@zhangsiming65965 2019-09-29T12:38:24.000000Z 字数 2757 阅读 230

如何接入promethues+grafana

监控服务系列

---Author:张思明 ZhangSiming

---Mail:siming_zhang@shannonai.com

---QQ:1030728296


1.克隆promethues-operator测试代码

地址点我

2.使用测试promethues-operator代码

使用环境: k8s测试集群,如果不知道怎么使用,请点我

使用方法:

  1. $ cat values.yaml | tail -58
  2. #ADD new service to monitor
  3. ADD_monitor:
  4. serviceMonitor1:
  5. enabled: true
  6. serivename: test
  7. serviceportname: test
  8. servicemetricpath: /metric
  9. servicenamespace: test
  10. serviceMonitor2:
  11. enabled: false
  12. serivename:
  13. serviceportname:
  14. servicemetricpath:
  15. servicenamespace:
  16. serviceMonitor3:
  17. enabled: false
  18. serivename:
  19. serviceportname:
  20. servicemetricpath:
  21. servicenamespace:
  22. serviceMonitor4:
  23. enabled: false
  24. serivename:
  25. serviceportname:
  26. servicemetricpath:
  27. servicenamespace:
  28. #Current only support add servicemonitor max to 4, if you want more, @zhangsiming
  29. #Usage
  30. #enabled: Whether to create a addon servicemonitor
  31. #serivename: your service's name
  32. #serviceportname: your service's port name
  33. #servicemetricpath: your service's metric port
  34. #servicenamespace: you service in what namespace
  35. #KEY POINT!!!
  36. #your service must have a label: "k8s-app: ${serivename}"
  37. #FOR EXAMPLE:
  38. #**************************************************
  39. #* YOUR SERVICE NEED TO BE SOMETHING LIKE THIS: *
  40. #* apiVersion: v1 *
  41. #* kind: Service *
  42. #* metadata: *
  43. #* labels: *
  44. #* k8s-app: testservice *
  45. #* name: testservice *
  46. #* namespace: test *
  47. #* spec: *
  48. #* ports: *
  49. #* - name: testport *
  50. #* port: 8000 *
  51. #* protocol: TCP *
  52. #* targetPort: 8000 *
  53. #* selector: *
  54. #* ...match you pod... *
  55. #* type: ClusterIP *
  56. #* *
  57. #**************************************************

配置:

字段 含义
enabled 是否启用servicemonitor
serivename 需要监控的服务的名称
serviceportname 需要监控的服务的端口名称
servicemetricpath 需要监控的服务的路径,一般"/"即可
servicenamespace 需要监控的服务所在的命名空间

修改chart上述的配置,进行部署即可。

3.如何查看是否抓到Metric

  1. $ kubectl get svc -n test
  2. prometheus-operator-nx-grafana NodePort 172.60.79.245 <none> 80:20102/TCP 26m
  3. prometheus-operator-nx-prometheus NodePort 172.60.217.193 <none> 9090:32000/TCP 26m

使用:http://10.20.11.149:32000访问promethues
使用:http://10.20.11.149:20102访问grafana

image_1dlue5rgdlbt67o18gkqf414f9.png-210.9kB

image_1dlue6nlh1gqf1m1dpoham71pusm.png-434.8kB

解释:
1.0/0:表示servicemonitor已经正常启动但是没有找到对应的service,考虑service是否存在已经标签是否可以被servicemonitor选中;
2.0/1:表示servicemonitor可以匹配到service,但是在指定的端口及路径获取不到metric;
3.1/1:表示正常,可以抓出指标,之后可以去配置grafana;
4.未显示:表示servicemonitor没有生效,考虑servicem的标签是否正常

  1. #在集群内访问,target的metric地址+端口可以看到获取的暴露的指标
  2. $ curl http://172.62.23.12:8000/
  3. # HELP python_gc_objects_collected_total Objects collected during gc
  4. # TYPE python_gc_objects_collected_total counter
  5. python_gc_objects_collected_total{generation="0"} 45438.0
  6. python_gc_objects_collected_total{generation="1"} 9877.0
  7. python_gc_objects_collected_total{generation="2"} 38.0
  8. # HELP python_gc_objects_uncollectable_total Uncollectable object found during GC
  9. # TYPE python_gc_objects_uncollectable_total counter
  10. python_gc_objects_uncollectable_total{generation="0"} 0.0
  11. python_gc_objects_uncollectable_total{generation="1"} 0.0
  12. python_gc_objects_uncollectable_total{generation="2"} 0.0

image_1dlug4ft9e4bru41be51rei4jo13.png-242.5kB

可以在promethues上过滤一下抓到的值,之后就可以前往grafana进行dashboard的配置(admin);

相关参考地址:prometheus-operator的githubgrafana官网

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注