Prometheus學習系列(四)之FAQ

1、通常問題

1. Prometheus是什麼?

Prometheus是一款高活躍生態系統的開源系統監控和警告工具包。詳見概覽node

2. Prometheus與其餘的監控系統比較

詳見比較git

3. Prometheus有什麼依賴?

Prometheus服務獨立運行,沒有其餘依賴github

4. Prometheus有高可用的保證嗎?

是的,在多臺服務器上運行相同的Prometheus服務,相同的報警會由警告管理器刪除 警告管理器當前不能保證高可用,但高可用是目標瀏覽器

5. 我被告知Prometheus"不能水平擴展"

事實上,有許多方式能夠擴展Prometheus。 閱讀Robust Percetion的博客關於Prometheus的擴展服務器

6. Prometheus是什麼語言寫的?

大多數Prometheus組件是由Go語言寫的。還有一些是由Java,Python和Ruby寫的網絡

7. Prometheus的特性、存儲格式和APIs有多穩定?

Prometheus從v1.0.0版本開始就很是穩定了,咱們如今有一些版本功能規劃,詳見路線圖工具

8. 爲何是使用的是pull而不是push?

基於Http方式的拉模型提供了一下優勢:性能

  • 當開發變化時,你能夠在筆記本上運行你的監控
  • 若是目標實例掛掉,你能夠很容易地知道
  • 你能夠手動指定一個目標,並經過瀏覽器檢查該目標實例的監控情況

整體來講,咱們相信pull模式比push模式要好一些,可是當考慮一個監控系統時,它不是主要的考慮點 Push vs. Pull監控在Brian Brazil的博客中被詳細的描述測試

若是你必需要用Push模式,咱們提供Pushgatewaygoogle

9. 怎麼樣把日誌推送到Prometheus系統中?

簡單地回答:千萬別這樣作,你可使用ELK棧去實現 比較詳細的回答:Prometheus是一款收集和處理度量指標的系統,並不是事件日誌系統。Raintank的博客有關日誌、度量指標和圖表在日誌和度量指> 標之間,進行了詳盡地闡述。

若是你想要從應用日誌中提取Prometheus度量指標中。 谷歌的mtail可能會更有幫助

10. 誰寫的Prometheus?

Prometheus項目發起人是Matt T. Proud和Julius Volz。 一開始大部分的開發是由SoundCloud贊助的 如今它由許多公司和我的維護和擴展

11. 當前Prometheus的許可證是用的哪一個?

Apache 2.0

12. Prometheus單詞的複數是什麼?

Prometheis

13. 我可以動態地加載Prometheus的配置嗎?

是的,經過發送SIGHUP信號量給Prometheus進行,將會重載配置文件。不一樣的組件會優雅地處理失敗的更改

14. 我能發送告警嗎?

是的,經過警告管理器 當前,下面列表的外部系統都是被支持的

15. 我能建立Dashboard嗎?

是的,可是在生產使用中,咱們推薦用GrafanaPromDash和[Console templates](https://prom etheus.io/docs/visualization/consoles/)也能夠

16. 我能改變timezone和UTC嗎?

不行。爲了不任什麼時候區的困惑和混亂,咱們用了UTC這個通用單位

2、儀表

1. 哪些語言有工具庫?

這裏有不少客戶端庫,用Prometheus的度量指標度量你的服務。詳見client庫 若是你對功能工具庫很是感興趣,詳見exposition formats

2. 我能監控機器嗎?

是的。Node Exporter暴露了不少機器度量指標,包括CPU使用率、內存使用率和磁盤利用率、文件系統的餘量和網絡帶寬等數據。

3. 我能監控網絡數據嗎?

是的。SNMP Exporter容許監控網絡設備。

4. 我能監控批量任務嗎?

是的,經過Pushgateway. 詳見最佳實踐

5. Prometheus開箱即用的監控應用程序是什麼?

詳見the list of exporters and integrations.

6. 我能經過JMX監控JVM應用程序嗎?

是的。不能直接使用Java客戶端進行測試的應用程序,你能夠將JMX Exporter單獨使用或者Java代理使用

7. 工具對性能的影響是什麼?

客戶端和語言的性能可能不一樣。對於Java,基準代表使用Java客戶端遞增計數器須要12~17ns,具體依賴於競爭。最關鍵的延遲關鍵代碼以外的全部代碼都是能夠忽略的。

3、故障排除

1. 個人Prometheus 1.x服務器須要很長時間才能啓動並使用有關崩潰恢復的大量信息來保存日誌。。

你的服務可能遭到了不乾淨的關閉。Prometheus必須在SIGTERM後完全關閉,特別地對於一些重量級服務可能須要比較長的時間去。若是服務器崩潰或者強制殺死(如:在等待Prometheus關閉時,內核的OOM殺死你的Promethe us服務),必須執行崩潰恢復,這在正常狀況下須要不到一分鐘。詳見崩潰恢復

2. 個人Prometheus 1.x服務器內存不足。

請參閱有關內存使用狀況的部分,以配置Prometheus可用的內存量。

3. 個人Prometheus 1.x服務器報告處於「匆忙模式」或「存儲須要限制」。

您的存儲空間很重。閱讀有關配置本地存儲的部分,瞭解如何調整設置以得到更好的性能。

4、實現

1. 爲何全部樣品值都是float64數據類型?我想要integer數據類型。

咱們限制了float64以簡化設計,IEEE 754雙精度二進制浮點格式支持高達253的值的整數精度。若是您須要高於253但低於263的整數精度,支持本地64位整數將有幫助。原則上,支持不一樣的樣本值類型 (包括某種大整數 ,支持甚至超過64位)能夠實現,但它如今不是一個優先級。 注意,一個計數器,即便每秒增長100萬次,只有在超過285年後纔會出現精度問題。

2. 爲何Prometheus服務器組件不支持TLS或身份驗證? 我能夠添加這些嗎?

注意:Prometheus團隊在2018年8月11日的開發峯會期間已經改變了對此的立場,如今正在項目的路線圖中支持TLS和服務端點的身份驗證。 代碼更改後,將更新此文檔。

雖然TLS和身份驗證是常常被請求的功能,但咱們故意沒有在Prometheus的任何服務器端組件中實現它們。 咱們已經決定專一於構建最佳監控系統,而不是在每一個服務器組件中支持徹底通用的TLS和身份驗證解決方案,所以有兩個不一樣的選項和參數(僅TLS的10多個選項)。

若是您須要TLS或身份驗證,咱們建議將反向代理放在Prometheus前面。 參見例如使用Nginx添加對Prometheus的基本認證。

這僅適用於入站鏈接。 Prometheus確實支持刪除TLS-和auth啓用的目標,以及其餘建立出站鏈接的Prometheus組件具備相似的支持。

5、連接

Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…

相關文章
相關標籤/搜索