欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Promethus普羅米修斯介紹及Linux系統(tǒng)下的安裝與配置

  發(fā)布時間:2021-11-27 11:46:13   作者:佚名   我要評論
這篇文章主要為大家介紹了Promethus普羅米修斯基本功能特點及Linux系統(tǒng)下的安裝與配置實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1. 普羅米修斯概述

  • Prometheus(是由go語言(golang)開發(fā))是一套開源的監(jiān)控&報警&時間序列數(shù) 據(jù)庫的組合。適合監(jiān)控docker容器。
  • Prometheus是最初在SoundCloud上構建的開源系統(tǒng)監(jiān)視和警報工具包 。自2012年成立以來,許多公司和組織都采用了Prometheus,該項目擁有非常活躍的開發(fā)人員和用戶社區(qū)?,F(xiàn)在,它是一個獨立的開源項目,并且獨立于任何公司進行維護。為了強調(diào)這一點并闡明項目的治理結(jié)構,Prometheus 于2016年加入了 Cloud Native Computing Foundation,這是繼Kubernetes之后的第二個托管項目。
  • Prometheus是一個時間序列數(shù)據(jù)庫。但是,它不僅僅是一個時間序列數(shù)據(jù)庫。
  • 它涵蓋了可以綁定的整個生態(tài)系統(tǒng)工具集及其功能。
  • Prometheus主要用于對基礎設施的監(jiān)控。包括服務器,數(shù)據(jù)庫,VPS,幾乎所有東西都可以通過Prometheus進行監(jiān)控。Prometheus希望通過對Prometheus配置中定義的某些端點執(zhí)行的HTTP調(diào)用來檢索度量標準。

Prometheus 的優(yōu)點

  • 非常少的外部依賴,安裝使用超簡單
  • 已經(jīng)有非常多的系統(tǒng)集成 例如:docker HAProxy Nginx JMX等等
  • 服務自動化發(fā)現(xiàn)
  • 直接集成到代碼
  • 設計思想是按照分布式、微服務架構來實現(xiàn)的
  • 可以采用 push gateway 的方式把時間序列數(shù)據(jù)推送至 Prometheus server 端
  • 可以通過服務發(fā)現(xiàn)或者靜態(tài)配置去獲取監(jiān)控的 targets。
  • 有多種可視化圖形界面。
  • 易于伸縮。

Prometheus 的特性

  • 一個多維數(shù)據(jù)模型,其中包含通過度量標準名稱和鍵/值對標識的時間序列數(shù)據(jù)
  • PromQL,一種靈活的查詢語言 ,可利用此維度
  • 不依賴分布式存儲;單服務器節(jié)點是自治的
  • 時間序列收集通過HTTP上的拉模型進行
  • 通過中間網(wǎng)關支持推送時間序列通過服務發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標
  • 多種圖形和儀表板支持模式

2. 時間序列數(shù)據(jù)

1、什么是序列數(shù)據(jù)

時間序列數(shù)據(jù)(TimeSeries Data) : 按照時間順序記錄系統(tǒng)、設備狀態(tài)變化 的數(shù)據(jù)被稱為時序數(shù)據(jù)。
應用的場景很多, 如:

  • 無人駕駛車輛運行中要記錄的經(jīng)度,緯度,速度,方向,旁邊物體的距 離等等。每時每刻都要將數(shù)據(jù)記錄下來做分析。
  • 某一個地區(qū)的各車輛的行駛軌跡數(shù)據(jù)
  • 傳統(tǒng)證券行業(yè)實時交易數(shù)據(jù)
  • 實時運維監(jiān)控數(shù)據(jù)等

2 時間序列數(shù)據(jù)特點

性能好

關系型數(shù)據(jù)庫對于大規(guī)模數(shù)據(jù)的處理性能糟糕。NOSQL可以比較好的處理 大規(guī)模數(shù)據(jù),讓依然比不上時間序列數(shù)據(jù)庫。

存儲成本低

高效的壓縮算法,節(jié)省存儲空間,有效降低IO
Prometheus有著非常高效的時間序列數(shù)據(jù)存儲方法,每個采樣數(shù)據(jù)僅僅占 用3.5byte左右空間,上百萬條時間序列,30秒間隔,保留60天,大概花了 200多G(來自官方數(shù)據(jù))

