最近公司在做Nacos监控这块,于是我就随手搭建了一台监控中心,虽然是国外的,但是对于功能上足够用了,下面我来介绍下怎么搭建!!!
1、准备环境
- Nacos集群
Nacos集群我已经搭建好过了,具体想知道怎么搭建的,百度下就有了一大堆的帖子!!Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos
运行状态,目前支持prometheus、elastic search和influxdb,下面结合prometheus和grafana如何监控Nacos介绍下搭建过程!!如果你们公司有成本可以自研,那是最好不过的。
2、搭建Nacos集群暴露metrics数据
按照上面的地址,搭建好Nacos集群后,我们要在集群的每个节点中的配置文件application.properties中,暴露metric数据,改完记得要重启Nacos每个节点!!
management.endpoints.web.exposure.include=*
访问{ip}:8848/nacos/actuator/prometheus,看是否能访问到metrics数据,我这里直接演示下访问效果:
到这第一步我们就搞定了。
3、搭建prometheus采集Nacos metrics数据
我这里选择的版本是:prometheus-2.27.1.linux-amd64.tar.gz(后面会放在云盘里自己下载就好了)
我是在linux下,windows下我没搞过,其实差不多的。
- 解压prometheus压缩包
tar xvfz prometheus-*.tar.gz
cd prometheus-*
- 修改配置文件prometheus.yml采集Nacos metrics数据
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
# nacos cluster 这里开始是新加的
- job_name: 'nacos-cluster'
scrape_interval: 60s
metrics_path: '/nacos/actuator/prometheus'
static_configs:
- targets:
- ip1:8848
- ip2:8848
- ip3:8848
#标签后面会用到
labels:
instance: nacos cluster
- 启动prometheus服务
我这里自己写了个脚本,我需要在后台输出日志和运行
脚本内容:
nohup ./prometheus --config.file="prometheus.yml" >> ./nohup.out 2>&1 &
然后启动脚本
sh ./start.sh
通过访问http://{ip}:9090/graph可以看到prometheus的采集数据,在搜索栏搜索nacos_monitor可以搜索到Nacos数据说明采集数据成功!
你还可以访问这个地址:http://{ip}:9090/targets,看到如下的美景
此时,说明可以收集到Nacos的metric数据了,但是这个数据我需要有个大盘展示!!
4、搭建grafana图形化展示metrics数据
和prometheus在同一台机器上安装grafana,使用 yum 安装grafana
sudo yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm
sudo service grafana-server start
访问grafana: http://{ip}:3000后的结果是这样的:
账号密码默认是:admin/admin
进去后需要你设置下新的密码,这个你随意好了。
然后正式开始我们的配置操作!
- 配置prometheus数据源
然后你需要记录下本身普罗米修斯(Prometheus)自己的监控。
这个远远不够,目前你只是配置了普罗米修斯本身,但是你的数据来自哪里呢?那么需要再配置一个Nacos的数据源头,将数据采集到Prometheus数据源中!
现在你添加了两个数据源了,点击save保存
- 导入Nacos grafana监控模板
官网这里写的是真的烂,导入什么模板也不讲清楚,我自己摸索了半天,这里导入的模板是来自github的一个json串,我就不展开了,下载地方在这里:
链接:https://pan.baidu.com/s/13w3r5EyKwKSTbvY1bul9Rw 提取码:w7vl
下载下来记得解压啊,里面有json文件
点开大屏一看
你会发现没有数据,但是这个时候你要去操作个地方,点击右上角的设置
当然我这里是配好的,点击设置后,点击这里
按照我的图去配置,因为你默认加的label样式,所以这里填写label
然后点击保存就可以!这是最终效果
对于里面的意思,可以参考Nacos官网手册,看下里面的配置意思!