华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

发布时间 2023-12-02 18:31:42作者: εὕρηκα

华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

一、通过IotDA平台接入物联网设备

二、注册ECS服务器并进行远程控制

产品简介

  • ECS弹性服务器,一款运行在云端的弹性虚拟计算机,能够实现弹性储存容量与和弹性算力。
    目前常用的云产品主要来自阿里云与华为云----其中阿里云价格便宜(新用户送三个月的免费试用时长)

下面我以阿里云ECS服务器作为案例进行入门介绍

开始使用

  • 使用一款没有接触过的新产品时应该从帮助文档开始

    • 登录阿里云的控制台页面,从产品列表中选择ecs服务器,并进行购买,新用户有三个月的免费使用期限。点击购买后进入配置界面,选择合适的配置,并选择你想要在服务器上搭载的操作系统,这里我选的时Linux完成配置后,进入实例界面,找到远程连接选项,通过官方给的远程操作平台进行登录操作,第一次进入,用户名一般为root(Linux系统下),密码需要自己重新设置进入操作界面,输入密码就能进入系统了!
    • 本地终端通过ssh协议连接云端ECS服务器
      打开windows终端(“win+R”输入“cmd”)
    • 在终端键入命令“ssh [用户名] @ [服务器IP地址]”用户名一般为root(管理员),IP地址在官网控制台页面查找命令输入后敲击回车键执行命令,输入密码(密码默认不显示)后回车进入系统
  • 至此完成了ECS服务器的本地ssh终端连接

三、IotDA设备接入平台——数据转发服务

当我们成功将设备通过MQTT协议连接至华为云IOT平台后,我们就可以在IOT平台中接收到设备上传数据,但是对于这些数据不能直接保存在IOT平台,需要我们通过IotDA平台的数据转发服务将数据传输至数据库中进行储存。在这里我们选择使用OBS对象储存服务进行数据储存。

创建OBS桶

在云平台首页我们选择OBS应用服务,点击控制台,进入OBS首页
进入obs控制台后,在右侧点击桶列表,进入后点击右上角进行桶的创建,按照提示完成创建
如下图,可以进行桶的类型修改,点击名称进入桶的管理页面,在这里我们能够进行创建我们要进行数据储存的目标文件夹等操作

配置数据转发规则

当我们完成桶的创建时,就可以回到设备接入平台,在右侧的规则下拉选项中,选择数据转发
进入规则配置页面,点击创建规则,进行数据转发规则的创建
数据来源我们选择“设备属性”,触发事件选择“设备属性上报”,这意味着,将要储存的数据是从设备上传的信息中得来的,并以设备上报属点击创建,按照自己的想法进行书写,转发目标与保存字段与路径要再三考虑
完成后,就可以进行数据储存。

四、通过ecs服务器拉取obs桶的数据

1.通过ecs服务器拉取obs桶的数据

obs对象储存,是一款适用于长期储存的数据储存应用,面向于拥有大量数据集,且拥有长期存储需求的客户
obs桶能够通过同控制台页面,通过图形用户页面进行手动上传也可以通过IotDA设备接入平台的数据转发服务,实现设备数据的转储存储至obs的文件能够通过obsutil、obsfs等obs访问工具进行调取与挂载。

目前我只研究了其中一种:obsfs

obsfs是对象存储服务 (Object Storage Service,OBS)提供的一款基于FUSE的文件系统工具,用于将OBS并行文件系统挂载至Linux系统,让用户能够在本地像操作文件系统一样直接使用OBS海量的存储空间。
接起上话:完成ecs服务器配置后,我们进入linux系统
此时我们需要根据华为云官方提供的obsfs并行文件系统挂载教程完成环境安装

