介绍
Grafana既可允许用户查询、可视化、提醒和理解其指标,无论它们存储在哪里,又可以创建,探索,并与团队分享美丽的仪表板,并培养数据驱动的文化。grafana 已经被各大企业广泛应用,可以说时下最流行的监控面板解决方案了。
本文基于 grafana 强大的能力,用其监控节点重要信息,贴在此处以便于有需要的读者学。
实施步骤
前提条件
搭建一套 k8s 集群, 可参考笔者博文 k8s笔记8–快速部署k8s集群 v1.19.4–calico网络
搭建 prometheus
搭建 grafana
节点安装 node_exporter
笔者用自己笔记本测试,直接使用 Lens 安装了prometheus、node_exporter 并对其进行持久化存储,安装 grafana 可参考笔者博文 k8s笔记12–grafana的配置和常见使用
配置方法
将面板 json 信息导入到 grafana 中,然后再按需相关变量,本文中设涉及的变量如下:
面板文件链接: https://pan.baidu.com/s/1UbYLrzU9gzq4Xp8QT5-QHA 密码: 4l4a (具体路径 share/grafana/node-info.json)
在 https://grafana.com/grafana/dashboards/?search 搜索 node exporter
https://grafana.com/grafana/dashboards/1860
新建如下5个变量, 主要信息如下所示,具体配置可参考对应的截图
1.1 Datasource
1.2 node
label_values(node_exporter_build_info,instance)
1.3 maxmount
query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"}) by (mountpoint))))
/.*\"(.*)\".*/
1.4 nodename
label_values(node_exporter_build_info{instance=~"$node"},kubernetes_node)
1.5 interval
1m,10m,30m,1h,6h,12h,1d,7d,14d,30d
1.1 Datasource
1.2 node
1.3 maxmount
1.4 nodename
1.5 interval
面板效果
最终节点监控面板效果如下:
注意事项
- 面板导入后 若无发看到数据,可以通过编辑图标->选择数据源->刷新 来获取数据。
- 本文直接用 Lens 安装 node_exporter, 实际生产上可以在每个节点初始化的时候安装 node_exporter, 并将节点信息注册到 consul,使 prometheus 自动发现节点并采集metrics 。