prometheus+node_exporter+grafana监控K8S
1.prometheus部署
包下载地址:https://prometheus.io/download/
将包传至/opt
解压
tar xf prometheus-2.53.3.linux-amd64.tar.gz
移动到 /usr/local/prometheus
mv prometheus-2.53.3.linux-amd64 /usr/local/prometheus
prometheus配置文件,可以根据需求更改配置
/usr/local/prometheus/prometheus.yml
配置systemd,用systemctl来管理prometheus
cat > /usr/lib/systemd/system/prometheus.service <<'EOF'
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
启动prometheus
systemctl start prometheus
systemctl enable prometheus
netstat -lntp | grep 9090
在Status-Targets 下看到prometheus状态为up
代表能正常采集到数据
2.node_exporter部署
在集群中每个需要监控的K8s节点上部署node_exporter
下载node_exporter包
地址:https://prometheus.io/download/

上传包至/opt

解压包
tar xf node_exporter-1.8.2.linux-amd64.tar.gz
移动到 /usr/local/bin
mv node_exporter-1.8.2.linux-amd64 /usr/local/bin
配置systemd,用systemctl来管理node_exporter
cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
启动node_exporter
systemctl start node_exporter
systemctl enable node_exporter
netstat -lntp | grep :9100

3.修改prometheus配置文件
修改prometheus配置文件,在末尾加入被监控的k8s集群信息
vim /usr/local/prometheus/prometheus.yml
- job_name: nodes
metrics_path: "/metrics"
static_configs:
- targets:
- 192.168.xx.x:9100
- 192.168.xx.x:9100
- 192.168.xx.x:9100
labels:
service: kubernetes

重载prometheus服务
systemctl reload prometheus
再次打开prometheus,验证k8s集群数据是否采集到

4.grafana部署
grafana官网:https://grafana.com/grafana/download/11.5.0
安装grafana
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.5.0-1.x86_64.rpm
启动grafana
systemctl start grafana-server
systemctl enable grafana-server
netstat -lntp | grep 3000

用户名/密码:admin/admin

进入主界面

配置数据源

添加新的数据源

选择prometheus

配置prometheus地址

在最下方点保存

添加模版

导入模版
在模版网站,选择模版,复制ID
我用的模版地址:
https://grafana.com/grafana/dashboards/16098-node-exporter-dashboard-20240520-job/

导入ID
最后在面板上查看监控的k8s的信息即可

参考文档: