在这里插入图片描述

1、安装Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比
如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker架构如图下图所示:
在这里插入图片描述

Docker最直接便捷的安装方式就是使用官方安装脚本自动安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

检验:
在这里插入图片描述

使用国内Docker镜像仓库,配置Docker镜像加速:

vim /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
} 

重启Docker:

service docker restart 

检验是否成功:

docker info

在这里插入图片描述

2、Docker安装prometheus以及grafana:
Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。
作为新一代的监控框架,Prometheus 具有以下特点:
强大的多维度数据模型:
时间序列数据通过 metric 名和键值对来区分。
所有的 metrics 都可以设置任意的多维标签。
数据模型更随意,不需要刻意设置为以点分隔的字符串。
可以对数据模型进行聚合,切割和切片操作。
支持双精度浮点类型,标签可以设为全 unicode。
灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics
进行乘法、加法、连接、取分数位等操作。
易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工
作,不依赖于分布式存储。
高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheus server 可以处理
数百万的 metrics。
使用 pull 模式采集时间序列数据,这样不仅有利于本机测试而且可以避免
有问题的服务器推送坏的 metrics。
可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server
端。
可以通过服务发现或者静态配置去获取监控的 targets。
有多种可视化图形界面。
易于伸缩。
Prometheus架构:
Prometheus Server: 用于收集和存储时间序列数据。
Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给
Prometheus server。当 Prometheus server 来 pull 时,直接返回实时状态的 metrics。
Push Gateway: 主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在
Prometheus 来 pull 之前就消失了。为此,这次 jobs 可以直接向 Prometheus server 端推送它们的 metrics。这种方式主要用于服务层面的 metrics,对于机器层面的 metrices,需要使用 node exporter。
Exporters: 用于暴露已有的第三方服务的 metrics 给 Prometheus。
Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数
据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,OpsGenie, webhook 等.
在这里插入图片描述

Docker安装prometheus
将prometheus.yml放置在/path/prometheus文件目录下,
文件内容如下:

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Defaul
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is eve
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

Docker命令启动:

docker run -d --name=prometheus --restart=always\
    -p 9090:9090 \
    -v /path/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus

查看运行状态:
在这里插入图片描述

浏览器访问hostip:9090,出现以下界面说明安装成功。
在这里插入图片描述

查看prometheus server自身的监控数据,hostip:9090/metrics
在这里插入图片描述

Docker安装grafana,命令如下:

Docker run -d --name=grafana --restart=always -p 3000:3000 grafana/grafana

查看docker containers列表
在这里插入图片描述

初次使用账号admin,密码admin登录:
在这里插入图片描述

添加prometheus server的数据库data source:

在这里插入图片描述
在这里插入图片描述

输入prometheus地址后保存测试能否检测到:

在这里插入图片描述
在这里插入图片描述

导入prometheus的dashboard:
在这里插入图片描述

返回Home主页,查看prometheus监控数据界面:
在这里插入图片描述

3、prometheus监控openstack云服务平台
Docker安装openstack的监控exporter(相当于数据采集器),
Openstack的api接口信息如下:
在这里插入图片描述

创建admin.novarc文件内容如下:

OS_PROJECT_DOMAIN_NAME=Default
OS_USER_DOMAIN_NAME=Default
OS_PROJECT_NAME=admin
OS_USERNAME=admin
OS_PASSWORD=admin
OS_IDENTITY_API_VERSION=3
OS_AUTH_URL=http://192.168.30.54/identity/v3

Docker命令启动:

docker run -itd \
--name=openstack  -p 9183:9183\
 --env-file=$(pwd)/admin.novarc\
 --restart=unless-stopped moghaddas/prom-openstack-exporter

采集数据端口9183:
在这里插入图片描述

在prometheus server的配置文件中加入target:
在这里插入图片描述

在grafana中导入官方opensatck监控仪表盘,编号是7924:
监控
在这里插入图片描述

选择数据库:
在这里插入图片描述

进入仪表盘:
在这里插入图片描述

4、prometheus监控openstack的宿主机:
Docker安装node-exporter:

docker run -d \
  --net="host" \
  --pid="host" \
  --name node-exporter \
  -v "/:/host:ro,rslave" \
  quay.io/prometheus/node-exporter \
  --path.rootfs /host

查看运行状态:
在这里插入图片描述

查看监控数据:
在这里插入图片描述

在prometheus配置中添加任务job任务,然后在grafana中导入node-exporter仪表盘(编号11207),查看监控仪表盘:
在这里插入图片描述

Logo

鸿蒙生态一站式服务平台。

更多推荐