prometheus学习笔记之node-export

1.安装node-export

k8snode节点使⽤⼆进制或者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中查询验证,需要注意的是如果prometheus自定义了node_exporter收集器,并且是collect,那么prometheus可能不会去收集

参考文档:

https://github.com/prometheus/node_exporter

https://prometheus.io/docs/instrumenting/exposition_formats/

posted @ 2024-09-27 16:56  百衲本  阅读(128)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码