数据展示方案:Prometheus+Grafana+JMeter 备忘
1.建立目录:
在目录 /mydata/docker/progra/ 下面建立:
mkdir -p prometheus grafana/provisioning/dashboards grafana/provisioning/datasources
touch docker-compose.yml prometheus/prometheus.yml
touch grafana/provisioning/dashboards/dashboard.yml
touch grafana/provisioning/datasources/datasource.yml
2:内容,prometheus/prometheus.yml
global:scrape_interval: 15sevaluation_interval: 15sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']labels:instance: prometheus- job_name: 'node-exporter'static_configs:- targets: ['node-exporter:9100']labels:instance: host-monitoring- job_name: 'docker'static_configs:- targets: ['host.docker.internal:9323']
grafana/provisioning/datasources/datasource.yml
apiVersion: 1datasources:- name: Prometheustype: prometheusaccess: proxyurl: http://prometheus:9090isDefault: trueversion: 1editable: falsejsonData:timeInterval: 15s
grafana/provisioning/dashboards/dashboard.yml
apiVersion: 1providers:- name: 'Default'orgId: 1folder: ''type: filedisableDeletion: falseupdateIntervalSeconds: 30allowUiUpdates: trueoptions:path: /etc/grafana/provisioning/dashboardsfoldersFromFilesStructure: true
docker-compose.yml:
version: '3.8'services:prometheus:image: prom/prometheus:latestcontainer_name: prometheususer: "root"volumes:- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml- ./prometheus/data:/prometheuscommand:- '--config.file=/etc/prometheus/prometheus.yml'- '--storage.tsdb.path=/prometheus'- '--web.enable-lifecycle'ports:- "9090:9090"networks:- monitoring_netrestart: unless-stoppednode-exporter:image: prom/node-exporter:latestcontainer_name: node-exporterprivileged: trueuser: rootvolumes:- /proc:/host/proc:ro- /sys:/host/sys:ro- /:/rootfs:rocommand:- '--path.procfs=/host/proc'- '--path.sysfs=/host/sys'- '--collector.filesystem.ignored-mount-points'- '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)'ports:- "9100:9100"networks:- monitoring_netrestart: unless-stoppedgrafana:image: grafana/grafana-enterprise:latestcontainer_name: grafanauser: "root"volumes:- ./grafana/data:/var/lib/grafana- ./grafana/provisioning:/etc/grafana/provisioningenvironment:- GF_SECURITY_ADMIN_PASSWORD=admin123- GF_USERS_ALLOW_SIGN_UP=falseports:- "3000:3000"networks:- monitoring_netrestart: unless-stoppeddepends_on:- prometheusnetworks:monitoring_net:driver: bridge# 移除了volumes定义,使用本地目录挂载
3.权限:
# 进入您的项目目录
cd /mydata/docker/progra/# 创建数据目录
mkdir -p prometheus/data grafana/data# 设置目录权限(避免权限问题)
sudo chmod -R 777 prometheus/data grafana/data
sudo chown -R 1000:1000 prometheus/data # Prometheus 默认使用uid 1000
sudo chown -R 472:472 grafana/data # Grafana 默认使用uid 472
4. 在 grafana 3000中导入:
导入现成的仪表盘(推荐,最快最简单)
这是最常用的方法,Grafana社区有大量制作好的专业仪表盘。在Grafana中导入仪表盘登录Grafana后,点击左侧导航栏的 "+" 号 -> 选择 "Import"在 "Import via grafana.com" 输入框中,输入以下任意一个ID:1860 - Node Exporter Full(最全面)11074 - Node Exporter Quickstart(较简洁)8919 - 另一个流行的Node监控面板https://grafana.com/static/assets/img/blog/import-dashboard.png配置数据源点击 "Load" 后,会看到配置页面在 "Prometheus" 下拉菜单中,选择我们之前配置好的 "Prometheus" 数据源点击 "Import"查看监控数据导入成功后,您会立即看到一个完整的服务器监控仪表盘包含CPU、内存、磁盘、网络、负载等所有关键指标