安装obsfs

        `https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsfs/current/obsfs_CentOS7.6_amd64.tar.gz`
        在linux系统中键入“wget”命令将上方连接所指的obsfs软件包下载
            如果没有“wget”工具就通过“yum install wget”命令进行安装
            完成下载后,将然简报进行解压“tar -xzvf obsfs软件包绝对路径/obsfs_xxx.tar.gz”
            解压至目标文件夹后通过“cd”命令转至目标文件夹下通过“ll”命令查看解压出的目标文件
            键入“bash install_obsfs.sh”运行安装脚本
            完成上方内容后,你需要进行环境配置:
                openssl-devel、fuse、fuse-devel
                执行下列命令进行安装

CentOS 7
yum install -y openssl-devel fuse fuse-devel
Ubuntu 16
apt-get install -y libfuse-dev libcurl4-openssl-dev

键入命令“./obsfs --version”检查是否安装成功,成功应会获取到相应版本
如果系统的libfuse版本过低也会运行错误,键入“find / -name libfuse.so*”查找当前环境下的libfuse版本,libfuse版本应是2.9.7~2.9.9,如果版本错误,请参考libfuse安装指导。

初始化obsfs

            首先我们进入控制台的OBS对象储存服务页面创建一个并行文件系统
            然后在右上角的用户名弹出的下拉框种选择个人凭证,获取AK,SK安全密钥下载保存,要记牢!
            随后继续进入linux系统,输入“obsfs --password_encryption -o ak=XXXXXXX -o sk=XXXXXXXXX -o passwd_file=/etc/passwd-obsfs”
            将密钥文件保存至etc/passwd-obsfs文件
            “cat /etc/passwd-obsfs”查看是否配置成功
            “chmod 600 /etc/passwd-obsfs”将密钥设置成只能当前用户访问

挂载并行文件系统

官网的提示

obsfs只支持挂载OBS并行文件系统,不支持挂载对象存储桶。本地挂载目录可以不为空,但是挂载后此目录下原有的内容将不可用,取消挂载后即可恢复。建议使用空目录作为挂载目录。挂载目录中的文件或文件夹不支持硬链接命令。创建的目录深度不超过45层。每次通过命令手动挂载的并行文件系统,在Linux重启后,都需要重新挂载。并行文件系统的容量请以实际使用情况为准。

创建一个目录以供挂载“mkdir XXX”
使用“cd”转至obsfs所在目录
运行命令“./obsfs 并行文件系统名 本地挂载目录 -o url=区域终端节点地址 -o passwd_file=密钥文件路径 -o big_writes -o max_write=131072 -o use_ino 其他挂载参数”并行文件名----你在控制台创建的并行文件系统名称本地挂载目录----上一步创建的目录所在路径区域终端节点地址----区域终端地址,详见连接密钥文件路径 ----存放密钥的地址“/etc/passwd-obsfs”运行后,使用“fd -h”命令查看硬盘资源,检查是否挂载成功

不知道什么原因我无法完成挂载,可能是因为只能在华为云ecs服务器中通过内网连接(我用的是阿里云ECS)

总结

目前拉取失败,已经进行了多次尝试未找到解决方法,网上相关案例太少。后面抽时间在使用obsutil再进行尝试obs作为一款长期储存应用,并不适合作为云端数据处理的数据中转容器

2.使用Obsutil进行数据拉取

obsutil是一款用于访问管理华为云对象存储服务(Object Storage Service,OBS)的命令行工具,您可以使用该工具对OBS进行常用的配置管理操作,如创建桶、上传文件/文件夹、下载文件/文件夹、删除文件/文件夹等。对于熟悉命令行程序的用户,obsutil能在执行批量处理、自动化任务场景能为您带来更优体验。

下载Obsutil

执行“wget”命令下载软件包
wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz

进行解压后进入解压出的目标文件夹

tar -xzvf obsutil_linux_amd64.tar.gz
cd obsutil_linux_amd64_5.5.9

为obsutil添加可执行权限
chmod 755 obsutil

检查是否成功安装
./obsutil version

初始化配置

依旧是如上方obsfs步骤一样获取到ak、sk以及区域终端节点地址,输入命令添加配置:
./obsutil config -i=ak -k=sk -e=endpoint

检查是否完成配置
./obsutil ls -s