Kubernetes对接Prometheus
本文介绍Kubernetes对接Prometheus方法。
背景信息
Kubernetes(K8s)是用于自动部署,扩展和管理容器化应用程序的开源系统。如要了解更多有关Kubernetes的信息,请参考Kubernetes文档。本文介绍如何基于阿里云容器Kubernetes版本部署Prometheus监控方案,并将Prometheus的监控数据存储至阿里云TSDB中。
Prometheus是一款面向云原生应用程序的开源监控工具,支持通过服务发现或者静态配置去获取要采集的目标服务器,而在Kubernetes系统中,监控对象具体为:
系统组件:Kubernetes集群中内置的组件,包括apiserver、controller-manager、etcd等。
静态资源实体:节点的资源状态、内核事件等。
动态资源实体:Kubernetes中抽象工作负载的实体,例如Deployment、DaemonSet、Pod等。
自定义应用:应用内部需要定制化的监控数据以及监控指标。
对于系统组件和静态资源实体的监控方式,在配置文件中指明即可。对于动态资源实体的监控,可以使用Prometheus监控部署方案。
操作步骤
部署Prometheus监控方案。
在Kubernetes中,可通过Prometheus Operator来简单快速地安装Prometheus监控方案,操作详情请参考开源Prometheus监控。
修改Prometheus配置。
修改文件prometheus-prometheus.yaml,在
spec
下添加Prometheus的remoteWrite和remoteRead的相关配置。Prometheus Operator在配置Prometheus的配置remote相关配置项时,采用的是驼峰命名法。以TSDB规格为3xlarge为示例,则建议参考配置如下。其中queueConfig的配置项,可以根据实际情况进行适当调整。
spec: remoteWrite: - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write" queueConfig: capacity: 10000 maxShards: 6 maxSamplesPerSend: 500 remoteRead: - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read" readRecent: true
关于prometheus-prometheus.yaml的更多配置项,可以从prometheus-operator的Github仓库获取到。
应用更新。
执行下面这行命令即可使得修改后的配置生效。
kubectl apply -f manifests/prometheus-prometheus.yaml