prometheus node-exporter安裝

2023-04-20 12:00:18

prometheus node-exporter安裝

安裝有很多中方法

包安裝在linux伺服器

Node Exporter 是一個用於收集 Linux 系統資訊並暴露為 Prometheus 格式的指標的守護行程。要啟動 Node Exporter,可以按照以下步驟操作:

首先,從 Node Exporter 的官方網站下載最新版本的二進位制檔案。你可以從這裡找到最新版本:https://prometheus.io/download/

解壓下載的檔案到一個目錄中,例如 /opt/node-exporter:

tar -xzvf node_exporter-1.2.2.linux-amd64.tar.gz -C /opt/

進入解壓後的目錄:

cd /opt/node_exporter-1.2.2.linux-amd64/

執行以下命令,啟動 Node Exporter:

./node_exporter

預設情況下,Node Exporter 會暴露在 9100 埠上。你可以在瀏覽器中輸入 http://:9100/metrics 存取 Node Exporter 所暴露的指標。

為了方便管理,你可能需要將 Node Exporter 作為一個 systemd 服務執行。這樣,系統啟動後,Node Exporter 會自動啟動。你可以參考以下範例 systemd 服務檔案:

[Unit]
Description=Node Exporter

[Service]
User=prometheus
ExecStart=/opt/node_exporter-1.2.2.linux-amd64/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target

將以上內容儲存為 /etc/systemd/system/node_exporter.service 檔案,並執行以下命令啟動服務:

systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter

這樣 Node Exporter 就會作為一個 systemd 服務在後臺執行,並在系統啟動時自動啟動。

Daemonset安裝

Node Exporter 可以執行在 Kubernetes 中,並且常常使用 DaemonSet 的方式來執行,以確保每個節點都有一個執行的 Node Exporter 容器,可以收集該節點的指標資料。

以下是一個簡單的 Node Exporter DaemonSet YAML 檔案的範例,可以用於在 Kubernetes 中啟動 Node

Exporter:

angelscript
Copy
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-exporter
  namespace: monitoring
  labels:
    app: node-exporter
spec:
  selector:
    matchLabels:
      app: node-exporter
  template:
    metadata:
      labels:
        app: node-exporter
    spec:
      containers:
      - name: node-exporter
        image: prom/node-exporter:v1.2.2
        ports:
        - containerPort: 9100
          name: metrics
        resources:
          limits:
            cpu: 200m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: proc
          mountPath: /host/proc
          readOnly: true
        - name: sys
          mountPath: /host/sys
          readOnly: true
        - name: docker-sock
          mountPath: /var/run/docker.sock
          readOnly: true
      hostNetwork: true
      hostPID: true
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      volumes:
      - name: proc
        hostPath:
          path: /proc
      - name: sys
        hostPath:
          path: /sys
      - name: docker-sock
        hostPath:
          path: /var/run/docker.sock

在這個 YAML 檔案中,我們定義了一個名為 node-exporter 的 DaemonSet,它執行在 Kubernetes 叢集中的每個節點上。它使用了 prom/node-exporter:v1.2.2 映象,並暴露了 9100 埠,以便 Prometheus 可以收集指標資料。該 DaemonSet 還掛載了 /proc、/sys 和 /var/run/docker.sock 等主機目錄,以便 Node Exporter 可以存取相關的系統資訊。

你可以將以上 YAML 檔案儲存為 node-exporter-daemonset.yaml 檔案,並使用 kubectl apply -f node-exporter-daemonset.yaml 命令來建立 Node Exporter DaemonSet。建立完成後,你可以使用 kubectl get pods -n monitoring 命令來檢視 Node Exporter 容器是否已經成功執行在每個節點上。

Docker安裝

docker run -d --name node-exporter -p 9100:9100 prom/node-exporter:v1.2.2

helm安裝

在 Kubernetes 叢集中安裝 Node Exporter,最簡單的方式是使用 Helm 軟體包管理器。Helm 可以自動下載和安裝 Node Exporter,並自動建立與 Kubernetes 叢集中的其他元件整合的資源物件。

以下是在 Kubernetes 叢集中安裝 Node Exporter 的步驟:

首先,你需要安裝 Helm。你可以在這裡找到 Helm 的安裝指南:https://helm.sh/docs/intro/install/

新增 Prometheus 官方 Helm 倉庫:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

更新 Helm 倉庫:

helm repo update

建立一個名為 node-exporter 的名稱空間:

kubectl create namespace node-exporter

安裝 Node Exporter Helm Chart:

helm install node-exporter prometheus-community/kube-prometheus-stack \
  --namespace node-exporter \
  --set nodeExporter.enabled=true \
  --set kubelet.serviceMonitor.enabled=true \
  --set kubelet.serviceMonitor.additionalLabels.release=node-exporter \
  --set kubelet.serviceMonitor.interval="30s" \
  --set kubelet.serviceMonitor.scrapeTimeout="10s" \
  --set kubelet.serviceMonitor.relabellings="release,node-exporter" \
  --set kubelet.serviceMonitor.honorLabels=true

這將會在 node-exporter 名稱空間中安裝 Node Exporter 和其他 Prometheus 元件。Helm 安裝過程會自動建立一些 Kubernetes 資源物件,例如 Deployment、Service 和 ServiceMonitor。這些物件將會自動與 Kubernetes 叢集中的其他元件整合。

安裝完成後,你可以使用以下命令來檢視 Node Exporter 容器是否已經成功執行在每個節點上:

kubectl get pods -n node-exporter

你還可以使用以下命令來檢視 Node Exporter 容器的紀錄檔:

kubectl logs -n node-exporter <node-exporter-pod-name>

如果一切正常,你應該能夠存取 http://:9100/metrics 來檢視 Node Exporter 所暴露的指標資料。