(1)英特尔工业边缘洞见平台(EII)安装指南

发布于:2022-12-23 ⋅ 阅读:(796) ⋅ 点赞:(0)

1. 简介

EII全称Open Edge Insights for Industrial,开源工业边缘洞见平台。该平台由Intel公司研发并开源,开源仓库位于Github(https://github.com/open-edge-insights)。EII通常部署在工业边缘节点,用于视频数据/时序数据的采集,分析和可视化。EII采用Docker容器化的部署方式,具有很好的灵活性和可扩展性。EII采用源码发布的方式,用户可以下载EII源代码进行二次开发。

EII的架构图如下,主要包含了机器视觉和时序数据相关的两类功能模块,各个模块可以通过EII消息总线(EII Message Bus)进行通讯。

在这里插入图片描述

EII目前有2种下载安装方式。1) 通过Github下载EII源码,2) 通过EII官方网站下载EII源码包。

  • EII官方网站:https://intel.com/edge-insights-industrial
  • EII官方Github仓库:https://github.com/open-edge-insights
  • EII官方Docker Hub仓库:https://hub.docker.com/u/openedgeinsights
  • EII开发手册:https://open-edge-insights.github.io/

对于开发者而言,笔者更推荐使用Github下载EII源码进行安装,这样在二次开发过程中,方便用Git工具管理源码。所以本文将介绍在Ubuntu 20.04系统上通过Github安装EII 3.0的方法。

2. 预先步骤

  • 在设备上安装Ubuntu 20.04 LTS。

  • 将设备连接互联网。本文假设用户是在国内网络(PRC网络)环境下进行安装,国内网络访问国外资源时,经常会遇到访问失败的问题,导致安装EII失败。所以本文会介绍一些"换源"的操作来帮助国内用户解决安装失败的问题。若用户有网络代理(proxy)等服务能够直接访问国外资源,则本文很多"换源"操作可以跳过。

  • (For PRC网络) 将apt源设置为国内源(如阿里源),可加速apt依赖包的下载。

    • 设置方法:点击Ubuntu桌面左下角"九个点" -> 打开"Software & Updates"应用程序 -> 在"Ubuntu Software"标签栏下的"Download from"选项,选择"Other…" : “China” : “mirrors.aliyun.com” -> 点击"Choose Server" -> 点击"Close" -> 在弹出的对话框中点击"Close" -> 等待"Cache Refresh"结束(若Cache Refresh失败可忽略)。

    • 打开命令行,执行如下命令更新apt源。

    $ sudo apt update
    
  • (For PRC网络) 将pip源设置为国内源(如清华源),可加速python依赖包的下载。

    • 新建"pip.conf"文件
    $ mkdir -p ~/.pip
    $ gedit ~/.pip/pip.conf
    
    • 在"pip.conf"文件中添加如下内容:
    [global]
        index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
    [install]
        trusted-host=pypi.tuna.tsinghua.edu.cn
    
    • 更新pip工具。
    $ sudo apt install python3-pip
    $ pip3 install --upgrade pip
    

3. 开始安装

3.1 安装依赖工具

  • 安装预备工具。
$ sudo apt update && sudo apt install -y curl git
  • 配置git参数。
# Set email and name
$ git config --global user.email [Your Email]
$ git config --global user.name [Your Name]

# Disable CA verify
$ git config --global http.sslverify false

# Remember username and password
$ git config --global credential.helper store
  • 配置python软链接(后续使用的"repo"工具需要这项配置)。
$ sudo ln -s /usr/bin/python3 /usr/bin/python
  • 安装repo工具。
$ curl https://storage.googleapis.com/git-repo-downloads/repo > repo
$ sudo mv repo /bin/repo
$ sudo chmod a+x /bin/repo
  • 执行如下命令,若成功打印repo的版本信息,则说明repo安装成功。
$ repo --version
  • (For PRC网络) 设置repo url,国内网络可能无法访问repo某些位于国外的源,可通过如下命令,将repo url修改为国内的源。
$ export REPO_URL="https://gerrit-googlesource.lug.ustc.edu.cn/git-repo"

3.2 拉取EII源码

  • 新建一个工作目录(例如"~/eii"),并进入。
$ mkdir -p ~/eii && cd ~/eii
  • 拉取EII仓库清单(以v3.0版本为例)。清单文件保存在目录".repo/manifests"下。
$ repo init -u "https://github.com/open-edge-insights/eii-manifests.git" -b refs/tags/v3.0

