一修档、一般問題
1. Prometheus是什么?
Prometheus是一款高活躍生態(tài)系統(tǒng)的開源系統(tǒng)監(jiān)控和警告工具包。詳見概覽
2. Prometheus與其他的監(jiān)控系統(tǒng)比較
詳見比較
3. Prometheus有什么依賴?
Prometheus服務(wù)獨(dú)立運(yùn)行薪鹦,沒有其他依賴
4. Prometheus有高可用的保證嗎?
是的惯豆,在多臺(tái)服務(wù)器上運(yùn)行相同的Prometheus服務(wù)池磁,相同的報(bào)警會(huì)由警告管理器刪除
警告管理器當(dāng)前不能保證高可用,但高可用是目標(biāo)
5. 我被告知Prometheus"不能水平擴(kuò)展"
事實(shí)上循帐,有許多方式可以擴(kuò)展Prometheus框仔。 閱讀Robust Percetion的博客關(guān)于Prometheus的擴(kuò)展
6. Prometheus是什么語言寫的?
大多數(shù)Prometheus組件是由Go語言寫的拄养。還有一些是由Java离斩,Python和Ruby寫的
7. Prometheus的特性、存儲(chǔ)格式和APIs有多穩(wěn)定瘪匿?
Prometheus從v1.0.0版本開始就非常穩(wěn)定了跛梗,我們現(xiàn)在有一些版本功能規(guī)劃,詳見路線圖
8. 為什么是使用的是pull而不是push?
基于Http方式的拉模型提供了一下優(yōu)點(diǎn):
- 當(dāng)開發(fā)變化時(shí)棋弥,你可以在筆記本上運(yùn)行你的監(jiān)控
- 如果目標(biāo)實(shí)例掛掉核偿,你可以很容易地知道
- 你可以手動(dòng)指定一個(gè)目標(biāo),并通過瀏覽器檢查該目標(biāo)實(shí)例的監(jiān)控狀況
總體來說顽染,我們相信pull模式比push模式要好一些漾岳,但是當(dāng)考慮一個(gè)監(jiān)控系統(tǒng)時(shí)轰绵,它不是主要的考慮點(diǎn)
Push vs. Pull監(jiān)控在Brian Brazil的博客中被詳細(xì)的描述
如果你必須要用Push模式,我們提供Pushgateway
9. 怎么樣把日志推送到Prometheus系統(tǒng)中尼荆?
簡(jiǎn)單地回答:千萬別這樣做左腔,你可以使用ELK棧去實(shí)現(xiàn)
比較詳細(xì)的回答:Prometheus是一款收集和處理度量指標(biāo)的系統(tǒng),并非事件日志系統(tǒng)捅儒。Raintank的博客有關(guān)日志液样、度量指標(biāo)和圖表在日志和度量指>
標(biāo)之間,進(jìn)行了詳盡地闡述巧还。
如果你想要從應(yīng)用日志中提取Prometheus度量指標(biāo)中鞭莽。 谷歌的mtail可能會(huì)更有幫助
10. 誰寫的Prometheus?
Prometheus項(xiàng)目發(fā)起人是Matt T. Proud和Julius Volz麸祷。 一開始大部分的開發(fā)是由SoundCloud贊助的
現(xiàn)在它由許多公司和個(gè)人維護(hù)和擴(kuò)展
11. 當(dāng)前Prometheus的許可證是用的哪個(gè)澎怒?
Apache 2.0
12. Prometheus單詞的復(fù)數(shù)是什么?
Prometheis
13. 我能夠動(dòng)態(tài)地加載Prometheus的配置嗎摇锋?
是的丹拯,通過發(fā)送SIGHUP信號(hào)量給Prometheus進(jìn)行,將會(huì)重載配置文件荸恕。不同的組件會(huì)優(yōu)雅地處理失敗的更改
14. 我能發(fā)送告警嗎?
是的死相,通過警告管理器
當(dāng)前融求,下面列表的外部系統(tǒng)都是被支持的
- General Webhooks
- PagerDuty(http://www.pagerduty.com/)
- HipChat(https://www.hipchat.com/)
- Slack(https://slack.com/)
- Pushover(https://pushover.net/)
- Flowdock(https://www.flowdock.com/)
15. 我能創(chuàng)建Dashboard嗎?
是的算撮,但是在生產(chǎn)使用中生宛,我們推薦用Grafana。PromDash和[Console templates](https://prom
etheus.io/docs/visualization/consoles/)也可以
16. 我能改變timezone和UTC嗎肮柜?
不行陷舅。為了避免任何時(shí)區(qū)的困惑和混亂,我們用了UTC這個(gè)通用單位
二审洞、儀表
1. 哪些語言有工具庫莱睁?
這里有很多客戶端庫,用Prometheus的度量指標(biāo)度量你的服務(wù)芒澜。詳見client庫
如果你對(duì)功能工具庫非常感興趣仰剿,詳見exposition formats
2. 我能監(jiān)控機(jī)器嗎?
是的痴晦。Node Exporter暴露了很多機(jī)器度量指標(biāo)南吮,包括CPU使用率、內(nèi)存使用率和磁盤利用率誊酌、文件系統(tǒng)的余量和網(wǎng)絡(luò)帶寬等數(shù)據(jù)部凑。
3. 我能監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)嗎露乏?
是的。SNMP Exporter允許監(jiān)控網(wǎng)絡(luò)設(shè)備涂邀。
4. 我能監(jiān)控批量任務(wù)嗎施无?
是的,通過Pushgateway. 詳見最佳實(shí)踐
5. Prometheus開箱即用的監(jiān)控應(yīng)用程序是什么必孤?
6. 我能通過JMX監(jiān)控JVM應(yīng)用程序嗎猾骡?
是的。不能直接使用Java客戶端進(jìn)行測(cè)試的應(yīng)用程序敷搪,你可以將JMX Exporter單獨(dú)使用或者Java代理使用
7. 工具對(duì)性能的影響是什么兴想?
客戶端和語言的性能可能不同。對(duì)于Java赡勘,基準(zhǔn)表明使用Java客戶端遞增計(jì)數(shù)器需要12~17ns嫂便,具體依賴于競(jìng)爭(zhēng)。最關(guān)鍵的延遲關(guān)鍵代碼之外的所有代碼都是可以忽略的闸与。
三毙替、故障排除
1. 我的Prometheus 1.x服務(wù)器需要很長(zhǎng)時(shí)間才能啟動(dòng)并使用有關(guān)崩潰恢復(fù)的大量信息來保存日志。践樱。
你的服務(wù)可能遭到了不干凈的關(guān)閉厂画。Prometheus必須在SIGTERM后徹底關(guān)閉,特別地對(duì)于一些重量級(jí)服務(wù)可能需要比較長(zhǎng)的時(shí)間去拷邢。如果服務(wù)器崩潰或者強(qiáng)制殺死(如:在等待Prometheus關(guān)閉時(shí)袱院,內(nèi)核的OOM殺死你的Promethe
us服務(wù)),必須執(zhí)行崩潰恢復(fù)瞭稼,這在正常情況下需要不到一分鐘忽洛。詳見崩潰恢復(fù)
2. 我的Prometheus 1.x服務(wù)器內(nèi)存不足。
請(qǐng)參閱有關(guān)內(nèi)存使用情況的部分环肘,以配置Prometheus可用的內(nèi)存量欲虚。
3. 我的Prometheus 1.x服務(wù)器報(bào)告處于“匆忙模式”或“存儲(chǔ)需要限制”。
您的存儲(chǔ)空間很重悔雹。閱讀有關(guān)配置本地存儲(chǔ)的部分复哆,了解如何調(diào)整設(shè)置以獲得更好的性能。
四荠商、實(shí)現(xiàn)
1. 為什么所有樣品值都是float64數(shù)據(jù)類型寂恬?我想要integer數(shù)據(jù)類型。
我們限制了float64以簡(jiǎn)化設(shè)計(jì),IEEE 754雙精度二進(jìn)制浮點(diǎn)格式支持高達(dá)253的值的整數(shù)精度莱没。如果您需要高于253但低于263的整數(shù)精度初肉,支持本地64位整數(shù)將有幫助。原則上饰躲,支持不同的樣本值類型 (包括某種大整數(shù)
牙咏,支持甚至超過64位)可以實(shí)現(xiàn)臼隔,但它現(xiàn)在不是一個(gè)優(yōu)先級(jí)。 注意妄壶,一個(gè)計(jì)數(shù)器摔握,即使每秒增加100萬次,只有在超過285年后才會(huì)出現(xiàn)精度問題丁寄。
2. 為什么Prometheus服務(wù)器組件不支持TLS或身份驗(yàn)證氨淌? 我可以添加這些嗎?
注意:Prometheus團(tuán)隊(duì)在2018年8月11日的開發(fā)峰會(huì)期間已經(jīng)改變了對(duì)此的立場(chǎng)伊磺,現(xiàn)在正在項(xiàng)目的路線圖中支持TLS和服務(wù)端點(diǎn)的身份驗(yàn)證盛正。 代碼更改后,將更新此文檔屑埋。
雖然TLS和身份驗(yàn)證是經(jīng)常被請(qǐng)求的功能豪筝,但我們故意沒有在Prometheus的任何服務(wù)器端組件中實(shí)現(xiàn)它們。 我們已經(jīng)決定專注于構(gòu)建最佳監(jiān)控系統(tǒng)摘能,而不是在每個(gè)服務(wù)器組件中支持完全通用的TLS和身份驗(yàn)證解決方案续崖,因此有兩個(gè)不同的選項(xiàng)和參數(shù)(僅TLS的10多個(gè)選項(xiàng))。
如果您需要TLS或身份驗(yàn)證团搞,我們建議將反向代理放在Prometheus前面严望。 參見例如使用Nginx添加對(duì)Prometheus的基本認(rèn)證。
這僅適用于入站連接莺丑。 Prometheus確實(shí)支持刪除TLS-和auth啟用的目標(biāo)著蟹,以及其他創(chuàng)建出站連接的Prometheus組件具有類似的支持。
五梢莽、鏈接
Prometheus官網(wǎng)地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus