prometheus的介紹及安裝
文章目錄
Prometheus 是什么?
Prometheus 的優(yōu)點(diǎn)
1. 配置靈活
2. 監(jiān)控更多多樣性
3. 非常高效的存儲
prometheus的架構(gòu)
prometheus的工作流程
prometheus 部署
通過網(wǎng)址訪問
Prometheus 是什么?
Prometheus是一套開源的監(jiān)控&報(bào)警&時間序列數(shù)據(jù)庫的組合,起始是由SoundCloud公司開發(fā)的。隨著發(fā)展,越來越多公司和組織接受采用Prometheus,社區(qū)也十分活躍,他們便將它獨(dú)立成開源項(xiàng)目,并且有公司來運(yùn)作。google SRE的書內(nèi)也曾提到跟他們BorgMon監(jiān)控系統(tǒng)相似的實(shí)現(xiàn)是Prometheus。現(xiàn)在最常見的Kubernetes容器管理系統(tǒng)中,通常會搭配Prometheus進(jìn)行監(jiān)控。
Prometheus 的優(yōu)點(diǎn)
1. 配置靈活
使用過zabbix的同學(xué)應(yīng)該都體驗(yàn)過安裝時候的安裝依賴包的痛苦,而premetheus核心部分只有一個單獨(dú)的二進(jìn)制文件,下載解壓安裝即可,沒有依賴的第三方庫。
2. 監(jiān)控更多多樣性
prometheus支持多種語言的的客戶端,我們通過客戶端方便對核心業(yè)務(wù)進(jìn)行埋點(diǎn),比如下單,添加購物車等流程。
而且prometheus已經(jīng)有非常多的系統(tǒng)集成:比如
應(yīng)用層面的監(jiān)控:nginx,haproxy,mysql ,docker等
系統(tǒng)層面如: SNMP協(xié)議監(jiān)控,主機(jī)監(jiān)控,進(jìn)程監(jiān)控
容器云監(jiān)控: docker,k8s openstack私有云
3. 非常高效的存儲
平均一個采樣數(shù)據(jù)占 ~3.5 bytes左右,320萬的時間序列,每30秒采樣,保持60天,消耗磁盤大概228G。
prometheus的架構(gòu)
對照圖中的每一部分進(jìn)行介紹:
prometheus server
主要負(fù)責(zé)數(shù)據(jù)的采集和存儲,提供PromQL查詢語言支持
Retrieval:采樣模塊,prometheus的服務(wù)器在哪里拉取數(shù)據(jù),檢索拉取到的數(shù)據(jù)分發(fā)給 TSDB進(jìn)行存儲
TSDB:存儲模塊默認(rèn)本地存儲為TSDB
HTTP server : 提供http接口查詢和面板,默認(rèn)端口為9090
short-lived jobs:
存在時間不足以被刪除的短暫或批量業(yè)務(wù),無法通過pull的方式拉取,需要使用push的方式,與pushgeteway結(jié)合使用
Service Discovery:
服務(wù)發(fā)現(xiàn),prometheus支持多種服務(wù)發(fā)現(xiàn)機(jī)制: 文件,DNS,k8s,openstack,等,基于服務(wù)發(fā)現(xiàn)的過程,通過第三方接口,prometheus查詢到需要監(jiān)控的target列表,然后輪詢這些target獲取監(jiān)控?cái)?shù)據(jù)
客戶端SDK
官方提供的客戶端類庫有g(shù)o,java,python,ruby
pushgateway
支持臨時性的job主動推送指標(biāo)的中間網(wǎng)關(guān),prometheus默認(rèn)通過pull方式從exporters拉取,但有些情況我們是不允許promethes與exporters直接進(jìn)行通信的,這時候我們可以使用pushgateway由客戶端主動push數(shù)據(jù)到pushgateway,在由prometheus拉取。很多時候我們需要自定義一些組件來采集
proDash
使用rails開發(fā)的dashboard,用于可視化指標(biāo)數(shù)據(jù)
exporters
支持其他數(shù)據(jù)源的指標(biāo)導(dǎo)入到prometheus,支持?jǐn)?shù)據(jù)庫,硬件,消息中間件,存儲系統(tǒng),http服務(wù)器,jmx等
負(fù)責(zé)收集目標(biāo)對象的性能數(shù)據(jù),并通過http接口供prometheus server獲取
只要符合接口格式,就可以被采集
alertmanager
實(shí)驗(yàn)性組件,用來進(jìn)行報(bào)警
prometheus_cli
命令行工具
prometheus的工作流程
prometheus server 定期從配置好的jobs或者exporters中拉metrics.或者接受來自pushgateway發(fā)過來的metrics,或者從其他的prometheus server中拉取metrics
prometheus server 在本地存儲收集到的metrics,并運(yùn)行已經(jīng)定義好的arlt.rules,記錄新的時間序列或者向alertmanager推送報(bào)警
Alertmanager根據(jù)配置文件,對接受的警報(bào)進(jìn)行處理,發(fā)出告警
在圖形界面中,可視化采集數(shù)據(jù),可以使用別人寫好的grafana模板。
prometheus 部署
-:https://github.com/prometheus/prometheus/releases/
[root@zmedu-17 ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz [root@zmedu-17 ~]# mv prometheus-2.7.2.linux-amd64 /usr/local/prometheus [root@zmedu-17 ~]# cd /usr/local/prometheus/ [root@zmedu-17 prometheus]# pwd [root@zmedu-17 prometheus]# ls console_libraries NOTICE promtool consoles prometheus LICENSE prometheus.yml [root@zmedu-17 prometheus]# ./prometheus --version prometheus, version 2.7.2 (branch: HEAD, revision: 82f98c825a1437c0a24056eb4dc986d9a3fc7fae) build user: root@ab86c672c33a build date: 20190302-14:57:04 go version: go1.11.5 [root@zmedu-17 prometheus]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
后臺啟動普羅米修斯:
[root@zmedu-17 prometheus]# ./prometheus & [1] 66474
1
2
3
通過網(wǎng)址訪問
通過后臺執(zhí)行http://192.168.1.17:9090
HTTP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。