若需要拉取EII其他版本,修改"-b"参考后的tag标签即可。

  • (For PRC网络) 修改".repo/manifests/default.xml"文件,将Github地址修改为Gitee。repo工具在国内网络环境下拉取Github代码时会超时,故将代码库从Github修改为Gitee (EII在Gitee有一个与Github保持同步的镜像仓库)。

    用编辑器(如gedit)打开".repo/manifests/default.xml"文件

    $ gedit .repo/manifests/default.xml
    

    参考如下内容进行修改:

    # 将"default.xml"的第3,4行
    <remote name="origin" fetch="https://github.com/open-edge-insights" />
    <remote name="github-origin" fetch="https://github.com/intel" />
    
    # 修改为如下内容
    <remote name="origin" fetch="https://gitee.com/open-edge-insights" />
    <remote name="github-origin" fetch="https://gitee.com/mirrors_intel" />
    
  • 拉取EII源码。

$ repo sync
  • 拉取成功后,EII源码即保存在目录"~/eii/IEdgeInsights中。

3.3 安装EII运行环境

  • 安装docker和docker-compose

通过如下命令,安装和设置docker,docker-compose

# 创建一个目录用来存放安装包,并进入
$ mkdir -p ~/eii/installer && cd ~/eii/installer

# 下载安装包 (从docker官网下载安装包速度较慢,故选择从gitee上下载)
$ wget https://gitee.com/open-edge-insights/eii-install-guide/attach_files/873577/download/docker-ce_20.10.9_3-0_ubuntu-focal_amd64.deb
$ wget https://gitee.com/open-edge-insights/eii-install-guide/attach_files/873579/download/docker-ce-cli_20.10.9_3-0_ubuntu-focal_amd64.deb
$ wget https://gitee.com/open-edge-insights/eii-install-guide/attach_files/873578/download/containerd.io_1.4.11-1_amd64.deb
$ wget https://gitee.com/open-edge-insights/eii-install-guide/attach_files/873576/download/docker-compose-Linux-x86_64-v1.29.0

# 安装docker
$ sudo dpkg -i docker-ce_*.deb docker-ce-cli_*.deb containerd.io_*.deb

# 安装docker-compose
$ sudo cp docker-compose-Linux-x86_64-v1.29.0 /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# 将当前用户添加到"docker"用户组,使得当前用户不加"sudo"也可以使用docker命令
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker
  • 安装EII依赖环境,安装脚本位于"IEdgeInsights/build/pre_requisites.sh"。

    • (For PRC网络) 如果是国内网络环境下安装,需要对"pre_requisites.sh"脚本做一些修改:该脚本会通过尝试连接google官方来测试网络是否畅通,这个步骤在国内网络环境会失败,导致脚本退出,估将google修改为baidu。

    用编辑器(如gedit)打开"IEdgeInsights/build/pre_requisites.sh"文件

    $ cd ~/eii/IEdgeInsights/build
    $ gedit pre_requisites.sh
    

    参考如下内容进行修改:

    # 将"pre_requisites.sh"的第161行
    wget http://www.google.com > /dev/null 2>&1
    # 修改为如下内容
    wget http://www.baidu.com > /dev/null 2>&1
    
    # 将"pre_requisites.sh"的第196行
    pip3 install -r requirements.txt
    # 修改为如下内容
    pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
    
    • 执行脚本,安装EII所需依赖环境。
    $ sudo ./pre_requisites.sh
    
  • 修改EII配置文件"IEdgeInsights/build/.env".

$ gedit .env

参考如下内容进行修改:

# 第36行, 开发阶段建议将dev_mode设置为true
DEV_MODE=true

# 第106-110行, 设置相关服务模块的用户名和密码 (具体的用户名和密码用户可自行调整)
# Service credentials
# These are required to be updated in both DEV mode & PROD mode
ETCDROOT_PASSWORD=admin123
INFLUXDB_USERNAME=admin
INFLUXDB_PASSWORD=admin123
MINIO_ACCESS_KEY=admin@123
MINIO_SECRET_KEY=admin@123
  • 重启机器使得docker相关的配置生效。
$ sudo reboot

3.4 运行PCBA缺陷检测案例

  • 查看“video-streaming.yml”文件,检查PCBA案例中包含哪些服务模块。
