先简单介绍一下cadvisor、prometheus、grafana是什么以及特点

cadvisor是什么?

Cadvisor 是Google用来监测单节点资源信息的监控工具。 Cadvisor 提供了基础查询界面和http接口,方便其他组件如Grafana 、Prometheus等进行数据抓取。Cadvisor 可以对Docker主机上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。Cadvisor 使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息。

Google的Kubernetes中也默认地将其作为单节点的资源监控工具,各个节点默认会安装上Cadvisor组件。

Cadvisor 产品特点:

  1. 可以展示主机和容器两个层次的监控数据。
  2. 可以展示历史变化数据。
  3. 谷歌公司的开源产品。
  4. 监控指标齐全。
  5. 方便部署,有官方的docker镜像。
  6. 默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。

由于 Cadvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 Host,这不免会让人质疑它的实用性。但 Cadvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。

我们可以把 Cadvisor  定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

grafana是什么?

Grafana是一个可视化面板(Dashboard)工具,有着非常漂亮的图表和布局等展示功能,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB等组件作为数据源。

Grafana主要特性

  1. 灵活丰富的图形化选项;
  2. 可以混合多种风格;
  3. 支持白天和夜间模式;
  4. 支持多个数据源;

prometheus是什么?

Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,很多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。 它现在是一个独立的开源项目,可以独立于任何公司进行维护。 为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation(云原生基金会),作为继Kubernetes之后的第二个托管项目。

Prometheus的主要特征有:

  1. 多维度数据模型-由指标键值对标识的时间序列数据组成
  2. PromQL,一种灵活的查询语言
  3. 不依赖分布式存储; 单个服务器节点是自治的
  4. 以HTTP方式,通过pull模型拉取时间序列数据
  5. 支持通过中间网关推送时间序列数据
  6. 通过服务发现或者静态配置,来发现目标服务对象
  7. 支持多种多样的图表和界面展示

具体操作步骤:

1,安装dockers

A.先关闭防火墙,安全机制,centos7自带的防火墙也要关掉

iptables -F
setenforce 0
systemctl stop firewalld
B.安装docker所需要的一些yum源及插件

cd /etc/yum.repos.d/

cd
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

C.安装docker-ce,启动docker(这个过程可能会有点慢,耐心等待)

yum -y install docker-ce

systemctl start docker
systemctl enable docker.service

可用docker  version  查版本的方式,检测docker是否安装成功

2.为了日后加载镜像方便,配置加速器,这里采用阿里的(可省)

cat << END > /etc/docker/daemon.json
{
        "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
END

systemctl daemon-reload

systemctl restart docker

3.下载cadvisor组件镜像

在被监控的主机上安装cadvisor

docker run -d \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest

4.访问cadvisor页面

在浏览器上输入http://自己主机ip:8080   就可以看到cadvisor收集到的数据页面了

5.下载及安装Prometheus镜像(需要编写Prometheus配置文件)

docker pull prom/prometheus

编写自己的Prometheus配置文件(内容如下)

vim /tmp/prometheus.yml

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'docker'      ##定义一个叫docker的组
    static_configs:
- targets: ['192.168.200.111:8080']   ##填写一个或多个cadvisor的主机地址用逗号隔开

 docker run -d \
--name=prometheus  -p 9090:9090  \
-v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
 -v /etc/localtime:/etc/localtime \
prom/prometheus

6.访问prometheus页面

在浏览器上输入http://自己主机ip:9090   就可以看到prometheus页面了

根据流程点击

看到docker组状态up为正常

查询项是可以查到数据的

7.下载及安装grafana镜像

docker run -d \
--name=grafana \
 -p 3000:3000 \
grafana/grafana

8.访问grafana的页面

访问http://自己的ip:3000默认账户admin 密码 admin首次登陆需要修改密码

修改密码,(新密码写上面,在确认输入一次)

配置数据源

添加数据(点蓝色)

选择用的数据工具(本文介绍的是用Prometheus,则选择第一个)

进去之后,填写url路径

要看到这个绿色的对勾后,选择保存和测试(save&test)

导入模板

得到如下页面(193 grafana id)

选择对应的数据源,点击导入,就可以看到被监控主机的数据

最后,可以 自主 下载一个nginx的镜像 进行测试

docker run --name=nginx -d -p 80:80 nginx

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