热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Prometheuscadvisor容器监控和nodeexporter节点监控

往期文章Prom
往期文章

Prometheus监控系统
https://blog.csdn.net/qq_39578545/article/details/108754585

Docker之compose介绍
  • 使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。
  • Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)
  • 例如一个web服务再加上后端的数据库服务容器等。

docker-compose将所管理的容器分为三层, 分别是工程(project),服务(service)以及容器(containner)

  • docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名。
  • 一个工程当中,可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
  • 一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题。因此需要借助其他工具实现服务发现及负载均衡,比如consul。
    docker-compose的工程配置文件默认为docker-compose.yml。可以通过环境变量COMPOSE_FILE -f 参数自定义配置文件,其自定义多个有依赖关系的服务及每个人服务运行的容器。
  • 简单来说:就是来管理多个容器的,定义启动顺序的,合理编排,方便管理。

Prometheus监控容器

需要一台docker 宿主机,docker 容器安装prometheus服务

1.下载compose软件

curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2、授予可执行权限

[root@docker1 ~]# chmod +x /usr/local/bin/docker-compose
[root@docker1 ~]# which docker-compose
/usr/local/bin/docker-compose
[root@docker1 ~]# docker compose version
Docker Compose version v2.7.0

3、编辑prometheus的配置文件

[roott@docker1 ~]# mkdir /prom_docker
[roott@docker1 ~]# cd /prom_docker/
[roott@docker1 prom_docker]#
[root@docker1 prom_docke]# vim prometheus.yml
[root@docker1 prom_docker]# cat prometheus.yml
scrape_configs:
- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080[root@docker1 prom_docke]# vim docker-compose.yaml
[root@docker1 prom_docker]# cat docker-compose.yml
version: '3.2'
services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusports:- 9090:9090command:- --config.file=/etc/prometheus/prometheus.ymlvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml:rodepends_on:- cadvisorcadvisor:image: gcr.io/cadvisor/cadvisor:latestcontainer_name: cadvisorports:- 8080:8080volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rodepends_on:- redisredis:image: redis:latestcontainer_name: redisports:- 6379:6379

cadvisor相当于node_exporter


4、下载cadvisor.tar镜像

docker pull gcr.io/cadvisor/cadvisor:latest
由于下载该镜像需访问谷歌,因此国内无法成功下载,有条件可以使用香港的服务器里去下载镜像,或者通过其他途径获取该镜像

https://download.csdn.net/download/qq_39578545/87613018

iptables -F
真正删除规则需要重启机器

cAdvisor(需要监控的主机都要安装)
官方地址:https://github.com/google/cadvisor
CAdvisor是谷歌开发的用于分析运行中容器的资源占用和性能指标的开源工具。CAdvisor是一个运行时的守护进程,负责收集、聚合、处理和输出运行中容器的信息。
docker监控也需要用一个exporter,这个exporter就是cAdvisor,类似zabbix的各种agent

[root@localhost prom_docker]# pwd
/prom_docker
[root@localhost prom_docker]# ls
cadvisor.tar docker-compose.yml prometheus.ymldocker tag 68c29634fe49 gcr.io/cadvisor/cadvisor:latest

5、使用docker compose启动容器

[root@docker1 prom_docker]# docker compose up -d
[+] Running 4/4⠿ Network prom_docker_default Created 0.3s⠿ Container redis Started 1.1s⠿ Container cadvisor Started 2.3s⠿ Container prometheus Started 3.5s
[root@docker1 prom_docker]# docker compose ps
NAME COMMAND SERVICE STATUS PORTS
cadvisor "/usr/bin/cadvisor -…" cadvisor running (starting) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
prometheus "/bin/prometheus --c…" prometheus running 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp
redis "docker-entrypoint.s…" redis running 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp如启动有问题注意检查配置文件的格式问题,查看配置文件中各个端口本机是否已经占用等

6、访问cadvisor和prometheus

8080 端口访问 cadvisor
9090 端口访问 prometheus
http://192.168.48.129:8080
在这里插入图片描述

7、安装grafana ,使用能显示docker容器的模板

[root@docker1 prom_docker]# docker run -d -p 3001:3000 --name sc-grafana-1 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
9621f1afde84: Pull complete
37c977d2b27c: Pull complete
c808de7a697e: Pull complete
86659f76fb09: Pull complete
747aee88ceca: Pull complete
99d875e11915: Pull complete
3fb2327ae1ed: Pull complete
ac9523800f50: Pull complete
e15e29cdce8f: Pull complete
Digest: sha256:980ff2697655a0aa5718e40bbda6ac52299d2f3b1584d0081152e2d0a4742078
Status: Downloaded newer image for grafana/grafana:latest
c4aae27eb48ce7be7add6af0d8073aed15c305de81ec94e788ebdfc529836353http://192.168.48.129:3001/
首次进入时,需要输入用户名和密码,皆为admin1、添加数据源 datasource
2、导入图标模板
https://grafana.com/grafana/dashboards
该网站有许多已经搭建好了的grafana模板,每个模板都有一个id,也可以下载成json文件,

