Kubernetes监控——Heapster+InfluxDB+Grafana

简介: 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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
1425 3
|
11月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
658 22
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
852 20
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
1249 7
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
2153 3
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
646 5
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
1234 0
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
2048 0
|
4月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
454 1
|
4月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
310 89

推荐镜像

更多