$ cd ~/eii/IEdgeInsights/build
$ cat usecases/video-streaming.yml
  • 执行编译脚本。该脚本会在当前目录生成一系列配置文件,如docker-compose.yml等(docker-compose.yml用于后续启动PCBA案例,其中包含了该案例包含的服务模块信息)。
$ sudo -E python3 builder.py -f usecases/video-streaming.yml
  • 通过如下命令,从docker hub仓库拉取PCBA案例所需的docker镜像。(用户也可以通过EII提供命令自行build所需的docker镜像,不过耗时较久,故这里选择从docker hub仓库直接下载)
#/bin/bash

pre_name=openedgeinsights
tag=3.0
image_name=(
ia_configmgr_agent
ia_etcd_ui
ia_video_ingestion
ia_video_analytics
ia_visualizer
ia_web_visualizer
ia_grafana
)

for i_name in ${image_name[@]}; do
    docker pull $pre_name/$i_name:$tag
done

创建一个脚本"pull_vision_image.sh",拷贝如上命令行,然后修改权限并执行,拉取EII docker镜像。

$ mkdir -p ~/eii/script && cd ~/eii/script
$ gedit pull_vision_image.sh

# 拷贝上述命令行,保存并退出

$ chmod a+x pull_vision_image.sh
$ ./pull_vision_image.sh
  • 打开图形界面访问权限
$ xhost +
  • 启动EII服务。
$ cd ~/eii/IEdgeInsights/build
$ ./eii_start.sh
  • 启动成功后,可通过"docker ps"命令查看容器运行情况。
$ docker ps
  • 若启动成功,PCBA检测案例运行窗口会自动弹出,如图所示。
    在这里插入图片描述

  • 通过如下命令,可关闭EII服务。

$ docker-compose down

3.5 运行温度监控案例

  • 查看“time-series.yml”文件,检查温度监控案例中包含哪些服务模块。
$ cd ~/eii/IEdgeInsights/build
$ cat usecases/time-series.yml
  • 执行编译脚本。该脚本会在当前目录生成一系列配置文件,如docker-compose.yml等(docker-compose.yml用于后续启动温度监控案例,其中包含了该案例需要的服务模块信息)。
$ sudo -E python3 builder.py -f usecases/time-series.yml
  • 通过如下命令,从docker hub仓库拉取PCBA案例所需的docker镜像。
#/bin/bash

pre_name=openedgeinsights
tag=3.0
image_name=(
ia_configmgr_agent
ia_etcd_ui
ia_telegraf
ia_influxdbconnector
ia_kapacitor
ia_grafana
ia_opcua_export
ia_rest_export
)

for i_name in ${image_name[@]}; do
    docker pull $pre_name/$i_name:$tag
done

创建一个脚本"pull_ts_image.sh",拷贝如上命令行,然后修改权限并执行。

$ mkdir -p ~/eii/script && cd ~/eii/script
$ gedit pull_ts_image.sh

# 拷贝上述命令行,保存并退出

$ chmod a+x pull_ts_image.sh
$ ./pull_ts_image.sh
  • 修改ia_mqtt_publisher的Dockerfile文件,方便在国内网络环境下编译。
$ gedit ~/eii/IEdgeInsights/tools/mqtt/publisher/Dockerfile

参考如下信息进行修改:

# 将"Dockerfile"的第30行
RUN pip3 install -r requirements.txt
# 修改为如下内容
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • 编译ia_mqtt_publisher镜像。(由于docker hub仓库不包含ia_mqtt_publisher的docker镜像,故此处需要手动编译)
$ cd ~/eii/IEdgeInsights/build
$ docker-compose -f docker-compose-build.yml build ia_mqtt_publisher
  • 启动EII服务。
$ ./eii_start.sh
  • 启动成功后,可通过"docker ps"命令查看容器运行情况。
$ docker ps
  • 若启动成功,打开浏览器,输入网址:localhost:3000,进入Grafana界面。(默认登录账号:admin, 密码:admin)
    在这里插入图片描述

  • 进入Grafana主界面后,打开"EII Video and Time Series Dashboard"。
    在这里插入图片描述

  • 若看到如下温度信息,即说明启动成功。
    在这里插入图片描述

  • 关闭EII服务。

$ docker-compose down

后记
以上就是EII 3.0版本的完整安装过程,大家参照以上安装步骤若遇到问题,可留言。
笔者会在后续文章中,详细分析EII的架构设计和各个模块的运行原理,敬请关注。


网站公告

今日签到

点亮在社区的每一天
去签到