最近公司在做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数据,我这里直接演示下访问效果:

监控nacos服务实例上下线 nacos 监控_lua

到这第一步我们就搞定了。

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服务

我这里自己写了个脚本,我需要在后台输出日志和运行

监控nacos服务实例上下线 nacos 监控_数据源_02

脚本内容:

nohup ./prometheus --config.file="prometheus.yml" >> ./nohup.out 2>&1 &

然后启动脚本

sh ./start.sh

通过访问http://{ip}:9090/graph可以看到prometheus的采集数据,在搜索栏搜索nacos_monitor可以搜索到Nacos数据说明采集数据成功!

监控nacos服务实例上下线 nacos 监控_数据源_03

你还可以访问这个地址:http://{ip}:9090/targets,看到如下的美景

监控nacos服务实例上下线 nacos 监控_数据_04

此时,说明可以收集到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后的结果是这样的:

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_05

账号密码默认是:admin/admin

进去后需要你设置下新的密码,这个你随意好了。

然后正式开始我们的配置操作!

  • 配置prometheus数据源

监控nacos服务实例上下线 nacos 监控_数据源_06

然后你需要记录下本身普罗米修斯(Prometheus)自己的监控。

监控nacos服务实例上下线 nacos 监控_java_07

这个远远不够,目前你只是配置了普罗米修斯本身,但是你的数据来自哪里呢?那么需要再配置一个Nacos的数据源头,将数据采集到Prometheus数据源中!

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_08

现在你添加了两个数据源了,点击save保存

监控nacos服务实例上下线 nacos 监控_数据源_09

  • 导入Nacos grafana监控模板

监控nacos服务实例上下线 nacos 监控_数据源_10

官网这里写的是真的烂,导入什么模板也不讲清楚,我自己摸索了半天,这里导入的模板是来自github的一个json串,我就不展开了,下载地方在这里:

链接:https://pan.baidu.com/s/13w3r5EyKwKSTbvY1bul9Rw  提取码:w7vl 

下载下来记得解压啊,里面有json文件

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_11

监控nacos服务实例上下线 nacos 监控_数据源_12

点开大屏一看

监控nacos服务实例上下线 nacos 监控_数据源_13

你会发现没有数据,但是这个时候你要去操作个地方,点击右上角的设置

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_14

 

当然我这里是配好的,点击设置后,点击这里

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_15

按照我的图去配置,因为你默认加的label样式,所以这里填写label

监控nacos服务实例上下线 nacos 监控_lua_16

然后点击保存就可以!这是最终效果

监控nacos服务实例上下线 nacos 监控_监控nacos服务实例上下线_17

 

对于里面的意思,可以参考Nacos官网手册,看下里面的配置意思!