Prometheus技术分享——如何监控宿主机和容器
这一期主要来跟大家聊一下,使用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
2) 创建新指标,注意指标在以.prom结尾的文件内定义
echo ‘metadata{role=”docker”,data_center=”ShangHai”} 2’ >metadata.prom
3) 启动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技术分享专栏。
Prometheus技术分享——如何监控宿主机和容器的更多相关文章
- docker环境 宿主机和容器之间复制文件
容器往宿主机:docker cp 3234234324234:/database_dump_bak/db_bak.dmp /home/test 宿主机往容器:docker cp wenjian_001 ...
- Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态
背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也 ...
- docker 宿主机与容器直接文件移动命令
1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到 宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...
- Docker拷贝宿主机与容器中的文件
如果我们需要将宿主机文件拷贝到容器内可以使用 docker cp 命令,也可以将文件从容器内拷贝到宿主机 将宿主机文件拷贝到容器内 docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目 ...
- 开发时从宿主机连接容器中的MySQL
从宿主机连接Docker容器中的MySQL 刚接触Docker,电脑安装Docker后,使用docker命令pull了一个MySQL5.6的Docker镜像,之后docker run启动创建容器. 可 ...
- [Docker] 使用docker inspect查看宿主机与容器的共享目录
docker inspect 容器名,可以查看到容器的元信息,在返回的j'son信息里面有个Mounts字段可以看到挂载目录 "Mounts": [ { "Type&qu ...
- Docker-使用数据卷在宿主机和容器间的数据共享
场景一:现在用Docker创建了N个容器,但是这些容器之间需要数据共享,这个时候我们应该怎么办?[参考第四步] 场景二:docker创建了一个容器并进入容器,添加了一些定制功能,此时除了用docker ...
- docker容器 - 宿主机和容器之间复制文件(cp)
实验环境 CentOS 7.5 容器 容器是镜像的运行实例.不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层:同时,容器中的应用进程处于运行状态. 主机和容器之间复制文件 要想实现在主 ...
- Linux环境宿主机进入Docker容器、连接数据库、复制文件
我们默认mysql容器已经正常启动,以下为关键命令.1.docker exec -it mysql bash : 进入已经正常启动的容器bash中,mysql是指实际容器名称.2.mysql -uro ...
- docker容器与宿主机的数据交互
在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间 ...
随机推荐
- LyScriptTools 调试控制类API接口手册
LyScriptTools模块中的DebugControl类主要负责控制x64dbg调试器的行为,例如获取或设置寄存器组,执行单步命令等,此类内的方法也是最常用的. 插件地址:https://gith ...
- 守护进程(Python)
#__author__:Kelvin #date:2020/5/10 11:37 import time from multiprocessing import Process def son1(): ...
- 使用SecureCRT的按钮实现快速查询
背景:有这么个日常运维场景,客户因管理需求,不允许在服务器上部署任何自动化的脚本,需要人工登录到机器上查询ASM磁盘组的使用率情况,有上百套环境. 使用的工具是SecureCRT,如何提升一些效率呢? ...
- 《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第2章)
第 2 章 .NET Core 和 ASP.NET Core 2.1 .NET Core 简介 .NET Core 是一个通用的开发平台,最重要的特点是跨平台,同时也是一个开源平台 .NET Core ...
- MySQL-CDC原理与实践
MySQL CDC (Change Data Capture),中文名为MySQL变化数据捕获,是一种截取MySQL主从复制流中binlog的技术,从而实时捕获数据库中的增.删.改操作.在大数据.实时 ...
- Unicode编码的魅力:跨语言交流的桥梁
引言: Unicode编码是一种用于表示世界上所有字符的标准编码方式.它解决了字符集兼容性和多语言文本处理的难题,成为实现全球化软件的关键技术.本文将深入探讨Unicode编码的优点与缺点,并介绍它在 ...
- 49从零开始用Rust编写nginx,我竟然在同一个端口上绑定了多少IP
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 负载均衡, 静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实 ...
- SATA学习笔记——Transport Layer 概述
一.故事前传 在之前的文章中,我们有提到SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层(Link Layer)以及物理层(Physi ...
- 服务器网卡,10GE设备相关笔记
连接线 铜线 六类线基本可以满足万兆, 万兆网络一般只在短程使用铜线, 或者完全不用铜线 光纤 根据带宽和距离, 分为OM2, OM3, OM4等, OM2一般用于千兆或者短距离万兆, 长距离万兆使用 ...
- ORA-14550错误解决方法
工作中修改临时表,报错: ---------------------------------- 以SYSDBA身份登录,执行以下语句: select a.sid, a.serial#, ...