CentOS8.2安裝配置Prometheus和node_exporter詳解


Prometheus是一個開源的監視,查詢和警報工具。該功能豐富的工具最初由Soundcloud於2012年構建,已被多家公司采用,以監控其IT基礎架構並確保所有系統運行順暢。Prometheus允許您查詢和提取時間序列指標,例如通過HTTP協議的CPU和內存利用率,並在實時圖形上將其可視化。您還可以將Prometheus配置為在節點或服務停機時發出警報,並將其與其他第三方監視工具(例如Grafana)集成以增強數據可視化。在本指南中,我們將介紹在CentOS 8 / RHEL 8系統上Prometheus的安裝。

Prometheus架構

測試環境

prometheus主機 prometheus 客戶端
主機名 prometheusserver prometheusclient
IP信息 192.168.6.140 192.168.6.160

步驟1:創建一個Prometheus用戶和組

首先,我們將為Prometheus創建一個系統用戶。執行以下命令以實現此目的。

[root@prometheusserver ~]# useradd -m -s /bin/false prometheus
[root@prometheusserver ~]# id prometheus
uid=1005(prometheus) gid=1005(prometheus) groups=1005(prometheus)
[root@prometheusserver ~]# 

您可能已經注意到,系統用戶沒有/ bin / false選項中指定的登錄權限。

步驟2:Prometheus創建配置目錄

創建Prometheus用戶之后,我們將在/ etc和/ var目錄中創建配置目錄,這些目錄將存儲Prometheus配置文件和數據。因此,運行以下命令:

[root@prometheusserver ~]# mkdir /etc/prometheus
[root@prometheusserver ~]# mkdir /var/lib/prometheus

在/ var / lib / prometheus上設置所有權

[root@prometheusserver ~]# chown prometheus /var/lib/prometheus/

步驟3:下載Prometheus tar文件

有了目錄后,我們現在可以下載Prometheus。要獲取最新版本,請轉到“下載”頁面以獲取適用於您的環境的最新版本。在撰寫本文時,最新版本為v 2.23.0。或者,只需運行以下命令

