文档章节

Kubernetes运行监控-使用Helm快速部署Prometheus和Grafana

openthings
 openthings
发布于 2018/06/12 10:48
字数 1275
阅读 2504
收藏 3

Kubernetes运行监控-使用Helm快速部署Prometheus和Grafana

使用Helm快速部署Pormetheus和Grafana非常方便,很多手工部署的方法不再需要了。

Kubernetes运行监控分为宿主机、容器以及Kubernetes集群的Node、Deployment、Replicaset、Storage、Pod、Service等数量和状态等方面,可以使用Heapster+Influxdb+Grafana的组合,或者使用Prometheus + Grafana的组合,传统的ELK方案无法穿透集群、而且集中于离线的方式不太适合Kubernetes中应用。

这里重点介绍KPG(Kubernetes+Prometheus+Grafana)的监控方案,功能全面、指标详细、模版丰富,更重要的是可以直接运行在Kubernetes集群之中。目前,Prometheus和Grafana部署都支持Helm了,安装非常方便。

简介

Prometheus主要用于度量指标的产生和收集,可以即时查询各种系统指标并以曲线图、表方式展示。Grafana提供图表化的监控面板,可以直接访问Prometheus产生的数据源并组装为可视化面板,支持监控面板的定制、保存和共享,需要与Prometheus配合起来使用。目前,已经有大量的Kubernetes监控面板面板模版可以使用,可以从https://grafana.com上下载或直接import进来使用,非常快捷。

1、准备存储卷

参考“基于Kubernetes的容器存储系统”(https://my.oschina.net/u/2306127/blog/1822634)中的方法创建虚拟存储系统,创建StorageClass或者PVC,为监控系统所用。

Prometheus支持StorageClass方式指定存储系统,安装时系统自动产生pv卷。或者指定现存的pvc进行重用。

2、安装Prometheus

可以从helm的远程chart库直接安装,或者将该chart拷贝到自己的目录,修改参数后安装。

直接安装

指定storageClass为nfs,自动产生pv:

helm install --namespace monitor --name prometheus stable/prometheus \
  --set alertmanager.persistentVolume.storageClass="nfs" \
  --set server.persistentVolume.storageClass="nfs"

更多的参数,可以参考:

这里为了管理方面,我们将其安装在Kubernetes的命名空间monitor中,同时命名实例版本为prometheus,安装完毕后运行 helm list 即可列出。

本地安装

如果复制到本地,可以直接修改参数,进去目录将values.yaml里的参数修改后运行helm即可,如:

helm install --namespace monitor --name prometheus ./prometheus
  • 注意
    • 跟上面的网络安装一样,alertmanager和server的storageClass参数需要分别指定。
    • storageClass或者pv的指定是必须的,如果没有指定,运行helm install会失败。

映射服务

缺省的服务安装为ClusterIP,端口9090。需要通过port-forward映射出来(grafana运行在集群上,可以直接访问的),集群外面才可以访问。如下所示:

export POD_NAME=$(kubectl get pods --namespace monitor -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")

kubectl --namespace monitor port-forward $POD_NAME 9090

然后浏览器打开 http://127.0.0.1:9090就可以访问Prometheus的主界面了。

3、安装Grafana

远程安装

方法与Prometeheus基本一样,我们将其安装到同一个命名空间monitor中。如下:

helm install  --namespace monitor --name grafana stable/grafana \
  --set persistence.storageClassName="nfs"

更多的参数,可以参考:

获取admin密码:

kubectl get secret --namespace monitor grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

本地安装

也可以复制chart到本地,修改参数后安装,如下:

helm install  --namespace monitor --name grafana ./grafana

映射服务

export POD_NAME=$(kubectl get pods --namespace monitor -l "app=grafana" -o jsonpath="{.items[0].metadata.name}")
     kubectl --namespace monitor port-forward $POD_NAME 3000
  • 注意
    • 我这里去掉了prometeus里的component筛选项,有的文档说要加上是有问题的,因为目前的这个版本chart并没有这个选项,会导致列表项为空而出错。
    • 也可以修改service的网络类型为nodeip,集群外就可以直接访问了,不需要端口映射。或者使用其他的代理来访问,不过需要注意安全性问题,不要把服务地址暴露到因特网上。

4、使用监控面板

现在,可以使用浏览器打开 http://127.0.0.1:3000,看到Grafana的面板界面。首先创建prometheus的数据源,注意里面的ip地址为prometheus的service地址(ClusterIP),不是主机地址。然后创建Dashboard即可。

选取“+”图标,import进去kubernetes-tool/monitor/dashboard下的面板json文件,或者直接import一个  https://grafana.com上的模版,即可看到监控面板的情况(有的有一些问题,需要自行试验、选择)。也可以自己设计面板、然后保存起来,或者分享给别人使用。

 

© 著作权归作者所有

openthings
粉丝 325
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
部署 Prometheus Operator - 每天5分钟玩转 Docker 容器技术(179)

本节在实践时使用的是 Prometheus Operator 版本 v0.14.0。由于项目开发迭代速度很快,部署方法可能会更新,必要时请参考官方文档。 下载最新源码 git clone https://github.com/coreos/prom...

cloudman6
2018/06/10
0
0
Rancher 2.2 发布,优化 Kubernetes 集群运维

Rancher 2.2 发布了。Rancher 是一个开源的企业级 Kubernetes 平台,可以管理所有云上、所有发行版、所有 Kubernetes集群,解决了生产环境中企业用户可能面临的基础设施不同的困境,改善 Ku...

段段段落
03/29
2.1K
3
Istio 0.8 的 Helm Chart 解析

Istio 0.8 的 Helm Chart 解析 作者 崔秀龙 | 2300字 | 阅读大约需要5分钟 | 归档于istio | 发表于 2018-06-04 标签 #Istio #Helm #Chart,来自 https://servicemesher.github.io/blog/helm-......

openthings
2018/06/19
97
1
实操案例:使用Prometheus Operator进行集群监控

据Sysdig发布的容器报告,容器以及如Kubernetes等编排工具的使用增长了51%以上,大家开始将工作负载在集群中进行托管并管理。鉴于集群中短暂的状态,对于端到端的集群有一个十分重要的需求...

RancherLabs
09/18
0
0
超越Kubernetes:值得关注的5大云原生技术

Kubernetes是一个开源容器管理平台,它现在已经成为了云原生的中流砥柱。自从把它移交给Cloud Native Compute Foundation(云原生计算基金)后,该项目在业界上取得了史无前例的关注,目前没...

Docker
2018/09/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部