Prometheus是一個時間序列資料庫。但是,它不僅僅是一個時間序列資料庫。
它涵蓋了可以綁定的整個生态系統工具集及其功能。
Prometheus主要用于對基礎設施的監控。包括伺服器,資料庫,VPS,幾乎所有東西都可以通過Prometheus進行監控。Prometheus希望通過對Prometheus配置中定義的某些端點執行的HTTP調用來檢索度量标準。
普羅米修斯的主要特點是:
1. 一個多元資料模型,其中包含通過度量标準名稱和鍵/值對辨別的時間序列資料
2.PromQL,一種靈活的查詢語言 ,可利用此次元
3.不依賴分布式存儲;單伺服器節點是自治的
4.時間序列收集通過HTTP上的拉模型進行
5.通過中間網關支援推送時間序列
6.通過服務發現或靜态配置發現目标
7.多種圖形和儀表闆支援模式
需要下載下傳鏡像:prom/mysqld-exporter(監控mysql)
prom/prometheus
prom/node-exporter(監控node節點整機狀态)
prometheus原理

1.啟動prometheus容器服務
啟動前需要先手動在目前目錄下建立prometheus.yml檔案:touch prometheus.yml,不然會報挂在檔案建立失敗的錯誤,因為docker run時預設建立的挂載點是目錄,不是檔案。
docker run -d --name prometheus -p 9090:9090 -v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
2.啟動成功後,公網通路該9090端口進入普羅米修斯首頁
3.部署mysqld-exporer監控mysql資料庫(想監控什麼就部署對應的exporter即可)
a.先部署mysql服務(有監控對象)
docker run -d --name my-mysql -v /home/gaofei/test/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1qaz9ol. -p 8888:3306 mysql:5.5
b.進入prometheus.io/download下載下傳對應的exporter
docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="root:1qaz9ol.@(mysql主機ip:888)/mysql" prom/mysqld-exporter
配置prometheus.yml檔案
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
- rules/*.rules
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
scrape_interval: 10s
static_configs:
- targets: ['ip:9100']
- job_name: 'mysql'
scrape_interval: 10s
static_configs:
- targets: ['ip:9104']
4.重新開機prometheus服務
docker restart prometheus
5.通路prometheus首頁檢視mysql的監控
點選mysql---show more
由上可見,是通過一個metrics的接口來傳輸資料的,此時mysql和node都處于可監控的狀态了。
——————————————————————————————————————————
6.将監控資料通過grafana面闆展示
a.啟動grafana服務
docker run -d --name=grafana -p 3000:3000 grafana/grafana
b.通路grafana首頁(預設使用者和密碼:admin/admin)
3.選擇資料源
隻需要配置URL即可
4.制作對應服務的儀表盤
将id粘貼後點選load
點選import
同理配置node-exporter監控
grafana中搜尋
配置好grafana面闆後發現沒有資料
是因為在服務端沒有啟動node-exporter 服務,直接下載下傳二進制檔案然後啟動(友善,因為node_exporter設計用于監控主機系統。不建議将其部署為Docker容器,因為它需要通路主機系統)
将該檔案上傳至主控端後,執行以下1,2,3步,可使用nohup ./node_exporter --web.listen-address=":9100"&指令背景啟動
啟動後公網通路9100端口即可驗證是否可用
然後再通路grafana中node-exporter就有node主控端的系統監控資料了
OK,
大功告成~~~
後期可結合jmeter使用,可以邊壓測,邊觀察服務資源使用率等資料~~~~~