docker搭建prometheus監(jiān)控教程
介紹
prometheus是開源的監(jiān)控解決方案。他的監(jiān)控側(cè)重于云原生應(yīng)用,例容器、k8s集群。prometheus通過各種各樣的exporter去監(jiān)控各種metric指標(biāo)數(shù)據(jù)。
(本期目標(biāo):docker部署prometheus,添加常見exproter并且在grafana中導(dǎo)入可視化模板。)
docker環(huán)境的準(zhǔn)備,怎么切換到國內(nèi)鏡像倉庫源,提升鏡像下載速度。小伙伴可以自行去查找其他博客進(jìn)行學(xué)習(xí)。
拉鏡像
這里我們拉取Prometheus、node-exporter、mysqld-exporter、cadvisor鏡像并且啟動他們。
node-exporter:虛擬機(jī)監(jiān)控的exporter,包括虛擬機(jī)cpu、內(nèi)存使用情況等。mysqld-exporter:mysql監(jiān)控的exporter。cadvisor:容器監(jiān)控的exporter。
docker pull prom/node-exporter docker pull prom/mysqld-exporter docker pull google/cadvisor docker pull prom/prometheus docker pull grafana/grafana
起容器
- node-exporter
docker run -d --name node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
容器啟動后可通過訪問http://ip:9100/metrics查看指標(biāo)。

- mysqld-exporter
docker run -d --name mysqld_exporter --restart=always -p 9104:9104 -e DATA_SOURCE_NAME="root:Password123@(172.17.0.2:3306)/" prom/mysqld-exporter
容器啟動后可通過訪問http://ip:9104/metrics查看指標(biāo)。
- cadvisor
docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 -d --name=cadvisor --restart=always google/cadvisor:latest
容器啟動后可通過訪問http://ip:8080/metrics查看指標(biāo)。
- prometheus
prometheus容器啟動前需要配置前面三個exporter的網(wǎng)絡(luò)信息。因?yàn)橥瑢儆赿ocker網(wǎng)絡(luò)。我們可以通過docker inspect containerid來查看上面三個容器的IP,將三個exporter注冊進(jìn)prometheus里。
mkdir /opt/prometheus cd /opt/prometheus/ vim prometheus.yml
下面貼出我的prometheus.yml配置文件:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['172.17.0.3:9100']
labels:
instance: localhost
- job_name: cadvisor
static_configs:
- targets: ['172.17.0.5:8080']
labels:
instance: cAdvisor
- job_name: mysqld
static_configs:
- targets: ['172.17.0.4:9104']
labels:
instance: mysql-exporter使用下面命令啟動prometheus容器:
docker run -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
訪問http://ip:9090/targets,可以看到我們起來的幾個exporter:

- grafana
創(chuàng)建grafana數(shù)據(jù)目錄:
mkdir /opt/grafana-storage chmod 777 -R /opt/grafana-storage
下面啟動grafana容器:
docker run -d --name grafana --restart=always -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana
容器啟動后可通過訪問http://ip:3000訪問grafana,初始賬號為admin/admin,第一次登錄后會需要你修改密碼。

配置grafana儀表盤
這里我們選擇數(shù)據(jù)源為prometheus

這里我給出我的配置參考:

主要注意URL的填寫,我這里填寫的是prometheus容器內(nèi)網(wǎng)地址。大家可以使用docker inspect containerid進(jìn)行查看。
- 導(dǎo)入官方儀表盤
8919、179分別是虛擬機(jī)監(jiān)控儀表盤和容器監(jiān)控儀表盤,輸入數(shù)字后load。


修改名稱、選擇你的prometheus數(shù)據(jù)源再import即可。
監(jiān)控效果查看
下面給出我的虛擬機(jī)和容器監(jiān)控效果圖如下:


總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Portainer部署和添加其他docker服務(wù)器的方法
文章介紹了如何部署Portainer并添加其他Docker服務(wù)器,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-03-03
解決Docker Desktop運(yùn)行一直轉(zhuǎn)問題
遇到Docker啟動報(bào)錯、Docker Desktop運(yùn)行不正常等問題,常見解決方案包括以管理員身份運(yùn)行CMD,重啟Docker服務(wù),恢復(fù)Docker Desktop出廠設(shè)置,啟用Windows功能等,最終通過運(yùn)行cmd命令"netsh winsock reset"解決問題,但需注意此操作可能導(dǎo)致Docker鏡像丟失2024-09-09
Docker與Kubernetes部署實(shí)戰(zhàn)之云原生應(yīng)用交付
Docker與Kubernetes是當(dāng)今云原生應(yīng)用開發(fā)與運(yùn)維體系中最為關(guān)鍵的兩大基礎(chǔ)設(shè)施技術(shù),尤其對Java開發(fā)者而言,這篇文章主要介紹了Docker與Kubernetes部署實(shí)戰(zhàn)之云原生應(yīng)用交付的相關(guān)資料,需要的朋友可以參考下2026-04-04
Docker如何創(chuàng)建一個Jar服務(wù)容器
這篇文章主要介紹了Docker如何創(chuàng)建一個Jar服務(wù)容器問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
docker(alpine+golang)?中?hosts?不生效問題解決方法
這篇文章主要介紹了docker(alpine+golang)?中?hosts?不生效問題解決大全,本文給大家分享了三種解決方法,每種方法給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07

