目录
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://