Docker 下 Prometheus 和 Grafana 三部曲之一:极速体验
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
开源监控工具 Prometheus 目前广为使用,配合 Grafana 即可直观展现监控数据,但对于初学者来说搭建这样一个系统要花费些时间,或者有时也想要快速搭好系统使用其功能,今天的实战中,我们在 Docker 环境下快速搭建和体验一个典型的业务监控系统,包括 prometheus、node-exporter、cadvisor、grafana、业务后台服务(springboot);
本文是《Docker 下 Prometheus 和 Grafana 三部曲》系列的第一篇,整个系列包含以下内容:
极速体验,也就是本文;
细说 Docker 相关开发,介绍在 Docker 环境搭建整个环境的细节;
自定义监控项的开发和展示配置;
环境信息
本次实战的环境信息如下:
操作系统:CentOS 7.6.1810
Docker:17.03.2-ce
node-exporter:0.17.0 (docker 容器,不需要您准备)
prometheus:2.8.0 (docker 容器,不需要您准备)
cadvisor:0.28.0 (docker 容器,不需要您准备)
grafana:5.4.2 (docker 容器,不需要您准备)
springboot:1.5.19.RELEASE (docker 容器,不需要您准备)
本次实战的电脑是 CentOS 系统,IP 地址为 192.168.1.101
操作步骤简介
实战由以下几步组成:
一行命令创建所有容器;
取得 Grafana 的 API KEY,创建图表时要用到;
一行命令创建所有图表;
体验监控系统;
接下来开始实战吧。
创建容器
登录 CentOS 服务器,新建一个文件夹,在里面执行以下命令就能将所有容器创建好:
上述命令会下载容器编排脚本和 prometheus 的配置文件,然后创建容器,控制台输出如下信息(如果本地没有相关的镜像还会显示下载镜像的信息):
取得 Grafana 的 API KEY
现在要取得 Grafana 的授权 KEY,有了这个 KEY 就能通过脚本快速创建数据源和各种监控报表了,具体操作如下:
浏览器访问 Grafana 页面:http://192.168.1.101:3000
用户名 admin,密码 secret;
在左侧的设置菜单中,点击"API keys",如下图:
如下图,点击按钮"+New API Key":
在创建 API key 的页面,输入 key 名称 admin,Role 选择 Admin,然后点击"Add"按钮,如下图:
弹出的窗口会显示新建的 API Key,下图红框 1 中的内容就是我们后面会用到的 API Key,请保存下来,红框 2 中的命令是获取首页信息的,可以执行一下试试,成功了表示这个 API Key 是有效的:
创建监控图表
执行以下命令即可创建监控图表,注意把 192.168.1.101 替换为您的 CentOS 机器的 IP 地址,如果是在当前机器上操作就用 127.0.0.1,把 xxxxxxxxx 替换为前面步骤中取得的 API Key,例如我的是 eyJrIjoieHpHeUVoODFiMDNiZE13TDdqUGxNS1NoN0dhVGVVc04iLCJuIjoiYWRtaW4iLCJpZCI6MX0= :
控制台会输出如下类似信息,表示数据源和图表都创建成功:
至此,整个环境已经 OK,一起来体验一下吧;
体验环境
查看 prometheus 的 web 页面,看配置的监控数据源是否有效,如下图,地址是:http://192.168.1.101:9090/targets
上图一共展示了四个数据源:a. http://prometheusdemohost:8080/prometheus 是个 springboot 框架的 web 应用;b. http://127.0.0.1:9090/metrics 是 prometheus 自身的数据;c. http://cadvisorhost:8080/metrics 是 cadvisor 的数据,用来监控 docker 容器的;d. http://node-exporterhost:9100/metrics 是当前宿主机的环境信息;
查看 cAdvisor 的 web 页面,可以看到 docker 的基本情况,如下图,地址是:http://192.168.1.101:8080
访问业务 web 服务,这是个 springboot 框架的 web 应用,提供了一个 web 接口,返回一个带了时间的字符串,地址是:http://192.168.1.101:8081/greet
注意:每访问一次上述业务 web 接口,web 应用都会上报一条记录到 prometheus,所以建议您多访问几次改接口,后面可以再 Grafana 上看到改接口的请求量曲线图;
查看 Grafana 的监控图表,地址是:http://192.168.1.101:3000 ,如下图,可见数据源已经配置成了 prometheus(前面的 shell 脚本中执行的):
如下图,点击红框 1 中的"manage",即可见到右侧监控列表中出现了三项:
从第一个"1.主机基础监控(cpu,内存,磁盘,网络)"看起,如下图,服务器的各项信息都能展示出来,注意红框中的内容要选择准确,可以截图一致即可:
第二项"Spring Boot 1.x"主要是 JVM 和 Spring Boot 环境的相关信息,如下:
第三项是业务代码中自己上报到 prometheus 的数据,这些可以和具体业务做绑定,做出更多定制化的内容(具体的开发细节后面的文章会讲到),如下图:
至此,基于 Prometheus 和 Grafana 的监控系统我们已经体验完毕了,希望能帮助您在短时间内对整个系统有个初步了解,接下来的章节将会解释如此简化的步骤是怎样做到的,请看《Docker 下 Prometheus 和 Grafana 三部曲之二:细说 Docker 编排》
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/af5bfd35692f4ec68655bb53c】。文章转载请联系作者。
评论