Prometheus + Grafana
基于docker-compose部署Prometheus + Grafana
安装数据收集器 node-exporter
安装 node-exporter
1 2 3 4 5
| cd /opt sudo wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz sudo tar zxf node_exporter-1.4.0.linux-amd64.tar.gz sudo mv node_exporter-1.4.0.linux-amd64 node_exporter sudo mv node_exporter /usr/local/
|
运行如下命令测试 node-exporter 收集器启动情况,正常情况下会输出服务端口。
1
| /usr/local/node_exporter/node_exporter
|
添加到系统服务
sudo vim /etc/systemd/system/node_exporter.service
添加如下内容
1 2 3 4 5 6 7 8
| [Unit] Description=mysqld_exporter After=network.target [Service] ExecStart=/usr/local/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
|
加载并重启服务
1 2 3 4 5 6 7 8
| sudo systemctl daemon-reload
sudo systemctl restart node_exporter.service
sudo systemctl status node_exporter.service
sudo systemctl enable node_exporter.service
|
查看数据收集情况
重新起一个终端,查看数据收集情况。也可以在浏览器中查看。
docker-compse部署
配置
docker-compose.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| version: "3" services: prometheus: image: prom/prometheus container_name: prometheus user: root restart: always ports: - "9090:9090" volumes: - ./conf/prometheus:/etc/prometheus - ./data/prometheus/prometheus_db:/prometheus 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' networks: - net-prometheus
grafana: image: grafana/grafana container_name: grafana user: root restart: always ports: - "53000:3000" volumes: - ./data/prometheus/grafana_data:/var/lib/grafana depends_on: - prometheus networks: - net-prometheus
pushgateway: image: prom/pushgateway container_name: pushgateway user: root restart: always ports: - "9091:9091" volumes: - ./data/prometheus/pushgateway_data:/var/lib/pushgateway networks: - net-prometheus
alertmanager: image: prom/alertmanager hostname: alertmanager container_name: alertmanager user: root restart: always ports: - "9093:9093" volumes: - ./conf/alertmanager:/etc/alertmanager - ./data/prometheus/alertmanager_data:/var/lib/alertmanager networks: - net-prometheus
networks: net-prometheus:
|
启动
prometheus配置文件
prometheus.yml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| # 全局配置 global: # 抓取间隔,每5秒抓取一次指标 scrape_interval: 5s # 评估规则的频率,每5秒评估一次 evaluation_interval: 5s
external_labels: monitor: "dashboard"
# 警报配置 alerting: alertmanagers: # 定义 Alertmanager 实例 - static_configs: - targets: - "192.168.0.100:9093"
# 规则文件路径 rule_files: - /etc/prometheus/rules/*.rules
# 采集配置 scrape_configs: # 采集 Prometheus 自身指标 - job_name: "prometheus" scrape_interval: 5s static_configs: - targets: ["172.19.0.2:9090"] # Prometheus 实例地址
# 采集 AWS 指标 - job_name: "server" static_configs: - targets: ["server_IP_1:9100"] # 替换为实际的实例 IP
|
参考文章:
https://developer.aliyun.com/article/1158325