prometheus node-exporter安裝
安裝有很多中方法
包安裝在linux伺服器
Node Exporter 是一個用於收集 Linux 系統資訊並暴露為 Prometheus 格式的指標的守護程式。要啟動 Node Exporter,可以按照以下步驟操作:
首先,從 Node Exporter 的官方網站下載最新版本的二進位制檔案。你可以從這裡找到最新版本:https://prometheus.io/download/#node_exporter
解壓下載的檔案到一個目錄中,例如 /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://
為了方便管理,你可能需要將 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://