基础
exporter提供监控数据
prometheus拉取监控数据
grafana可视化监控数据
准备
全部操作在/root/mypromethus
中执行
node_exporter
shell
docker-compose -f node-exporter.yaml up -d
# web访问,查看node_exporter采集到的数据
http://192.168.1.102:9101/metrics/
node-exporter.yaml
yaml
version: '3.8'
services:
node_exporter:
image: prom/node-exporter:v1.6.0
container_name: node_exporter
command:
- '--path.rootfs=/host'
pid: host
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
ports:
- 9101:9100
volumes:
- '/:/host:ro,rslave'
prometheus
shell
docker-compose -f dcprometheus.yaml up -d
# web访问
http://192.168.1.102:9102
# 修改权限
chmod 777 prometheus_data
dcprometheus.yaml
yaml
prometheus:
image: prom/prometheus:v2.37.9
restart: always
container_name: prometheus
hostname: prometheus
environment:
- TZ=Asia/Shanghai
ports:
- 9102:9090
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
- '--storage.tsdb.retention.time=7d'
- '--web.external-url=http://192.168.1.102:9090/'
volumes:
- /root/myprometheus/prometheus_cnf/prometheus.yml:/etc/prometheus/prometheus.yml
- /root/myprometheus/prometheus_data:/prometheus
prometheus_cnf/prometheus.yml
yaml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093#报警地址未使用
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'node-exporter'
static_configs:
- targets: ['192.168.1.102:9101']# 需要修改 node-exporter service
labels:
host: myhost01# 添加标签
grafana
shell
docker-compose -f grafana.yaml up -d
# web访问
http://192.168.1.102:9103
admin/admin
# 修改权限
chomd 777 plugins
# 添加prometheus
http://192.168.1.102:9102
# 添加dashboard,import dashboard,在grafana官网找dashboard id
https://grafana.com/grafana/dashboards/
grafana.yaml
yaml
grafana:
image: grafana/grafana:10.1.0-ubuntu
restart: always
container_name: grafana
hostname: grafana
environment:
- TZ=Asia/Shanghai
volumes:
#- /opt/grafana/defaults.ini:/etc/grafana/grafana.ini
- /root/myprometheus/grafana_data/plugins:/var/lib/grafana/plugins
ports:
- 9103:3000
问题
- prometheus和grafana目录权限问题