[root@prometheusserver ~]# dnf install wget -y
[root@prometheusserver ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz

下載完成后,解壓縮tarball文件,如下所示

[root@prometheusserver tmp]# tar zxvf prometheus-2.23.0.linux-amd64.tar.gz 

這將為您提供一個名為prometheus-2.14.0.linux-amd64的目錄

使用tree命令查看目錄結構,

提取的目錄包含2個二進制文件prometheus和promtool,我們需要將其復制到/usr/local/bin路徑。

因此,導航到提取的目錄並使用以下命令將其復制:

[root@prometheusserver tmp]# cd  prometheus-2.23.0.linux-amd64
[root@prometheusserver prometheus-2.23.0.linux-amd64]# cp prometheus  /usr/local/bin

對其他二進制文件也一樣

[root@prometheusserver prometheus-2.23.0.linux-amd64]# cp promtool  /usr/local/bin

步驟4:Prometheus創建配置文件

首先從配置開始,創建文件/etc/prometheus/prometheus.ym l並將配置粘貼到文件中

[root@prometheus ~]# vi /etc/prometheus/prometheus.yml
# Global config
global:
  scrape_interval:15s        #設置間隔為每15秒。默認值為每1分鍾。 
  Evaluation_interval:15s    #每15秒評估一次規則。默認值為每1分鍾。 
  scrape_timeout:15s         #scrape_timeout設置為全局默認值(10s)。
#包含僅一個要刮擦的端點的刮擦配置: #這里是Prometheus本身。
scrape_configs:
#作業名稱作為標簽“ job = <job_name>”添加到從此配置中刮取的任何時間序列。
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']
    

這將僅監視您的本地系統(Prometheus Server)。

接下來,如下調整防火牆,以允許通過端口9090到服務器的外部連接

[root@prometheusserver /]# firewall-cmd --add-port=9090/tcp --permanent
success
[root@prometheusserver /]#firewall-cmd --reload
success

步驟5:Prometheus Server創建Systemd服務文件

為了使我們能夠使用systemd將Prometheus作為服務進行管理,我們需要為其創建系統文件。因此,如圖所示創建文件並粘貼內容,

[root@prometheusserver /]# vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Time Series Collection and Processing Server
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

為了使更改生效,請重新加載systemctl,

[root@prometheusserver /]# systemctl daemon-reload

現在啟動並啟用Prometheus在啟動時運行

[root@prometheusserver /]# systemctl start prometheus
[root@prometheusserver /]# systemctl enable prometheus

為了確定Prometheus正在運行,請運行以下命令:

[root@prometheusserver /]# systemctl status  prometheus

從顯示的輸出中,我們可以清楚地看到Prometheus正常運行,沒有錯誤。另外,您可以使用netstat實用工具檢查服務是否正在偵聽端口9090。

[root@prometheusserver /]# netstat -tunlp
或者
[root@prometheusserver /]# ss -antpl

Prometheus按預期在端口9090上運行。現在轉到瀏覽器,瀏覽服務器的IP,如下所示

http://服務器-ip:9090

演示: http://192.168.6.140:9090

點擊“狀態”標簽,然后點擊“目標

您的系統將顯示如下

步驟6:安裝並配置node_exporter

node_exporter是一種實用程序,可收集和大量Linux系統指標,例如CPU,內存使用率,文件系統和網絡統計信息。在本節中,我們將在Prometheus服務器和遠程CentOS 8 Linux主機上安裝node_exporter,並監視這兩個主機上的系統指標。

【1】在Prometheus節點上,我們將為node_exporter創建一個系統用戶。

[root@prometheusserver tmp]# useradd -m -s /bin/false node_exporter

【2】接下來,前往Prometheus的下載頁面,然后下載node_exporter tarball或使用下面的wget命令從命令行下載下來,

[root@prometheusserver tmp]# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

【3】下載node_exporter文件后,繼續進行提取,如下所示

[root@prometheusserver tdops]# tar zxvf node_exporter-1.0.1.linux-amd64.tar.gz 

【4】可以使用tree命令檢查提取的文件夾的內容,如下所示

[root@prometheusserver tdops]# tree node_exporter-1.0.1.linux-amd64
node_exporter-1.0.1.linux-amd64
├── LICENSE
├── node_exporter
└── NOTICE

0 directories, 3 files

【5】將node_exporter的二進制文件復制到 /usr/local/bin路徑

[root@prometheusserver tdops]# cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin

【6】設置已復制的node_exporter文件的文件許可權,如下所示

[root@prometheusserver tmp]# chown node_exporter:node_exporter /usr/local/bin/node_exporter

【7】我們需要配置node_exporter以作為服務運行。因此,繼續操作並創建一個systemd服務文件,如下所示

[root@prometheusserver tmp]# vi /etc/systemd/system/node_exporter.service

【8】粘貼如下所示的配置並保存文件

[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

【9】為了使更改生效,請使用以下命令重新加載systemd Manager:

[root@prometheusserver tmp]# systemctl daemon-reload

【10】啟動並啟用node_exporter服務

[root@prometheusserver tdops]# systemctl start node_exporter
[root@prometheusserver tdops]# systemctl enable node_exporter
或者
# 啟動並使節點導出器在系統引導時運行。
[root@prometheusserver tdops]# systemctl enable --now node_exporter.service

【11】為了確保該服務正在運行,請執行:

[root@prometheusserver tdops]# systemctl status node_exporter
● node_exporter.service - Prometheus Node Exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disa>
   Active: active (running) since Sun 2020-12-13 20:59:44 CST; 32s ago
 Main PID: 6419 (node_exporter)
    Tasks: 4 (limit: 23840)
   Memory: 1.7M
   CGroup: /system.slice/node_exporter.service
           └─6419 /usr/local/bin/node_exporter

【12】遇到一個小插曲,啟動時遇到錯誤

Dec 13 20:43:50 centos8 systemd[1]: Started Prometheus Node Exporter.
Dec 13 20:43:50 centos8 systemd[5595]: node_exporter.service: Failed to execute command: Exec format error
Dec 13 20:43:50 centos8 systemd[5595]: node_exporter.service: Failed at step EXEC spawning /usr/local/bin/node_exporter: Exec format error
Dec 13 20:43:50 centos8 systemd[1]: node_exporter.service: Main process exited, code=exited, status=203/EXEC
Dec 13 20:43:50 centos8 systemd[1]: node_exporter.service: Failed with result 'exit-code'.
Dec 13 20:43:50 centos8 tdops[5610]: tdops pts/1 2020-12-13 19:41 (10.57.237.13) [/tmp] 2020-12-13/20:43:50 systemctl restart   node_exporter

[root@prometheusserver tmp]# systemctl status    node_exporter
● node_exporter.service - Prometheus Node Exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2020-12-13 20:44:36 CST; 4s ago
  Process: 5635 ExecStart=/usr/local/bin/node_exporter (code=exited, status=203/EXEC)
 Main PID: 5635 (code=exited, status=203/EXEC)

Dec 13 20:44:36 prometheusserver systemd[1]: Started Prometheus Node Exporter.
Dec 13 20:44:36 prometheusserver systemd[1]: node_exporter.service: Main process exited, code=exited, status=203/EXEC
Dec 13 20:44:36 prometheusserver systemd[1]: node_exporter.service: Failed with result 'exit-code'.
[root@prometheusserver tmp]# 


【13】排查了一下發現,下載的軟件包與系統不匹配,node_exporter-1.0.1.darwin-amd64.tar.gz 更換為node_exporter-1.0.1.linux-amd64.tar.gz

【14】確保該服務正在運行,請使用netstat實用程序檢查它是否正在按默認預期在端口9100上偵聽。

[root@prometheusserver tdops]# netstat -pnltu | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      6419/node_exporter  
[root@prometheusserver tdops]# ss -antpl | grep 9100
LISTEN    0         16384                    *:9100   

Node_exporter服務正在按預期運行。

【15】如圖所示在防火牆中打開端口9100

[root@prometheusserver tdops]# firewall-cmd --add-port=9100/tcp  --permanent
success

[root@prometheusserver tdops]# firewall-cmd --reload
success

同樣,對遠程CentOS 8 Linux系統也重復上述步驟。

【16】您需要將node_exporter目標添加到prometheus.yml文件。附加以下幾行以為Prometheus服務器定義node_exporter

[root@prometheusserver tdops]# cat /etc/prometheus/prometheus.yml
# Global config
global:
  scrape_interval:     15s
  evaluation_interval: 15s
  scrape_timeout: 15s

scrape_configs:
 
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9090']



【17】重新啟動Prometheus服務

[root@prometheusserver tdops]# systemctl restart prometheus

【18】再次轉到瀏覽器,單擊“狀態”標簽,然后單擊“目標

確保 在Prometheus服務器的瀏覽器上觀察到名為node_exporter的新端點

步驟7:遠程主機上安裝node_exporter

【1】創建node_exporter 用戶

[root@prometheusclient tmp]# useradd -m -s /bin/false node_exporter

【2】Prometheus的下載頁面,然后下載node_exporter 或使用下面的wget命令從命令行下載下來,

[root@prometheusclient tmp]# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

【3】下載node_exporter文件后,繼續進行提取.

[root@prometheusclient tmp]# tar zxvf node_exporter-1.0.1.linux-amd64.tar.gz 

【4】您可以使用tree命令檢查提取的文件夾的內容,如下所示

[root@prometheusclient tmp]# tree node_exporter-1.0.1.linux-amd64
node_exporter-1.0.1.linux-amd64
├── LICENSE
├── node_exporter
└── NOTICE

0 directories, 3 files
[root@prometheusclient tmp]# 

【5】將node_exporter的二進制文件復制到 /usr/local/bin路徑

[root@prometheusclient tmp]# cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin

【6】設置已復制的node_exporter文件的文件許可權,如下所示

[root@prometheusclient tmp]# chown node_exporter:node_exporter /usr/local/bin/node_exporter

【7】需要配置node_exporter以作為服務運行。因此,繼續操作並創建一個systemd服務文件,如下所示

[root@prometheusserver tmp]# vi /etc/systemd/system/node_exporter.service

然后粘貼如下所示的配置並保存文件

[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

【8】為了使更改生效,請使用以下命令重新加載systemd Manager:

[root@prometheusclient tmp]# systemctl daemon-reload

【9】啟動並啟用node_exporter服務

[root@prometheusserver tdops]# systemctl start node_exporter
[root@prometheusserver tdops]# systemctl enable node_exporter
或者
# 啟動並使節點導出器在系統引導時運行。
[root@prometheusserver tdops]# systemctl enable --now node_exporter.service

【10】確保該服務正在運行,查看服務狀態信息:

[root@prometheusserver tdops]# systemctl status node_exporter
● node_exporter.service - Prometheus Node Exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disa>
   Active: active (running) since Sun 2020-12-13 20:59:44 CST; 32s ago
 Main PID: 6419 (node_exporter)
    Tasks: 4 (limit: 23840)
   Memory: 1.7M
   CGroup: /system.slice/node_exporter.service
           └─6419 /usr/local/bin/node_exporter

步驟8: Prometheus服務器端添加配置

【1】遠程Linux系統 prometheusclient添加端點,請回到prometheus.yml文件並在下面添加以下行

–目標:['192.168.6.160:9100']

現在,node_exporter部分應如下所示

  - job_name: 'node_exporter'
    static_configs:
    - targets: ['localhost:9090']
    - targets: ['192.168.6.160:9100']

【2】保存更改並重新啟動Prometheus服務

[root@prometheusserver tdops]# systemctl restart prometheus

【3】刷新瀏覽器並注意為遠程CentOS Linux系統添加的第二個端點

【4】顯示Prometheus服務器的度量,請運行:

[root@prometheusclient tmp]# curl http://localhost:9100/metrics  

【5】遠程CentOS 8主機,我執行了以下命令:

curl http://192.168.6.160:9100/metrics

【6】也可以通過打開瀏覽器並瀏覽URL來實現

http://192.168.10.90:9100/metrics

【7】選擇要繪制圖形的指標

【8】單擊“執行”按鈕,然后單擊下面的“圖形”選項卡以顯示圖形

這是我們本文章的結尾。您已成功安裝並配置了Prometheus,以監視服務器和遠程主機上的系統指標。

廣告時間:


  • 關於我 :全國7*24高效代維服務
  • 微信:lianglab
  • QQ:867266199
  • 淘寶店全國7*24高效代維服務
  • 全國高效代維:為中小型企業,提供雲計算咨詢代維、架構設計、降低成本。

在下一個指南中,我們將Prometheus與Grafana集成在一起,以更好地可視化和分析指標,隨時與我們分享您的反饋,並與朋友分享文章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM