CentOS7部署Prometheus


部署Prometheus監控報警系統

一、Prometheus介紹

  Prometheus是由SoundCloud開發的開源監控報警系統和時序列數據庫(TSDB);Prometheus使用Go語言開發,是Google BorgMon監控系統的開源版本;2016年由Google發起Linux基金會旗下的原生雲基金會(Cloud Native Computing Foundation), 將Prometheus納入其下第二大開源項目;Prometheus和Heapster(Heapster是K8S的一個子項目,用於獲取集群的性能數據),相比功能更完善、更全面;Prometheus性能也足夠支撐上萬台規模的集群                                                                                     

  1.1  Prometheus的特點

  • 多維度數據模型。
  • 靈活的查詢語言。
  • 不依賴分布式存儲,單個服務器節點是自主的。
  • 通過基於HTTP的pull方式采集時序數據。
  • 可以通過中間網關進行時序列數據推送。
  • 通過服務發現或者靜態配置來發現目標服務對象。
  • 支持多種多樣的圖表和界面展示,比如Grafana等。

  官網地址:https://prometheus.io/

  1.2  架構圖


  1.3  基本原理

    Prometheus的基本原理是通過HTTP協議周期性抓取被監控組件的狀態,任意組件只要提供對應的HTTP接口就可以接入監控。不需要任何SDK或者其他的集成過程。這樣做非常適合做虛擬化環境監控系統,比如VM、Docker、Kubernetes等。輸出被監控組件信息的HTTP接口被叫做exporter 。目前互聯網公司常用的組件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系統信息(包括磁盤、內存、CPU、網絡等等)。

  1.4  服務過程

  • Prometheus Daemon負責定時去目標上抓取metrics(指標)數據,每個抓取目標需要暴露一個http服務的接口給它定時抓取。Prometheus支持通過配置文件、文本文件、Zookeeper、Consul、DNS SRV Lookup等方式指定抓取目標。Prometheus采用PULL的方式進行監控,即服務器可以直接通過目標PULL數據或者間接地通過中間網關來Push數據。
  • Prometheus在本地存儲抓取的所有數據,並通過一定規則進行清理和整理數據,並把得到的結果存儲到新的時間序列中。
  • Prometheus通過PromQL和其他API可視化地展示收集的數據。Prometheus支持很多方式的圖表可視化,例如Grafana、自帶的Promdash以及自身提供的模版引擎等等。Prometheus還提供HTTP API的查詢方式,自定義所需要的輸出。
  • PushGateway支持Client主動推送metrics到PushGateway,而Prometheus只是定時去Gateway上抓取數據。
  • Alertmanager是獨立於Prometheus的一個組件,可以支持Prometheus的查詢語句,提供十分靈活的報警方式。

  1.5  三大套件

  • Server 主要負責數據采集和存儲,提供PromQL查詢語言的支持
  • Alertmanager 警告管理器,用來進行報警
  • Push Gateway 支持臨時性Job主動推送指標的中間網關

 二、基礎環境

環境/組件       版本       下載地址                                
操作系統 CentOS7   http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
Prometheus 2.17.1   https://prometheus.io/download/#prometheus
go 1.14.2 https://golang.org/dl/                      
Grafana 6.7.2 https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm

 

 

 

 

 

 

三、CentOS組件安裝、更新及配置 

  3.1  防火牆設置

1 systemctl stop firewalld                              //關閉防火牆
2 systemctl disable firewalld                        //關閉防火牆自啟

  3.2  Selinux設置

1 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config    //關閉Selinux
2 sestatus                 //查詢Selinux狀態(需重啟后查詢)

  3.3  組件安裝

1 yum install -y net-tools             //安裝Ifconfig工具
2 yum install bash-completion -y                    //安裝命令補全工具
3 yum -y install lrzsz                              //安裝文件管理工具

  3.4  更新系統及源碼庫

1 yum -y update && yum -y upgrade        

四、Prometheus服務端安裝

  4.1  安裝Go環境

  Prometheus是由go語言開發的,安裝Prometheus之前需要先安裝go環境

1 cd /opt                //進入opt文件夾目錄下
2 rz                    //上傳go安裝文件(下圖中為上傳了本次部署需要用到的所有安裝包)

1 tar -xvf go1.14.2.linux-amd64.tar.gz                    //解壓縮Go安裝包

   4.2  配置環境變量

添加/opt/go/bin目錄到PATH變量中(添加到/etc/profile 或$HOME/.profile都可以)

1 vi /etc/profile                     //編輯Profile文件

1 export GOROOT=/opt/go                 //添加在最后一行
2 export PATH=$PATH:$GOROOT/bin

1 source /etc/profile

1 go version                      //檢查Go版本號(如果顯示版本號,則Go環境安裝成功)

 五、安裝Prometheus

1 tar -xvf prometheus-2.17.1.linux-amd64.tar.gz             //解壓縮Prometheus安裝包
2 mv prometheus-2.17.1.linux-amd64/ prometheus         //移動文件至prometheus文件夾  

1 cd prometheus                            //進入prometheus文件夾
2 ./prometheus --config.file=/prometheus/prometheus.yml &       //啟動prometheus

1 瀏覽器打開:http://12.172.1.15:9090       //正常打開說明安裝沒問題

1 vi /etc/systemd/system/prometheus.service          //創建prometheus服務
將以下內容寫入文件中:
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System

[Service]
ExecStart=/prometheus/prometheus \
   --config.file=/prometheus/prometheus.yml \
   --web.listen-address=:9090
Restart=on-failure
[Install]
WantedBy=multi-user.target

 

 

 

1 systemctl daemon-reload                        //啟動服務
2 systemctl enable prometheus                  //設置開機自啟動
3 systemctl start prometheus                     //啟動服務
4 systemctl status prometheus                   //檢查Prometheus服務開啟狀態

 六、安裝Gafana

  Prometheus自帶的監控頁面顯示的內容沒有那么直觀,需要安裝grafana來使監控數據看起來更加直觀

  6.1  安裝Grafana軟件包(之前已上傳至OPT文件夾)

1 cd /opt                            //進入OPT文件夾下

1 yum localinstall grafana-6.7.2-1.x86_64.rpm -y        //YUM本地安裝Grafana

   6.2  啟動Grafana

1 systemctl daemon-reload
2 systemctl enable grafana-server.service
3 systemctl start grafana-server.service

   6.3  訪問Grafana

  瀏覽器訪問http://12.172.1.15:3000即可打開grafana頁面,默認用戶名密碼都是admin,初次登錄會要求修改默認的登錄密碼

 七、添加Prometheus數據源

  7.1  點擊主界面“Add data source”

   7.2  選擇Prometheus

   7.3  填寫數據源設置項

    URL處填寫Prometheus服務所在的IP地址,此處我們將Prometheus服務與Grafana安裝在同一台機器上,直接填寫localhost即可

    點擊下方 【Save & Test】按鈕,保存設置

 

   7.4  Dashboards頁面選擇“Prometheus 2.0 Stats”

   7.5  查看監控

  點擊Grafana圖標,切換到Grafana主頁面,然后點擊Home,選擇我們剛才添加的Prometheus 2.0 Stats,即可看到監控數據

 


免責聲明!

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



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