Kubernetes监控——Heapster+InfluxDB+Grafana

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Kubernetes & Docker监控之最后一章,前三篇如下: 1、kubernetes+docker监控之简介 2、 kubernetes+docker监控之Docker监控——cadvisor 3、 Docker监控——Cadvisor+InfluxDB+Grafana搭建过程 1)、.

Kubernetes & Docker监控之最后一章,前三篇如下:


1、kubernetes+docker监控之简介

2、 kubernetes+docker监控之Docker监控——cadvisor

3、 Docker监控——Cadvisor+InfluxDB+Grafana搭建过程

1)、heapster下载和启动:

(1)、heapster镜像下载:

docker pull index.tenxcloud.com/google_containers/heapster:v1.1.0

(2)、heapster单独作为容器启动:

docker run -d index.tenxcloud.com/google_containers/heapster:v1.1.0 "--source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth=" "--sink=influxdb:http://192.168.16.234:8086"

参数说明:

--source :指定kube-apiserver,这里使用https,需要注意下

--sink :指定influxdb,heapster自动创建数据库【k8s】

inClusterConfig :Use kube config in service accounts associated with heapster's

namesapce. (default: true)

kubeletPort :kubelet port to use (default: 10255)

kubeletHttps : whether to use https to connect to kubelets (default: false)

apiVersion : API version to use to talk to Kubernetes. Defaults to the version

in kubeConfig.

insecure :whether to trust kubernetes certificates (default: false)

auth :client auth file to use. Set auth if the service accounts are not usable.

useServiceAccount :whether to use the service account token if one is mounted

at /var/run/secrets/kubernetes.io/serviceaccount/token (default: false)
heapster容器,启动过程:

[root@localhost kube-1.2]# docker run -d index.tenxcloud.com/google_containers/heapster:v1.1.0 "--source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth=" "--sink=influxdb:http://192.168.16.234:8086"

b86aaaaa88ccf648120611254bfeb0078a8b9dd853d4b5a2d6a0abb97743bf1d

[root@localhost kube-1.2]# docker logs b86aaaaa8

I0714 07:05:18.116787 1 heapster.go:65] /heapster --source=kubernetes:http://192.168.16.100:8080?inClusterConfig=false&kubeletHttps=true&kubeletPort=10250&useServiceAccount=true&auth= --sink=influxdb:http://192.168.16.234:8086

I0714 07:05:18.117158 1 heapster.go:66] Heapster version 1.1.0

I0714 07:05:18.239220 1 configs.go:60] Using Kubernetes client with master "http://192.168.16.100:8080" and version "v1"

I0714 07:05:18.239270 1 configs.go:61] Using kubelet port 10250

I0714 07:05:31.255132 1 influxdb.go:223] created influxdb sink with options: host:192.168.16.234:8086 user:root db:k8s

I0714 07:05:31.255170 1 heapster.go:92] Starting with InfluxDB Sink

I0714 07:05:31.255177 1 heapster.go:92] Starting with Metric Sink

I0714 07:05:31.271159 1 heapster.go:171] Starting heapster on port 8082

I0714 07:06:05.000403 1 manager.go:79] Scraping metrics start: 2016-07-14 07:05:00 +0000 UTC, end: 2016-07-14 07:06:00 +0000 UTC

E0714 07:06:05.000504 1 kubelet.go:270] No nodes received from APIserver.

I0714 07:06:05.000520 1 manager.go:152] ScrapeMetrics: time: 5.756µs size: 0

I0714 07:06:05.365486 1 influxdb.go:201] Created database "k8s" on influxDB server at "192.168.16.234:8086"

[root@localhost kube-1.2]#

[root@localhost kube-1.2]# docker ps |grep heapster

b86aaaaa88cc index.tenxcloud.com/google_containers/heapster:v1.1.0 "/heapster --source=k" 2 minutes ago Up 2 minutes furious_mahavira

[root@localhost kube-1.2]#