3. Prometheus原理架構圖

下圖說明了Prometheus的體系結(jié)構及其某些生態(tài)系統(tǒng)組件:

  1. prometheus直接或通過中介推送網(wǎng)關從已檢測作業(yè)中刪除指標,以處理短暫的作業(yè)。它在本地存儲所有報廢的樣本,并對這些數(shù)據(jù)運行規(guī)則,以匯總和記錄現(xiàn)有數(shù)據(jù)中的新時間序列,或生成警報。Grafana或其他API使用者可以用來可視化收集的數(shù)據(jù)。
  2. Prometheus可以很好地記錄任何純數(shù)字時間序列。它既適用于以機器為中心的監(jiān)視,也適用于高度動態(tài)的面向服務的體系結(jié)構的監(jiān)視。在微服務世界中,它對多維數(shù)據(jù)收集和查詢的支持是一種特別的優(yōu)勢。
  3. Prometheus的設計旨在提高可靠性,使其成為中斷期間要使用的系統(tǒng),以使您能夠快速診斷問題。每個Prometheus服務器都是獨立的,而不依賴于網(wǎng)絡存儲或其他遠程服務。當基礎結(jié)構的其他部分損壞時,您可以依靠它,并且無需設置廣泛的基礎結(jié)構即可使用它。
  4. 普羅米修斯重視可靠性。即使在故障情況下,您始終可以查看有關系統(tǒng)的可用統(tǒng)計信息。如果您需要100%的準確性(例如按請求計費),則Prometheus并不是一個好的選擇,因為所收集的數(shù)據(jù)可能不夠詳細和完整。在這種情況下,最好使用其他系統(tǒng)來收集和分析數(shù)據(jù)以進行計費,并使用Prometheus進行其余的監(jiān)視。

4. 部署Prometheus

實驗環(huán)境:

主機名 IP 服務
node2 192.168.200.154 prometheus
node1 192.168.200.144 node_exporter

1 準備工作

下載最新版的服務端prometheus和客戶端node_exporter

服務端:https://prometheus.io/download/#prometheus

客戶端:https://prometheus.io/download/#node_exporter

2 下載軟件包

[root@node2 ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

3 解壓縮包

[root@node2 ~]# tar xf prometheus-2.31.1.linux-amd64.tar.gz -C /usr/local/
[root@node2 src]# cd /usr/local/
[root@node2 local]# ls
bin  games    lib    libexec                        redis  share
etc  include  lib64  prometheus-2.31.1.linux-amd64  sbin   src
[root@node2 local]# mv prometheus-2.31.1.linux-amd64/  prometheus

4 運行Prometheus server

[root@node2 local]# cd prometheus/
[root@node2 prometheus]# ./prometheus --config.file=prometheus.yml

5 配置Prometheus

在Prometheus.yml中有配置文件,我們可以對其進行配置,當然第一次安裝也可以不用配置;

root@node2 prometheus]# vim /usr/local/prometheus/prometheus.yml
#全局配置
global:
  scrape_interval: 15s #每隔15秒向目標抓取一次數(shù),默認為一分鐘
  evaluation_interval: 15s #每隔15秒執(zhí)行一次告警規(guī)則,默認為一分鐘
  # scrape_timeout: 600s  #抓取數(shù)據(jù)的超時時間,默認為10s
#告警配置
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093	 #alertmanager所部署機器的ip和端口
#定義告警規(guī)則和閾值的yml文件
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
#收集數(shù)據(jù)配置
#以下是Prometheus自身的一個配置.
scrape_configs:
  #這個配置是表示在這個配置內(nèi)的時間序例,每一條都會自動添加上這個{job_name:"prometheus"}的標簽.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:			
#靜態(tài)配置
    - targets: ["localhost:9090"]

其配置大致可分為四部分:

global:全局配置,其中scrape_interval表示抓取一次數(shù)據(jù)的間隔時間,evaluation_interval表示進行告警規(guī)則檢測的間隔時間;

alerting:告警管理器(Alertmanager)的配置,目前還沒有安裝Alertmanager;

rule_files:告警規(guī)則有哪些;

