prometheus监控k8s集群

prometheus监控k8s集群

  • 简介
  • 环境介绍
  • 安装部署
    • 部署metrics
    • 部署prometheus
    • 部署alertmanager
    • 部署node-exporter
    • 部署blackbox-exporter
    • 查看所有pod状态
  • 查看界面及日志,确认运行状态
  • 添加grafana数据源展示图表

简介

  • 在日常的运维工作中,为了减少业务故障的发现和解决时间,通常是需要监控系统的支持,zabbix作为常用监控手段,并不足以满足kubernetes集群的监控,而Prometheus可以更好的进行相关指标的监控。
  • 监控的四个黄金指标分为“延迟,通讯量,错误,饱和度”。
  • 从网络到编排的指标及手段可以查看下面图片
    prometheus监控k8s集群_第1张图片

环境介绍

kubernetes 1.16.4

安装部署

涉及到的部署文件已经放到了github,需要自取,另外不要脸的求点个5星好评。
github地址:

https://github.com/zhangyudd/prometheus.git

本文涉及到Prometheus存储,使用了pvc,可自行更换存储。

部署metrics

cd metrics/kube-state-metrics
kubectl apply -f .
cd metrics/
kubectl apply -f .

部署prometheus

cd prometheus
kubectl apply -f .

拷贝rules到容器对应存储目录 /prometheus/
如果修改了配置文件可以进行热更:curl -X POST http://prometheus/-/reload

部署alertmanager

cd alertmanager
kubectl apply -f .

这里使用的邮箱,修改对应的邮箱为自己邮箱。

部署node-exporter

cd node-exporter
kubectl apply -f .

部署blackbox-exporter

cd blackbox-exporter
kubectl apply -f .

service 发现需要在service中添加以下字段
#http_probe
annotations:
prometheus.io/scrape: ‘true’
prometheus.io/http-probe: ‘true’
prometheus.io/http-probe-port: ‘8080’
prometheus.io/http-probe-path: ‘/healthz’
#tcp_probe
annotations:
prometheus.io/scrape: ‘true’
prometheus.io/tcp-probe: ‘true’
prometheus.io/tcp-probe-port: ‘80’

查看所有pod状态

kubectl get pods -n kube-system

部署完成后可以添加Prometheus和alertmanager的ingress,方便查看状态及问题。

查看界面及日志,确认运行状态

prometheus监控k8s集群_第2张图片
prometheus监控k8s集群_第3张图片

添加grafana数据源展示图表

url填写以下链接:
http://prometheus.kube-system:9090/

以下为一些监控常用图表:
12870 这个模板是kube-state-metrics采集的各种k8s资源对象的状态的图表
315这个模板是cadvisor采集的各种指标的图表
1860 和 9276 这个模板是node-exporter采集的各种主机相关的指标的图表
6417这个模板是kube-state-metrics采集的各种k8s资源对象的状态的图表
4859和4865这两个模板是blackbox-exporter采集的服务的http状态指标的图表(两个效果基本一样,选择其一即可)
5345这个模板是blackbox-exporter采集的服务的网络状态指标的图表
11529和9965blackbox采集的关于http tcp探针

你可能感兴趣的:(kubernetes,kubernetes)