Prometheus安裝部署說明


本文主要介紹了如何二進制安裝Prometheus、使用 Node Exporter 采集主機信息並使用Grafana來進行圖形化的展示。

1. 安裝Prometheus Server

  Prometheus基於Golang編寫,編譯后的軟件包,不依賴於任何的第三方依賴。用戶只需要下載對應平台的二進制包,解壓並且添加基本的配置即可正常啟Prometheus Server。

1.1 下載並解壓二進制安裝包

通過Prometheus的官方網站:https://prometheus.io/download/,下載最新版本的Prometheus安裝包

#下載、解壓、創建軟鏈接
cd /export/
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz tar -zxvf prometheus-2.13.1.linux-amd64.tar.gz mv prometheus-2.13.1.linux-amd64 prometheus

1.2 配置說明

解壓后當前目錄會包含默認的Prometheus配置文件promethes.yml,下面配置文件做下簡略的解析:

# 全局配置
global:
  scrape_interval:     15s # 設置抓取間隔,默認為1分鍾
  evaluation_interval: 15s #估算規則的默認周期,每15秒計算一次規則。默認1分鍾
  # scrape_timeout  #默認抓取超時,默認為10s

# Alertmanager相關配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 規則文件列表,使用'evaluation_interval' 參數去抓取
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

#  抓取配置列表
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

1.3 創建prometheus的用戶及數據存儲目錄

為了安全,使用普通用戶來啟動prometheus服務。作為一個時序型的數據庫產品,prometheus的數據默認會存放在應用所在目錄下。

useradd  -s /sbin/nologin -M prometheus 
#創建數據目錄
mkdir /export/prometheus/data -p
#修改目錄屬主
chown -R prometheus:prometheus /export/prometheus/

1.4 創建Systemd服務啟動prometheus

prometheus的啟動很簡單,只需要直接啟動解壓目錄的二進制文件prometheus即可,但是為了更加方便對prometheus進行管理,這里使用systemd來啟停prometheus。

# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/export/prometheus/prometheus --config.file=/export/prometheus/prometheus.yml --storage.tsdb.path=/export/prometheus/data
Restart=on-failure
[Install]
WantedBy
=multi-user.target

備注:在service文件里面,我們定義了啟動的命令,可以定義數據存儲路徑,否則默認會在prometheus二進制的目錄的data下。

systemctl start prometheus
systemctl status prometheus
systemctl enable prometheus

1.5 打開prometheus的web頁面

到這里,prometheus就已經安裝好了。prometheus啟動后默認會啟動9090端口,通過瀏覽器打開該端口頁面。

http://IP:9090/graph

 

 

2. Grafana的安裝

雖然說prometheus能展示一些圖表,但對比Grafana,那只是個過家家。接下來我們需要在同一個服務器上安裝Grafana服務,用來展示prometheus收集到的數據。

2.1 下載並解壓二進制包

這里安裝的Grafana的版本為6.4.4,要下載其他的版本可以到Grafana的官網:https://grafana.com/grafana/download進行下載。

cd /export
wget https://dl.grafana.com/oss/release/grafana-6.4.4.linux-amd64.tar.gz
tar -zxvf grafana-6.4.4.linux-amd64.tar.gz mv grafana-6.4.4 grafana

2.2 創建grafana用戶及數據存放目錄

useradd -s /sbin/nologin -M grafana
mkdir /export/grafana/data
chown -R grafana:grafana /export/grafana/ 

2.3 修改配置文件

修改 /export/grafana/conf/defaults.ini 文件,配置為上面新建的數據目錄。

data = /export/grafana/data
logs = /export/grafana/log
plugins = /export/grafana/plugins
provisioning = /export/grafana/conf/provisioning

2.4 把grafana-server添加到systemd中

新增 grafana-server.service 文件,使用systemd來管理grafana服務

vim grafana-server.service

[Unit]
Description=Grafana
After=network.target

[Service]
User=grafana
Group=grafana
Type=notify
ExecStart=/export/grafana/bin/grafana-server -homepath /export/grafana
Restart=on-failure

[Install]
WantedBy=multi-user.target

啟停並設置開機啟動

systemctl start  grafana-server
systemctl status  grafana-server
systemctl enable  grafana-server

