Prometheus技术分享——如何监控宿主机和容器
创始人
2024-04-23 11:40:04
0

这一期主要来跟大家聊一下,使用node_exporter工具来暴露主机和因公程序上的指标,利用prometheus来监控宿主机;以及通过通过Cadvisor监控docker容器。

一、部署node_exporter监控宿主机

1 下载软件包

wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz

创建node exporter运行目录

mkdir -p /usr/local/node_exporter
tar -xf node_exporter-1.4.0.linux-amd64.tar.gz
cd node_exporter-1.4.0.linux-amd64 && mv ./* /usr/local/node_exporter
#验证
./node_exporter --version
查看node_exporter配置
./node_expoter –help

#默认运行端口

–web.listen-address=”:9100″

暴露指标的路径

–web.telemetry-path=”/metrics”

#注意:通过配置参数,可以决定启用哪些收集器。

#启动node_exporter,可以指定参数进行覆盖

nohup ./node_exporter –web.listen-address=”:9600″

–web.telemetry-path=”/metrics” &

#查看是否启动完成 ps -ef | grep node_exporter

部署配置textfile收集器
说明: textfile收集器允许我们暴露自定义指标,这些自定义指标可能是批处理或cron作业无法抓取的,或者是没有可用的exporter

原理:收集器通过扫描指定目录中的问津,提取所有格式为prometheus指标的字符串,然后暴露他们以便被prometheus sever抓取

1) 创建收集器目录

mkdir /usr/local/node_exporter/textfile_collector

  1. 创建新指标,注意指标在以.prom结尾的文件内定义

echo ‘metadata{role=”docker”,data_center=”ShangHai”} 2’ >metadata.prom

  1. 启动textfile收集器

textfile收集器不需要配置参数,默认就会被加载,我们在启动node_exporter的时候,指定textfile收集器的目录即可

参数:

collector.textfile.directory

启动

nohup ./node_exporter –web.listen-address=”:9600″ –web.telemetry-path=”/metrics” –collector.textfile.directory=”/usr/local/node_exporter/textfile_collector” &

部署配置systemd收集器
说明: systemd收集器记录了systemd管理的服务,通过–collector.systemd.unit-whitelist参数指定需要收集的服务,按需收集

启动:

nohup ./node_exporter –web.listen-address=”:9600″ –web.telemetry-path=”/metrics” –collector.textfile.directory=”/usr/local/node_exporter/textfile_collector” –collector.systemd –collector.systemd.unit-whitelist=”(docker|sshd|rsyslog).service” &

配置prometheus对node_exporter进行指标采集

– job_name: “node_exporter”
static_configs:
– targets: [“192.168.161.118:9600”] #这个端口尽量使用默认端口9100,方便辨认

二、部署Cadvisor监控容器

docker run

-v /:/rootfs:ro

-v /var/run:/var/run/:rw

-v /sys:/sys:ro

-v /dev/disk:/dev/disk:ro

-v /home/docker:/var/lib/docker:ro

-p 8080:8080

–detach=true –name=cadvisor –net=host google/cadvisor

#注意:/home/docker为实际部署的docker数据目录,默认应该为/var/lib/docker

验证:

在这里插入图片描述
查看指标:

http://192.168.161.118:8080/metrics

配置prometheus server抓取CAdvisor

配置prometheus.yml配置文件

job_name: “docker” static_configs:
targets: [“192.168.161.118:8080”]
热重启prometheus

#prometheus server启动开启热更新配置

参数:–web.enable-lifecycle

nohup ./prometheus –web.enable-lifecycle –config.file=prometheus.yml &

#热重启prometheus

curl -X POST http://192.168.161.118:9090/-/reload

查看prometheus 的targets,即可发现,docker容器监控完成,到此本期的分享就结束了,更多关于prometheus的干货分享,可以持续关注乐维社区,或者prometheus技术分享专栏。

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...