前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenShift Prometheus(Operator)对接应用监控数据实践

OpenShift Prometheus(Operator)对接应用监控数据实践

作者头像
DevOps云学堂
发布2019-10-18 01:37:10
8990
发布2019-10-18 01:37:10
举报
文章被收录于专栏:DevOps持续集成DevOps持续集成

概要

最近在实施一个项目,将客户从原有的数人云 mesos+marathon 迁移至 Openshift,迁移的主要原因有两个,一是现有mesos+marathon平台出现故障时能够解决问题的人不多(数人云已被收购),能够查找的相关资料也少,运维成本很高,用openshift,是企业级产品,并且社区也活跃,有问题解决问题的成功率也大大提升了,如果再买红帽的订阅服务或人天服务,还能够有红帽原厂或红帽合作伙伴的大力支持;二是现在很多开源的软件部署方式都大力支持K8S和openshift,当客户想要快速搭建环境时,mesos+marathon平台就捉襟见肘了。

需求

客户原有的 mesos+marathon 监控用的是prometheus,应用本身暴露了一个数据采集接口给prometheus进行采集,现在上了openshift,自然使用openshift的prometheus,openshift的prometheus使用的是operator进行部署,和原来的部署配置方式有些差异,接下来就进行对接配置。

Prometheus(Operator)简介

摘抄自一个大牛博客的介绍(文后会附上链接):

要了解Prometheus Operator能做什么,其实就是要了解Prometheus Operator为我们提供了哪些自定义的Kubernetes资源,列出了Prometheus Operator目前提供的️4类资源: Prometheus:声明式创建和管理Prometheus Server实例; ServiceMonitor:负责声明式的管理监控配置; PrometheusRule:负责声明式的管理告警配置; Alertmanager:声明式的创建和管理Alertmanager实例。 简言之,Prometheus Operator能够帮助用户自动化的创建以及管理Prometheus Server以及其相应的配置。

配置ServiceMonitor

当我们需要添加一个监控项,就添加ServiceMonitor就可以了,operator就会自动的去reload我们新添加的监控项了。不过首先我们得创建一个应用对应的service。

  • 创建service 注意spec.ports.name这个值。
代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2019-08-29T05:14:53Z
  labels:
    app: xxx-product-service
    prometheus: k8s
  name: xxx-product-service
  namespace: xxx-poc
  resourceVersion: "13541805"
  selfLink: /api/v1/namespaces/xxx-poc/services/xxx-product-service
  uid: ef06651a-ca1b-11e9-9a49-005056af6df7
spec:
  clusterIP: 172.30.80.126
  ports:
  - name: xxx-product
    port: 10002
    protocol: TCP
    targetPort: 10002
  selector:
    deploymentconfig: xxx-product-service
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
  • 创建ServiceMonitor 配置项简介 metadata.name:这个ServiceMonitor的名称 spec.endpoints.interval: 采集数据的间隔 spec.endpoints.port:采集数据的端口,对应service里面对应的port-name spec.endpoints.scheme:采集数据的协议 spec.endpoints.path:采集数据的路径 spec.namespaceSelector:指定需要监控的应用的所在项目 spec.selector:指定应用对应的service标签
代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: prometheus
  name: xxx-product-service
spec:
  endpoints:
  - interval: 10s
    port: xxx-product
    scheme: http
    path: /prometheus
  namespaceSelector:
    matchNames:
    - xxx-poc
  selector:
    matchLabels:
      prometheus: k8s
  • 查看servicemonitor
代码语言:javascript
复制
$ oc get crd
NAME                                    CREATED AT
alertmanagers.monitoring.coreos.com     2019-07-29T07:47:35Z
prometheuses.monitoring.coreos.com      2019-07-29T07:47:35Z
prometheusrules.monitoring.coreos.com   2019-07-29T07:47:35Z
servicemonitors.monitoring.coreos.com   2019-07-29T07:47:35Z
$ oc get servicemonitors.monitoring.coreos.com
NAME                          AGE
alertmanager                  42d
cluster-monitoring-operator   42d
kube-apiserver                42d
kube-controllers              42d
kube-state-metrics            42d
kubelet                       42d
node-exporter                 42d
prometheus                    42d
prometheus-operator           42d
xxx-product-service       11d
$ oc get servicemonitors xxx-product-service -o yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  creationTimestamp: 2019-08-29T06:52:52Z
  generation: 1
  labels:
    k8s-app: prometheus
  name: xxx-product-service
  namespace: openshift-monitoring
  resourceVersion: "13566487"
  selfLink: /apis/monitoring.coreos.com/v1/namespaces/openshift-monitoring/servicemonitors/xxx-product-service
  uid: 9f2c4bcf-ca29-11e9-9a49-005056af6df7
spec:
  endpoints:
  - interval: 10s
    path: /prometheus
    port: xxx-product
    scheme: http
  namespaceSelector:
    matchNames:
    - xxx-poc
  selector:
    matchLabels:
      prometheus: k8s

查看 Prometheus 新添加的配置项

可以看到现在的prometheus配置文件里面新增了我们配置的ServiceMonitor内容,不过添加了一些新内容,具体可以查prometheus文档关于operator的部分。

去 Prometheus 那里查看数据

参考链接

https://yunlzheng.gitbook.io/prometheus-book/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps持续集成 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • Prometheus(Operator)简介
  • 配置ServiceMonitor
  • 查看 Prometheus 新添加的配置项
  • 去 Prometheus 那里查看数据
  • 参考链接
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档