项目上需要搭建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文件
这个模板 官方只是给了示例,具体使用需要二次开发了
后面配置监控告警,就不多做赘述了,有兴趣的小伙伴自己研究吧