prometheus监控宿主机和容器

说明:

prometheus监控宿主机,使用node_exporter工具来暴露主机和因公程序上的指标;

prometheus监控docker容器,通过Cadvisor

一、部署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,方便辨认

热加载prometheus

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

验证

二、部署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容器监控完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值