在这里插入图片描述


scrape_configs:- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080- job_name: 'prometheus'static_configs:- targets: ['127.0.0.1:9090']- job_name: 'job1'static_configs:- targets: ['192.168.48.129:9100']- job_name: 'job2'static_configs:- targets: ['192.168.48.129:6379']

Node_exporter

Node-exporter 可以采集机器(物理机、虚拟机、云主机)的监控指标数据,能够采集到的指标包括cpu、内存、磁盘、网络、文件数等信息。

各种各样的exporter下载地址:https://prometheus.io/download/
1、下载安装

curl -O -L https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz# 解压
tar -zxvf node_exporter-1.5.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-1.5.0.linux-amd64/ /usr/local/node_exporter-1.5.0
# 创建软连接
ln -s /usr/local/node_exporter-1.5.0/ /usr/local/node_exporter

2、添加到系统服务

sudo tee /usr/lib/systemd/system/node_exporter.service <[Unit]
Description&#61;Prometheus node_exporter
[Service]
User&#61;nobody
ExecStart&#61;/usr/local/node_exporter/node_exporter --log.level&#61;error
ExecStop&#61;/usr/bin/killall node_exporter
[Install]
WantedBy&#61;default.target
EOF

3、启动

# 启动
systemctl start node_exporter
# 查看服务状态
systemctl status node_exporter访问地址&#xff1a;http://192.168.48.129:9100/metrics&#xff0c;可以看到监控的指标信息

4、配置Prometheus

global:scrape_interval: 5sevaluation_interval: 5sscrape_timeout: 5sscrape_configs:- job_name: &#39;prometheus&#39;static_configs:- targets: [&#39;localhost:9090&#39;]- job_name: &#39;linux-exporter&#39;metrics_path: /metricsstatic_configs:- targets: [&#39;localhost:9100&#39;]

5、grafana DashBoard添加
https://grafana.com/grafana/dashboards/12884-1-node-exporter-for-prometheus-dashboard-cn-v20200628/
https://grafana.com/grafana/dashboards
在这里插入图片描述


推荐阅读
  • 搭建weblogic12.1.3
    适 ... [详细]
  • Django 学习笔记(三)
    在模板文件中,还能嵌套入模板标签,做一些特殊处理,例如流程控制,下面将简单介绍下模板标签,主要介绍if和for ... [详细]
  • 解决linux机器没有ip的方法第一步:确保你的vmwarelinux右下角,网络连接,已经连接第二步:确保网卡的配置文件- ... [详细]
  • 在 Virtmanager 图形界面中使用桥接网络
    在Virt-manager图形界面中使用桥接网络(bridgednetworking)2012-09-0315:40:23标签:virtm ... [详细]
  • 8、创建php-fpm配置文件(php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgiÿ ... [详细]
  • SpringCloud之Bus(消息总线)
    说明:关于SpringCloud系列的文章中的代码都在码云上面地址:https:gitee.comzh_0209_javaspringcloud-ali ... [详细]
  • 安装ha软件一、安装软件最稳定的版本是5.4.0,优先安装稳定版本5.4安装依赖于包base.data,cluster的man包安装失败原因是缺少base.data包安装所有clus ... [详细]
  • 小记hbase数据库java API 常用方法及案例
    HBaseAdmin类:管理hbase数据库的表信息,‘创建表、删除表、列出表选项、使表有效/无效、添加或删除列簇’;  ... [详细]
  • 使用curl命令安装#进入usrlocalcdusrlocal#下载sudocurl-Ohttps:fastdl.mongodb.orgosxmongodb-osx-x86_64- ... [详细]
  • sedi 单引号中嵌套双引号_面试中的shell部分看着就对了
    “进入企业后,大部分情况都是Linux操作系统,那么熟悉命令的用法以外,熟悉使用shell脚本也是让我们有更多时间摸鱼的好办法(ps面试要 ... [详细]
  • Mac配置Android开发环境
    Mac配置Android开发环境1、下载jdk和AndroidStudio下载地址如下:jdk:https:www.oracle.comjavatechnologiesjavase ... [详细]
  • Mybatis一级缓存的锅
    问题背景项目开发中有一个树形数据结构,不像经典组织结构树、菜单级别树,我们这个树形结构是用户后期手动建立起来的关系。因此数据库表结构为两张表:数据记录表、记录关系表,通过业务规则限 ... [详细]
  • CentOS7 安装RabbitMQ
    1安装编译工具yuminstall-ymakegccgcc-c++m4opensslopenssl-develncurses-develunixODBCunixODBC-devel ... [详细]
  • 概况:我要怎样o找到设备o位置?o感应动作?o感应设备o方位?o独特地定义设备o? ... [详细]
  • 默认情况下vim的行号等都是不显示的,本人比较喜欢看有行号的代码,每次进入vim后都要手动输入:setnu,默认设置vim的显示行号还是挺 ... [详细]
author-avatar
阿都欧巴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有