scrape_configs:抓取監(jiān)控信息的目標。一個job_name就是一個目標,其targets就是采集信息的IP和端口。這里默認監(jiān)控了Prometheus自己,可以通過修改這里來修改Prometheus的監(jiān)控端口。Prometheus的每個exporter都會是一個目標,它們可以上報不同的監(jiān)控信息,比如機器狀態(tài),或者mysql性能等等,不同語言sdk也會是一個目標,它們會上報你自定義的業(yè)務監(jiān)控信息。

6 校驗配置文件

[root@node2 prometheus]# ./promtool check config ./prometheus.yml
Checking ./prometheus.yml
  SUCCESS: 0 rule files found

7 配置service啟動文件

[root@node2 prometheus]# cat > /usr/lib/systemd/system/prometheus.service <<EOF
[Unit]
Description=The Prometheus Server
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
RestartSec=15s
[Install]
WantedBy=multi-user.target
EOF
[root@node2 prometheus]# systemctl daemon-reload 
[root@node2 prometheus]# systemctl restart prometheus
[root@node2 local]# ss -antl
State  Recv-Q Send-Q Local Address:Port   Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:6379        0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128             [::]:22             [::]:*            
LISTEN 0      128                *:9090              *:* 

8啟動參數(shù)介紹

##啟動
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
##啟動參數(shù)介紹
--config.file      	   #加載prometheus的配置文件
--web.listen-address   #監(jiān)聽prometheus的web地址和端口
--web.enable-lifecycle #熱啟動參數(shù),可以在不中斷服務的情況下重啟加載配置文件
--storage.tsdb.retention   #數(shù)據(jù)持久化的時間                         
--storage.tsdb.path        #數(shù)據(jù)持久化的保存路徑

9訪問測試

輸入: “ip地址”+":9090" 在瀏覽器中進行訪問,如果出現(xiàn)可視化界面說明成功;

5. node_exporter部署

1 下載軟件包

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz

2 解壓軟件包

[root@node1 ~]# ls
anaconda-ks.cfg  node_exporter-1.3.0.linux-amd64.tar.gz
[root@node1 ~]# tar xf node_exporter-1.3.0.linux-amd64.tar.gz -C /usr/local/
[root@node1 ~]# 
[root@node1 ~]# cd /usr/local/
[root@node1 local]# ls
bin  games    lib    libexec                          sbin   src
etc  include  lib64  node_exporter-1.3.0.linux-amd64  share

[root@node1 local]# mv node_exporter-1.3.0.linux-amd64/ node_exporter
[root@node1 local]# 

3 啟動參數(shù)介紹

注意:相關啟動的參數(shù)
--web.listen-address     #node_expoetrt暴露的端口
--collector.systemd	     #從systemd中收集
--collector.systemd.unit-whitelist   ##白名單,收集目標
		".+"         		      #從systemd中循環(huán)正則匹配單元
		"(docker|sshd|nginx).service"  #白名單,收集目標,收集參數(shù)node_systemd_unit_state

4 配置service文件

[root@node1 local]# vi /usr/lib/systemd/system/node_exporter.service
[unit]
Description=The node_exporter Server
After=network.target

[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
RestartSec=15s
SyslogIdentifier=node_exporter

[Install]
WantedBy=multi-user.target

[root@node1 local]# systemctl daemon-reload 
[root@node1 local]# systemctl enable node_exporter 
[root@node1 local]# systemctl restart node_exporter
Created symlink /etc/systemd/system/multi-user.target.wants/node_exporter.service → /usr/lib/systemd/system/node_exporter.service.

[root@node1 local]# ss -antl
State  Recv-Q Send-Q Local Address:Port   Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128             [::]:22             [::]:*            
LISTEN 0      128                *:9100              *:*            
[root@node1 local]# 

5.在Prometheus主機上修改prometheus.yml配置文件

[root@node2 prometheus]# vim /usr/local/prometheus/prometheus.yml
......
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["192.168.200.144:9100"]    //此處指定客戶端ip和端口

6.訪問測試是否連接成功

使用Prometheus主機IP地址和端口號 http://192.168.200.154:9100/targets訪問

以上就是Promethus普羅米修斯介紹及Linux系統(tǒng)下的安裝與配置的詳細內(nèi)容,更多關于Promethus普羅米修斯的資料請關注腳本之家其它相關文章!

相關文章

最新評論