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

随笔2个月前发布 暧昧的人
35 0 0

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

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

参考博客:https://www.cnblogs.com/gitcatone/p/17796975.html

二、注册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

效果展示

获取我所创建的桶的信息
华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用
创建桶华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用
上传hello文件至桶并并命为hello.txt华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用
下载文件至本地华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用
查看文件内容华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

3.IotDA设备接入平台——数据转发服务

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

创建OBS桶

在云平台首页我们选择OBS应用服务,点击控制台,进入OBS首页华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

进入obs控制台后,在右侧点击桶列表,进入后点击右上角进行桶的创建,按照提示完成创建华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用
华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

如下图,可以进行桶的类型修改,点击名称进入桶的管理页面,在这里我们能够进行创建我们要进行数据储存的目标文件夹等操作华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

配置数据转发规则

当我们完成桶的创建时,就可以回到设备接入平台,在右侧的规则下拉选项中,选择数据转发华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

进入规则配置页面,点击创建规则,进行数据转发规则的创建

数据来源我们选择“设备属性”,触发事件选择“设备属性上报”,这意味着,将要储存的数据是从设备上传的信息中得来的,并以设备上报属性为发生条件,进行数据转发华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

点击创建,按照自己的需求进行书写,转发目标与保存字段与路径要确定好华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

完成后,就可以进行数据储存。
华为云IotDA平台与OBS进行数据转发并使用ECS服务器完成数据调用

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...