prometheus|装在笔记本里的私有云环境:网络存储篇(中)( 四 )


以及这个配置需要使用的 .env 环境变量:
# == nextcloudDOCKER_NEXTCLOUD_IMAGE_NAME=nextcloud:22.2.0DOCKER_NEXTCLOUD_HOSTNAME=nextcloud.storage.lab.comDOCKER_NEXTCLOUD_DOMAIN=nextcloud.storage.lab.com
使用 docker-compose up -d 启动服务,然后在浏览器中打开我们配置好的域名 nextcloud.storage.lab.com 就能够开始 NextCloud 的配置安装了。完成安装(初始化)之后,就能够看到久违的欢迎界面啦。
prometheus|装在笔记本里的私有云环境:网络存储篇(中)
文章插图

配置 NextCloud 的性能指标服务在 NextCloud 服务就绪之后,因为 NextCloud 和 Syncthing 一样,本身并不直接支持使用 Prometheus 进行数据采集。所以,我们同样需要为它创建一个 Exporter 服务。先在 NextCloud 使用的环境变量 .env 文件中,继续添加需要使用的配置(使用你自己的应用账号和密码替换下面配置中的内容):
# == exporterDOCKER_EXPORTER_IMAGE_NAME=xperimental/nextcloud-exporterDOCKER_EXPORTER_USER=soultearyDOCKER_EXPORTER_PASS=soultearyDOCKER_EXPORTER_DOMAIN=nextcloud-exporter.storage.lab.com
接着,编写 Exporter 需要使用到的容器配置:
version: "3.6"services:nextcloud-exporter:image: ${DOCKER_EXPORTER_IMAGE_NAME}restart: alwaysenvironment:NEXTCLOUD_SERVER: http://${DOCKER_NEXTCLOUD_DOMAIN}NEXTCLOUD_USERNAME: ${DOCKER_EXPORTER_USER}NEXTCLOUD_PASSWORD: ${DOCKER_EXPORTER_PASS}NEXTCLOUD_TIMEOUT: 5sexpose:- 9205networks:- traefiklabels:- "traefik.enable=true"- "traefik.docker.network=traefik"- "traefik.http.routers.http-nextcloud-exporter.entrypoints=http"- "traefik.http.routers.http-nextcloud-exporter.rule=Host(`${DOCKER_EXPORTER_DOMAIN}`)"- "traefik.http.routers.nextcloud-exporter.entrypoints=https"- "traefik.http.routers.nextcloud-exporter.tls=true"- "traefik.http.routers.nextcloud-exporter.rule=Host(`${DOCKER_EXPORTER_DOMAIN}`)"- "traefik.http.services.nextcloud-exporter-backend.loadbalancer.server.scheme=http"- "traefik.http.services.nextcloud-exporter-backend.loadbalancer.server.port=9205"logging:driver: "json-file"options:max-size: "1m"networks:traefik:external: true
然后,使用 docker-compose -f docker-compose.exporter.yml up -d 启动服务。
我们同样使用命令检查一下服务的可用性:
curl http://nextcloud-exporter.storage.lab.com/metrics
不出意外,会看到“熟悉”的日志:
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.# TYPE go_gc_duration_seconds summarygo_gc_duration_seconds{quantile="0"} 0.000185922go_gc_duration_seconds{quantile="0.25"} 0.000185922go_gc_duration_seconds{quantile="0.5"} 0.000224615go_gc_duration_seconds{quantile="0.75"} 0.000224615go_gc_duration_seconds{quantile="1"} 0.000224615go_gc_duration_seconds_sum 0.000410537go_gc_duration_seconds_count 2# HELP go_goroutines Number of goroutines that currently exist.# TYPE go_goroutines gaugego_goroutines 9# HELP go_info Information about the Go environment.# TYPE go_info gaugego_info{version="go1.15.3"} 1# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.# TYPE go_memstats_alloc_bytes gaugego_memstats_alloc_bytes 3.402328e+06# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.# TYPE go_memstats_alloc_bytes_total countergo_memstats_alloc_bytes_total 7.031024e+06# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.# TYPE go_memstats_buck_hash_sys_bytes gaugego_memstats_buck_hash_sys_bytes 1.446245e+06# HELP go_memstats_frees_total Total number of frees.# TYPE go_memstats_frees_total countergo_memstats_frees_total 31048...
配置 Prometheus 抓取 NextCloud 性能指标数据
第三次重复操作,应该轻车熟路了吧 : D。继续编辑 config/prometheus.yml 配置文件:
- job_name: nextcloudscrape_interval: 10smetrics_path: /metricsscheme: httpstatic_configs:- targets: ['nextcloud-exporter.storage.lab.com']
使用 docker-compose down && docker-compose up -d 重启 Prometheus,然后在浏览器中访问:http://monitor.lab.com:9090/targets,确认列表中包含新配置的 NextCloud 的数据源。