2.5 打開grafana的web頁面

grafana已經安裝完畢。默認情況下,grafana-server會啟動3000端口,使用瀏覽器打開grafana頁面:http://IP:3000/login,輸入默認的賬號密碼 admin/admin登錄,第一次登陸需要修改密碼。

2.6 添加數據源

grafana雖然已經安裝好了,但是這個時候還沒有數據,沒辦法作圖。下面我們把grafana和prometheus關聯起來,也就是在grafana中添加添加數據源。
在配置頁面點擊添加Data Sources,然后選擇prometheus,輸入prometheus服務的參數即可。

 

 

 按照上圖示例添加數據源之后,點擊save & test就可以了。

2.7 添加自帶的示例圖表

按照上面的指導添加數據源之后,我們就可以針對這些數據來繪制圖表了。grafana最人性化的一點就是擁有大量的圖表模板,我們只需要導入模板即可,從而省去了大量的制作圖表的時間。
目前我們的prometheus還沒有什么監控數據,只有prometheus本身的數據,我們看下這些prometheus本身數據圖表是怎樣的。
在添加數據源的位置上,右邊的選項有個Dashboards的菜單選項,我們點擊進去,然后導入基礎服務器監控圖表。

 

 從Grafana官網查找最新的監控圖表:

 

 復制ID或者下載后,此處復制ID:

輸入其ID號即可出來相應模板信息:

 

 

 

 

 最后我們在左上角的位置上選擇這個圖表查看下,是不是很酷炫呢。這是個簡單的示例,后續我們使用node-exporter來收集主機的性能信息,然后在grafana中展示。

 

 

3. 使用Node Exporter采集主機運行數據

與傳統的監控zabbix來對比的話,prometheus-server就像是mysql,負責存儲數據。只不過這是時序數據庫而不是關系型的數據庫。數據的收集還需要其他的客戶端,在prometheus中叫做exporter。針對不同的服務,有各種各樣的exporter,就好比zabbix的zabbix-agent一樣。

這里為了能夠采集到主機的運行指標如CPU, 內存,磁盤等信息。我們可以使用Node Exporter。Node Exporter同樣采用Golang編寫,並且不存在任何的第三方依賴,只需要下載,解壓即可運行。可以從https://prometheus.io/download/獲取最新的node exporter版本的二進制包

3.1 下載node exporter

wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
#新建一個目錄專門安裝各種exporter
mkdir -p /export/prometheus_exporter
mv node_exporter-0.18.1.linux-amd64 /export/prometheus_exporter/
cd /export/prometheus_exporter/
mv node_exporter-0.18.1.linux-amd64/ node_exporter

 

3.2 加入linux服務,啟動node exporter

直接打開node_exporter的可執行文件即可啟動 node export,默認會啟動9100端口。建議使用systemctl來啟動

# vim /etc/systemd/system/node_exporter.service 

[Unit]
Description=node_exporter
After=network.target

 
               

[Service]
Restart=on-failure
ExecStart=/export/prometheus_exporter/node_exporter/node_exporter

 
               

[Install]
WantedBy=multi-user.target

 

 

3.3 加入開機啟動

# systemctl enable node_exporter

# systemctl start node_exporter

3.4 配置Prometheus,收集node exporter的數據

可以看到node exporter啟動后也就是暴露了9100端口,並沒有把數據傳到prometheus,我們還需要在prometheus中配置,讓prometheus去pull這個接口的數據。
編輯prometheus.yml文件,增加后面4行.

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

   #采集node exporter監控數據
  - job_name: 'node'
    static_configs:
    - targets: ['localhost:9100']

然后重啟prometheus,打開prometheus頁面查看是不是有對應的數據了。

 

 在prometheus的web界面看到這個節點是up的狀態了,接下來我們在grafana中添加對應的模板。

 

3.5 導入grafana模板,數據展示

在導入界面,我們輸入模板的編號,這里我使用的是9276號模板,如要使用其他的模板,請到grafana的官網去查找 https://grafana.com/dashboards

 

選擇數據源,然后點擊導入

 

然后你就可以看到下面一個這么形象具體好看的界面了。

 

 

 


免責聲明!

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



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