前言
上篇写的rocketmq集群的搭建本来这篇想写kafka集群的搭建的,但是感觉这两个东西搭建起来都差不多,在加上我就一台阿里云服务器,本地又没有装虚拟机,所以即使搭建集群也是伪集群。所以想了想放弃了。那本篇就写一个监控的东西,本文主要介绍springboot环境下采用Prometheus和Grafana如何搭建一套监控系统。
一 创建springboot项目
创建一个新的springboot项目,在pom中加入actuator依赖
该依赖包的作用是暴露监控的端点。
启动项目,访问 http://localhost:8080/actuator
但是actuator从2.0开始已经默认暴露的端点不是全部了,那要想暴露全部怎么办,在配置文件里面加一句话就行。
然后再访问
这样就暴露了全部端点。
还需要添加一个把端点暴露成符合Prometheus格式的依赖包
添加后访问http://localhost:8080/actuator/peometheus
这些就是prometheus需要的数据了。
二 搭建prometheus
这里采用docker的方式创建promethues
首先创建prometheus目录存放prometheus.yml
然后创建prometheus.yml,内容如下,直接从官网上copy过来即可
然后执行如下命令
docker run \
-p 9090:9090 \
-v /liuxc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
--name prometheus-9090 prom/prometheus
复制代码
他会下载prometheus镜像并运行,完成后查看是否运行成功,说明已经运行成功。
然后访问9090端口,如下所示
说明prometheus已经启动成功了。
但是现在它和咱们的springboot服务并没有任何联系,那它怎样收集咱们微服务的数据的呢,需要修改配置文件。因为我本地不是公网,阿里云服务器连不上我本地IP,所以我需要把springboot工程打成jar包上传到阿里云服务器,上传之前我把springboot的端口设置成8099,Java-jar启动,然后修改prometheus配置文件
然后删除之前运行容器,重新运行一下,访问9090端口
说明prometheus已经可以收集咱们的微服务了。但是prometheus的页面展示不算太友好,咱们通过grafana工具来展示。
三 安装grafana
一样,咱们也是通过docker的方式安装grafana
docker run -d --name=grafana-3000 -p 3000:3000 grafana/grafana
复制代码
然后访问3000端口
grafana默认的用户名和密码都是admin,进入后界面如下所示
那么grafana怎么和prometheus联系起来呢,这就需要咱们配置grafana的数据源了,只需要如下图配置
然后咱建立一个dashboard,看一下jvm的一些信息
但是用的时候不可能一个一个的建立dashboard,怎样出现各个指标的dashboard呢,grafana其实已经给我们提供了方案。引入了4701模板,但是需要在springboot项目中添加一个bean,官网提供的如下
那就放到项目中,但是名称我叫了demo3,重新打包上传并启动 。
grafana导入4701模板。
填写名称和选择prometheus
导入后如下图所示,各个指标就都出来了。
至此 prometheus + grafana 监控springboot服务就完成了。
四 总结
其实需要搭建的东西还差很多像node-exporter监控服务器信息,alertmanager监控告警等等都没写呢,下周想的是加入node-exporter和alertmanager功能,这样的话prometheus + grafana + alertmanager,从监控到告警就算全了。下周再见。