1. 程式人生 > 其它 >使用 docker 搭建 granfana+prometheus 監控平臺監控測試伺服器資源

使用 docker 搭建 granfana+prometheus 監控平臺監控測試伺服器資源

網際網路發展的今天,人們對網際網路產品的使用者體驗要求也越來越高,企業為了能提供更優質的使用者體驗,就會絞盡腦汁想盡各種辦法。而對於伺服器的資源監控,搭建一個資源監控平臺,就是一個很好的維護優質服務的保障平臺。利用監控平臺,監控伺服器資源的使用情況,實時檢視使用者在使用企業產品服務時,基礎支撐能力情況,發現監控異常,能夠第一時間做出相應的調整決策,從而保障提供使用者優質體驗。《測試面試寶典》

今天,就給大家講解一種基於目前企業普遍使用的技術,快速搭建一個非常前沿、高大上的監控平臺:docker + grafana + prometheus

docker

docker 相信大家都已經在用了,因為現在大多企業中都在用。使用它來搭建環境,相比傳統方式,速度要快非常非常多,同時,服務執行起來後,對資源的消耗也少很多,而且還能方便對各種服務進行定向擴容。而它的安裝也非常的簡單,準備一臺 Linux 機器,如 CentOS7,只需要執行兩個命令,就可以安裝成功。

注意: 下面沒有特別說明,預設 Linux 機器防火牆是關閉的;Linux 機器與被測伺服器網路是通的。

  # centos7 安裝docker 
# 安裝依賴
yum install -y yum-utils device-mapper-persistent-data lvm2

#安裝docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 設定開機啟動
systemctl enable docker

prometheus

Prometheus 是一套開源的監控 + 預警 + 時間序列資料庫的組合,現在越來越多的公司或組織開始採用 Prometheus,現在常見的 kubernetes 容器管理系統,也會搭配 Prometheus 來進行監控。

Prometheus 本身不具備收集監控資料功能,需要使用 http 介面來獲取不同的 export 收集的資料,儲存到時序資料庫中。

使用 docker 方式安裝 Prometheus 非常的簡單

  # 下載Prometheus映象
docker pull prom/prometheus

# 建立Prometheus容器
docker run -itd --name=docker_prometheus --restart=always -p 9090:9090 prom/prometheus

容器建立成功後,即可通過瀏覽器訪問 http://prometheus 機器 ip:9090 檢視

grafana

Grafana 是一個跨平臺的開源的度量分析和視覺化工具,可以通過將採集的資料庫查詢後視覺化的展示,並及時通知。官方提供了非常多的視覺化模板,根據不同的資料來源,選擇不同的外掛或模板即可。

使用 docker 安裝,也是非常非常簡單

  # 下載映象
docker pull grafana/grafana

# 建立容器
docker run -itd --name=grafana \
	--restart=always \
	-p 3000:3000 \
	-v $PWD/grafana-storage:/var/lib/grafana \
	grafana/grafana

容器建立成功後,即可通過瀏覽器訪問 http://grafana 機器 ip:3000,預設賬號密碼都是:admin

node_export

node_export 是 Prometheus 的一個 export,主要是用來收集伺服器硬體資源使用情況的。所以這個往往會部署再被監控的伺服器上。即:grafana、Prometheus 會獨立部署在一臺機器上,node_export 則被部署在被監控的伺服器上,收集被監控的伺服器資源資料,給 Prometheus,然後再通過 grafana 展示出來。

node_export 部署在被監控的伺服器上,可以根據伺服器的實際情況,選擇直接安裝,還是用 docker 安裝。

  • 伺服器上直接安裝 node_export
    • 首先,用瀏覽器訪問:https://github.com/prometheus/node_exporter/releases 這裡能獲得 node_export 所有的釋出版本,可以根據自己伺服器的實際情況,選擇要下載的包
    • 下載包後,上傳到被監控的伺服器上,解壓
    • 進入解壓資料夾,直接啟動 ./node_exporter
  • 伺服器上用 docker 安裝 node_export
  # 下載映象
docker pull prom/node-exporter

# 建立容器
docker run -itd --name=node-exporter \
	--restart=always \
	-p 9100:9100  \
	-v "/proc:/host/proc:ro" \
	-v "/sys:/host/sys:ro" \
	-v "/:/rootfs:ro" \
	prom/node-exporter

node-exporter 部署啟動好了後,在伺服器的防火牆上開放 9100 埠,則可以通過瀏覽器訪問 http://伺服器 ip:9100/metrics 檢視監控收集的資料。

配置 Prometheus+node_exporter

prometheus 本身沒有資料收集功能,需要用 node_exporter 收集,他們倆之間如何連線在一起呢?這就要修改 Prometheus 的配置檔案,這個檔案在 Prometheus 容器的
/etc/prometheus/prometheus.yml

  # 從Prometheus容器中拷貝配置檔案到宿主機
docker cp docker_prometheus:/etc/prometheus/prometheus.yml $PWD

修改 prometheus.yml 檔案

  vim prometheus.yml


scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['被監控的伺服器ip:9100']
        labels:
          instance: localhost

注意 :yml 檔案的編輯,注意格式;想新增多個監控伺服器時,可以在中括號中,用逗號分隔寫多個

  # 把修改後的Prometheus配置檔案拷貝到容器中
docker cp $PWD/prometheus.yml docker_prometheus:/etc/prometheus/prometheus.yml

重啟 Prometheus 容器

  docker restart docker_prometheus

配置 Grafana+Prometheus

現在,萬事俱備,只欠東風了,只需要配置 grafana+prometheus 就能看到監控結果了。

用瀏覽器訪問 http://grafana 機器 ip:3000 登入使用者密碼:admin

登入後,在首頁,選擇 "Add your first data source"

選擇 Prometheus,填寫相關資訊

點選 back 按鈕,回到首頁

再點選 import

輸入 12884,點選 load

再頁面底部,Prometheus 資料庫下拉框中,選擇自己新增的資料來源的名稱,點選 import 按鈕,所有工作就都完成。《測試面試寶典》