簡體   English   中英

如何在現有的 docker 容器上安裝 Prometheus 節點導出器?

[英]How to install Prometheus node exporter on an already existing docker container?

我有 3 個節點在單個 Docker 容器中運行,我想使用 Prometheus 監控它們。 我已經使用 Prometheus 服務器部署了一個 docker 容器,但是需要在容器中安裝節點導出器才能將指標導出到服務器。 容器是使用 Ubuntu 映像構建的,每個容器中都運行一個 .jar。

  1. 如何在已經運行的容器上安裝節點導出器二進制文件?
  2. 如何確保重啟后自動安裝節點導出器?

Prometheus 節點導出器收集“*NIX 內核公開的硬件和操作系統指標”。 由於給定主機上的所有 Docker 容器共享相同的主機內核,因此在每個容器中運行它沒有意義。 運行一次,根據它收集的統計數據的性質,直接在主機上運行它。 (對設備統計、進程和 NTP 守護進程狀態等事物的探測在容器內無法正常工作。)

如果您只想監控您的應用程序,您需要添加Prometheus Java 庫並讓您的應用程序在/metrics上提供其數據。 您不需要節點導出器,並且此設置沒有任何特定於 Docker 的內容。

作為一般規則,您永遠不要在正在運行的容器中安裝任何東西,因為一旦容器退出並被刪除(這是非常常見的情況),它就會丟失。 “如何在容器中安裝 X”的一般答案是將其添加到您的鏡像的Dockerfile ,重新運行Dockerfile docker build以重建鏡像,停止並刪除現有容器,然后針對新鏡像重新運行docker run .

同樣作為一般規則,不鼓勵在 Docker 容器中運行多個進程:這會增加顯着的復雜性和操作難度。 (使用 shell 腳本有一種快速而骯臟的方法,但您不會注意到一個進程或另一個進程是否失敗;有一種復雜的方法涉及諸如 supervisord 之類的東西,但它可以隱藏進程輸出,您可能不知道嚴重的麻煩。)如果您確實想在 Docker 中運行節點導出器(禁用幾乎所有 Docker 的控件),您通常會在單獨的容器中運行它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM