项目上需要搭建nacos环境,初次接触,记录下,以备日后查阅

搭建任何东西肯定是参考官方文档:

https://nacos.io/docs/latest/quickstart/quick-start-docker/

https://nacos.io/docs/latest/guide/admin/monitor-guide/

其实官网说的并不够详细,有些细节需要自己调整

下面为搭建步骤:

1.Clone 项目

git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker

2.修改docker compose yaml文件

他这边有三种数据库:derby,mysql5.7,mysql8

经过了解官方的derby脚本 example/standalone-derby.yaml 并没有把数据库文件映射出来

mysql的 example/standalone-mysql-8.yaml 有映射到本地,所以这里果断用mysql8的方式

把原来的yaml文件备份为example/standalone-mysql-8.yaml.bak

经过一番修改后yaml文件如下

version: "3.8"
services:
  nacos:
    image: nacos/nacos-server:${NACOS_VERSION}
    container_name: nacos-standalone-mysql8
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    ports:
      - "8848:8848"
      - "9848:9848"
    depends_on:
      mysql:
        condition: service_healthy
    restart: unless-stopped
  mysql:
    container_name: nacos-mysql8
    build:
      context: .
      dockerfile: ./image/mysql/8/Dockerfile
    image: example/mysql:8.0.30
    env_file:
      - ../env/mysql.env
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - "3306:3306"
    healthcheck:
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
      interval: 5s
      timeout: 10s
      retries: 10
    restart: unless-stopped
  prometheus:
    container_name: nacos-prometheus
    image: prom/prometheus:latest
    volumes:
      - ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"
    depends_on:
      - nacos
    restart: on-failure
  grafana:
    container_name: nacos-grafana
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    restart: on-failure

yaml文件说明:

(1)这个yaml文件集成了prometheus和grafana

(2)不要轻易修改服务端口:里面涉及到多系统的配置文件,原来的官方git里相关配置文件已经写死地址,修改端口要去找到配置文件对应修改

(3)mysql的初始化是亮点,查看mysql的dockerfile: ./image/mysql/8/Dockerfile,里面不仅集成了mysql8,还初始化了数据库,值得借鉴

(4)这个文件一定要放在example目录下面,因为里面引用了好多配置文件是以example目录为基础的相对路径,具体配置文件可以看yaml文件

 

3.启动nacos

这里官方命令并没有带后台运行参数,我们自己加上

docker-compose -f example/standalone-mysql-8.yaml up -d

 

4.prometheus配置

根据官网提示:https://nacos.io/docs/latest/guide/admin/monitor-guide/

配置application.properties文件,暴露metrics数据

management.endpoints.web.exposure.include=*
 

访问{ip}:8848/nacos/actuator/prometheus,看是否能访问到metrics数据

首先要访问{ip}:8848/nacos/actuator/prometheus这个地址看能否读到数据,经过测试访问失败

所以要加上配置,暴露metrics数据

#进入nacos容器
docker exec -it nacos-standalone-mysql8 /bin/bash
#进入conf文件夹
cd conf
#查看配置文件
cat application.properties
#加入参数
echo 'management.endpoints.web.exposure.include=*' >>application.properties
#退出容器
exit
#重启nacos容器
docker restart nacos-standalone-mysql8

 

配置文件末尾加上了参数

 

 

 

再次访问 {ip}:8848/nacos/actuator/prometheus,有数据了

 

根据官方文档提示

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

经过测试有数据,prometheus数据采集成功!

 

5.grafana配置

 依旧参考官网

访问grafana: http://{ip}:3000

配置prometheus数据源

导入Nacos grafana监控模版

访问http://{ip}:3000

 

这里就被卡住了,初始账号密码是多少呢,官网并没有说。。

还好被我找到了https://www.cnblogs.com/jason2018524/p/16995927.html

初始账号密码是 admin/admin

第一次进入会要求修改账号密码

 配置中文显示

 

配置prometheus数据源,这个地址就是之前访问的prometheus地址

 导入Nacos grafana监控模版

下载模板:https://github.com/nacos-group/nacos-template/blob/master/nacos-grafana.json

导入下载的模板json文件

这个模板 官方只是给了示例,具体使用需要二次开发了

 

 后面配置监控告警,就不多做赘述了,有兴趣的小伙伴自己研究吧

 

 

 

posted on 2024-05-28 15:57  06  阅读(48)  评论(0编辑  收藏  举报