看到influxdb已经有k8s的数据库和表了,剩下的就是grafana搜索和显示了

[root@localhost kube-1.2]# influx

Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.

Connected to http://localhost:8086 version 0.9.6

InfluxDB shell 0.9.6

>

>

> show databases

name: databases

---------------

name

_internal

cadvisor

k8s

>

> use k8s

Using database k8s

>

> SHOW MEASUREMENTS

name: measurements

------------------

name

cpu/node_reservation

cpu/node_utilization

cpu/usage

cpu/usage_rate

filesystem/limit

filesystem/usage

memory/major_page_faults

memory/major_page_faults_rate

memory/node_reservation

memory/node_utilization

memory/page_faults

memory/page_faults_rate

memory/usage

memory/working_set

network/rx

network/rx_errors

network/rx_errors_rate

network/rx_rate

network/tx

network/tx_errors

network/tx_errors_rate

network/tx_rate

uptime

2)、InfluxDB安装与配置:

请参考之前Cadvisor+InfluxDB+Grafana的内容,http://my.oschina.net/fufangchun/blog/718382

3)、Grafana安装与配置:

(1)、Grafana安装:

请参考之前Cadvisor+InfluxDB+Grafana的内容,http://my.oschina.net/fufangchun/blog/718382

(2)、Grafana配置:

Ⅰ、配置influxdb数据源:

Ⅱ、新建展示页:

展示页,用来区分不同的influxdb数据源

Ⅲ、新建数据项:

根据特定的条件(sql),从influxdb查询相关的数据,并展示。

Grafana会自动显示k8s库的字段,可以根据需求进行选择,每个where后面,加上:【pod_name =~ /^\.*/】,按照pod名称分类

SELECT last(value) FROM k8s."default"."network/tx" WHERE pod_name =~ /^\.*/ AND time > now() - 30m GROUP BY time(10s), pod_name

Ⅳ、完整的grafana展示:

这里上传可能看不清,可以去百度盘下载,我这里是有些数据是分别做了,按照pod和namespace进行分组的,有多租户的情况,比较实用,可以根据情况,自行定义。

本文转移开源中国-Kubernetes监控——Heapster+InfluxDB+Grafana

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
24天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
134 3
|
23天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
121 0
|
3月前
|
Prometheus 监控 数据可视化
Grafana 插件生态系统:扩展你的监控能力
【8月更文第29天】Grafana 是一个流行的开源平台,用于创建和共享统计数据的仪表板和可视化。除了内置的支持,Grafana 还有一个强大的插件生态系统,允许用户通过安装插件来扩展其功能。本文将介绍一些 Grafana 社区提供的插件,并探讨它们如何增强仪表盘的功能性。
259 1
|
3月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
434 1
|
3月前
|
Prometheus 监控 Cloud Native
Grafana 入门指南:快速上手监控仪表盘
【8月更文第29天】Grafana 是一款开源的数据可视化和监控工具,它允许用户轻松地创建美观的仪表盘和图表,以便更好地理解和监控数据。无论您是需要监控系统性能指标、应用程序日志还是业务关键指标,Grafana 都能提供灵活而强大的解决方案。本指南将带领您快速上手 Grafana,包括安装、配置以及创建第一个监控面板。
628 1
|
2月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
311 0
|
3月前
|
Prometheus 监控 Kubernetes
在k8S中,状态码监控是怎么做的?
在k8S中,状态码监控是怎么做的?
|
Kubernetes 网络协议 时序数据库
Kubernetes Dashboard集成Heapster
默认安装后的Kubernetes dashboard 如下图所示,是无法图形化展现集群度量指标信息的: 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster 。 Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS ,并且支持多种存储后端,比如: InfluxDB 、 ElasticSearch 、 Kafka 等,这个风格和k8s的确很像:功能先不管完善与否,先让自己在各个平台能用起来再说^0^。
2065 0
|
9天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
37 1
下一篇
无影云桌面