搭建服务器性能监测通过基于Docker,prometheus+grafana+node-exporter实现.
prometheus理解为一个时序数据库,并产生一个脚本去定时抓取数据.
node-exporter可以抓取设备的一些数据信息.
grafana为一个可视化的Dashboard。可以配置一些数据库展示数据.
----文件夹目录
1.创建docker-compose.yml
version: '3.1' services: node-exporter: container_name: node-exporter image: prom/node-exporter ports: - 9188:9100
2.docker-compose up -d 启动即可 端口9188 点击metrics看到如下页面代表成功抓取数据信息
3.prometheus和grafana配置docker-compose.yml
version: '3.1' services: # 添加 普罗米修斯服务 prometheus: # Docker Hub 镜像 image: prom/prometheus # 容器名称 container_name: prometheus # 容器支持自启动 restart: always # 容器与宿主机 端口映射 ports: - 9090:9090 # 将宿主机中的config文件夹,挂载到容器中/config文件夹 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml # 添加监控可视化面板 grafana: image: grafana/grafana container_name: grafana hostname: grafana restart: always ports: - 3000:3000 volumes: - ./grafana:/var/lib/grafana
4.配置prometheus的配置文件prometheus.yml
global: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] - job_name: node static_configs: - targets: ['172.20.10.11:9188']
5.docker-compose up -d 启动.
6.个人理解: node-exporter抓取数据,prometheus开启两个脚本,一个定时抓取exporter数据,另一个是监听自己.而自己本身是一个数据库。在grafana里面的数据源的地址需要写监听自己的那个地址.地址的ip不能写localhost或127.0.0.1(mac本机)而是写ipv4的那个地址本次为172.20.10.11,否则的话locahost不会变成宿主而还是自己,比如在grafana中写localhost无法访问到prometheus,他们在各自的容器中。当然在docker-conpose中可以配置link。在prometheus中访问localhost:9188也无法访问到exporter。在grafana中看到数据源prometheus中实例就是监听到的9188的exporter,自己本身是一个数据库.充当一个接口。通俗的说就是prometheus为数据源,数据源中有他监听的主机。配置多个主机可以通过,英文逗号隔开在[]中。Grafana模板:8919