普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建
導(dǎo)讀
微服務(wù)中的監(jiān)控分根據(jù)作用領(lǐng)域分為三大類,Logging,Tracing,Metrics。
- Logging - 用于記錄離散的事件。例如,應(yīng)用程序的調(diào)試信息或錯(cuò)誤信息。它是我們?cè)\斷問題的依據(jù)。比如我們說的ELK就是基于Logging。
- Metrics - 用于記錄可聚合的數(shù)據(jù)。例如,隊(duì)列的當(dāng)前深度可被定義為一個(gè)度量值,在元素入隊(duì)或出隊(duì)時(shí)被更新;HTTP 請(qǐng)求個(gè)數(shù)可被定義為一個(gè)計(jì)數(shù)器,新請(qǐng)求到來時(shí)進(jìn)行累。prometheus專注于Metrics領(lǐng)域。
- Tracing - 用于記錄請(qǐng)求范圍內(nèi)的信息。例如,一次遠(yuǎn)程方法調(diào)用的執(zhí)行過程和耗時(shí)。它是我們排查系統(tǒng)性能問題的利器。最常用的有Skywalking,ping-point,zipkin。
今天我們主要聊聊Prometheus的監(jiān)控,接下來我們了解下需要涉及的幾個(gè)關(guān)鍵組件。
Prometheus
Prometheus(中文名:普羅米修斯)是由SoundCloud開發(fā)的開源監(jiān)控報(bào)警系統(tǒng)和時(shí)序列數(shù)據(jù)庫(kù)(TSDB). Prometheus使用Go語(yǔ)言開發(fā), 是Google BorgMon監(jiān)控系統(tǒng)的開源版本。
Prometheus的基本原理是通過HTTP協(xié)議周期性抓取被監(jiān)控組件的狀態(tài), 任意組件只要提供對(duì)應(yīng)的HTTP接口就可以接入監(jiān)控. 不需要任何SDK或者其他的集成過程。輸出被監(jiān)控組件信息的HTTP接口被叫做exporter,目前開發(fā)常用的組件大部分都有exporter可以直接使用, 比如Nginx、MySQL、Linux系統(tǒng)信息、Mongo、ES等
exporter
prometheus可以理解為一個(gè)數(shù)據(jù)庫(kù)+數(shù)據(jù)抓取工具, 工具從各處抓來統(tǒng)一的數(shù)據(jù), 放入prometheus這一個(gè)時(shí)間序列數(shù)據(jù)庫(kù)中. 那如何保證各處的數(shù)據(jù)格式是統(tǒng)一的呢?就是通過這個(gè)exporter. Exporter是一類數(shù)據(jù)采集組件的總稱. Exporter負(fù)責(zé)從目標(biāo)處搜集數(shù)據(jù), 并將其轉(zhuǎn)化為Prometheus支持的格式, 它開放了一個(gè)http接口(以便Prometheus來抓取數(shù)據(jù)). 與傳統(tǒng)的數(shù)據(jù)采集組件不同的是, Exporter并不向中央服務(wù)器發(fā)送數(shù)據(jù), 而是等待中央服務(wù)器(如Prometheus等)主動(dòng)前來抓取。https://github.com/prometheus 有很多寫好的exporter,可以直接下載使用。
Grafana
Grafana是一個(gè)圖形化工具, 它可以從很多種數(shù)據(jù)源(例如Prometheus)中讀取數(shù)據(jù)信息, 使用很漂亮的圖表來展示數(shù)據(jù), 并且有很多開源的dashborad可以使用,可以快速地搭建起一個(gè)非常精美的監(jiān)控平臺(tái)。它與Prometheus的關(guān)系就類似于Kibana與ElasticSearch。
環(huán)境準(zhǔn)備
在開始配置之前請(qǐng)下載以下幾個(gè)軟件(直接從github或者grafana官網(wǎng)下載太慢了,簡(jiǎn)直是龜速而且容易下載失敗,建議使用迅雷下載)。
- prometheus
- grafana
- node_exporter
安裝
準(zhǔn)備兩臺(tái)服務(wù)器,一臺(tái)用作安裝prometheus和grafana,一臺(tái)用作放置exporter組件。建立應(yīng)用文件夾,將相關(guān)軟件上傳至服務(wù)器。- 192.168.249.131 prometheus,grafana
- 192.168.249.129 exporter
prometheus
使用如下shell命令進(jìn)行安裝并啟動(dòng)
tar zxvf prometheus-2.13.1.linux-amd64.tar.gz mv prometheus-2.13.1.linux-amd64 prometheus cd prometheus nohup ./prometheus &啟動(dòng)完成后,用瀏覽器打開http://192.168.249.131:9090進(jìn)行訪問,效果如下:
grafana
使用如下shell命令進(jìn)行安裝并啟動(dòng)
tar grafana-6.4.3.linux-amd64.tar.gz cd grafana-6.4.3 nohup ./grafana-server &啟動(dòng)完成后,用瀏覽器打開http://192.168.249.131:3000進(jìn)行訪問,默認(rèn)賬號(hào)密碼為admin/admin,初次登陸需要修改密碼,修改密碼并登陸效果如下:
node_exporter
使用如下shell命令進(jìn)行安裝并啟動(dòng)
tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz mv node_exporter-0.18.1.linux-amd64 node_exporter nohup ./node_exporter &node exporter默認(rèn)使用9100端口,可以使用--web.listen-address=":9200"指定端口號(hào)。
啟動(dòng)完成后,用瀏覽器打開http://192.168.249.129:9100/進(jìn)行訪問,顯示效果如下:
配置
prometheus
進(jìn)入prometheus安裝目錄,修改prometheus.yml文件,增加監(jiān)聽job server-192.168.249.129,完整配置如下:
# my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093rule_files:# - "first_rules.yml"# - "second_rules.yml"scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: '192.168.249.129'static_configs:- targets: ['192.168.249.129:9100']配置完成后重啟prometheus,查看監(jiān)聽狀態(tài)。
grafana
- 配置prometheus數(shù)據(jù)源
- 去官網(wǎng)尋找對(duì)應(yīng)的表盤,我們選擇node exporter監(jiān)控看板
- 在grafana中在導(dǎo)入表盤
- 查看監(jiān)控效果
至此基于Prometheus的監(jiān)控環(huán)境搭建完成,你也來動(dòng)手試一下吧。
總結(jié)
以上是生活随笔為你收集整理的普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 究极日月回忆技能在哪
- 下一篇: oracle数据库的医院信息系统数据库升