1.安装node-export
k8s各node节点使⽤⼆进制或者daemonset⽅式安装node_exporter,⽤于收集各k8s node节点宿主机的监控指标数据,默认监听端⼝为9100
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local cd /usr/local/ ln -sv node_exporter-1.3.1.linux-amd64/ node_exporter vim /usr/lib/systemd/system/node-exporter.service [Unit] Description=Prometheus Node Exporter After=network.target [Service] ExecStart=/usr/local/node_exporter/node_exporter #可以再命令行自定义要运行的采集器 --web.disable-exporter-metrics参数可以禁用goland SDK相关数据 [Install] WantedBy=multi-user.target systemctl daemon-reload && systemctl restart node-exporter systemctl enable node-exporter netstat -tnlp #默认9100
2.访问node exporter web界⾯验证安装
访问地址:节点ip:9100/metrics,正常情况下会显示当前节点信息
node-exporter常⻅指标
node_boot_time:系统⾃启动以后的总结时间 node_cpu:系统CPU使⽤量 node_disk*:磁盘IO node_filesystem*:系统⽂件系统⽤量 node_load1:系统CPU负载 node_memeory*:内存使⽤量 node_network*:⽹络带宽指标 node_time:当前系统时间 go_*: node exporter中go相关指标 process_*: node exporter⾃身进程相关运⾏指标
3.配置prometheus server收集node-exporter指标数据
1.修改prometheus配置文件 vim /usr/local/prometheus/prometheus.yml #在proemtheus job下添加需要抓取的target的,根据实际情况修改 scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090","192.168.100.131:9100","192.168.100.132:9100"] 2.更新配置 curl -X POST http://127.0.0.1:9090/-/reload #启动时需要添加开启热更新参数
4.验证node数据抓取
prometheus图形数据展示
5.自定义node_exporter收集器
node_exporter -h #default: enabled表示默认启用 default: disabled表示默认禁用 通过提供 --collector.<name> 标志来启用收集器 --collector.systemcd 通过提供 --no-collector.<name> 标志来禁用默认启用的收集器 --no-collector.cpu #禁用CPU采集器 仅启用某些特定收集器,请使用 --collector.disable-defaults --collector.<name> --collector.disable-defaults --collector.meminfo --collector.cpu #关闭默认采集项 只开启内存和CPU采集 也可以在prometheus的scrape配置中设定 - job_name: "prometheus" static_configs: - targets: - localhost:9100 params: collect[]: #可以多次使用但是不能和exclude[]同时使用 - cpu - meminfo include和exclude flage 一些收集器可以配置为使用专用标志包含或排除某些模式。 关键字:exclude(排除) include(包含) 注意,这些标志在同时支持两者的收集器上是互斥的。 示例: --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/) 也可以在prometheus的scrape配置中设定 params: exclude[]: - netdev 具体的收集器有支持不同的include和exclude flage,具体参考官方文档:https://github.com/prometheus/node_exporter
如果自定义了采集器,可以在目标节点显示,如下图
5.配置本地采集目录
#数据格式参考官方文档:https://prometheus.io/docs/instrumenting/exposition_formats/
cat <<EOF > /metrics/node_mem.prom #注意文件的后缀名称 #TYPE node_memory_usage gauge node_memory_usage 4311744512 # TYPE memory_total gauge node_memory_total 103481868288 EOF # 可使用参数 --web.telemetry-path="/metrics" #指定本地数据采集的目录 --web.disable-exporter-metrics #指定本地采集数据的文件 node_exporter --collector.textfile.directory=/metrics #直接指定目录
在node_exporter上验证
在prometheus中查询验证
参考文档:
https://github.com/prometheus/node_exporter
https://prometheus.io/docs/instrumenting/exposition_formats/
标签:node,exporter,收集器,--,prometheus,export,collector From: https://www.cnblogs.com/panwenbin-logs/p/18436114