
diunipisocc/liscio-fogmon一款用于Cloud-IoT和Fog计算基础设施的分布式监控工具
FogMon 2.0 是"Lightweight Self-adaptive Cloud-IoT Monitoring across Fed4FIRE+ Testbeds (LiSCIo)"项目实验活动的成果,该项目由第8届Fed4FIRE+竞争性呼叫——创新实验 | “中型实验”类别资助。
FogMon 2.0已在Virtual Wall和CityLab测试床的Cloud-IoT资源上进行了真实环境下的评估和优化,支持20、30和40个受监控节点。
FogMon 1.x及工具的整体功能在以下文章中已有详细描述:
Stefano Forti, Marco Gaglianese, Antonio Brogi
Lightweight self-organising distributed monitoring of Fog infrastructures,
Future Generation Computer Systems (2020), DOI: 10.1016/j.future.2020.08.011.
Antonio Brogi, Stefano Forti, Marco Gaglianese
Measuring the Fog, Gently,
17th International Conference on Service-Oriented Computing (ICSOC), 2019.
如需复用本仓库中的源代码,请考虑引用上述文献。
FogMon Docker镜像提供了一种便捷的方式来部署和运行FogMon分布式监控工具。该工具专为Cloud-IoT和Fog计算基础设施设计,能够实时监控多个节点的性能指标(如延迟、带宽等),并具备自适应管理能力。通过Docker容器化部署,可以简化环境配置,快速搭建分布式监控系统。
FogMon 2.0相较于之前版本有显著改进,技术成熟度从TRL 4(实验室环境验证,最多13个节点)提升至TRL 5(真实环境验证,最多40个节点),主要特性包括:
延迟测试的多线程实现:Follower节点对组内其他节点的所有延迟测量通过不同线程并行执行(原版本为顺序执行),缩短了整体测量完成时间。
延迟和带宽测试的并行实现:使用专用线程顺序执行Follower节点对组内其他节点的带宽测量(原版本在所有延迟测试完成后才执行带宽测试),进一步缩短整体测量时间。
改进的带宽降级处理:当带宽显著降级时,若降级幅度超过当前平均值的30%,系统会清空测量窗口(原版本仍对整个窗口取平均值,导致识别延迟)。
改进的延迟降级处理:当延迟显著降级(可能对应链路故障)时,若降级幅度超过当前平均值的500%,系统会清空测量窗口;同时,若延迟降级伴随带宽变化,会优先对受影响链路进行新的带宽测量。
更准确的组间带宽估算:优化了不同组节点间(A和B)的带宽估算公式,纳入A和B所在组Leader之间的带宽,更准确反映Leader带宽可能成为组间节点瓶颈的情况。
基于Assolo的被动带宽测量优化:仅在1-55 Mbps带宽范围内使用Assolo进行被动测量(超出此范围使用iperf),避免Assolo在不准确范围内的测量,提升整体测量准确性和速度。
FogMonEye GUI:新增图形用户界面FogMonEye,便于评估工具的未来新版本。
适用于需要监控Cloud-IoT和Fog计算环境中多节点性能的场景,特别是:
首先初始化并更新子模块:
bashgit submodule init git submodule update
构建FogMon Docker镜像:
bashdocker build --tag fogmon .
bashdocker run -it --net=host fogmon --leader
连接到Leader节点(将ip_leader替换为Leader节点的IP地址):
bashdocker run -it --net=host fogmon -C ip_leader
所有其他参数可在main.cpp中查看,可配置FogMon的各项参数,如:
需开放以下端口以允许入站连接:
假设有5个节点A、B、C、D、E,IP地址分别为IP_A、IP_B、...、IP_E。
bashdocker run -it --net=host fogmon --leader
bashdocker run -it --net=host fogmon -C IP_A
经过5轮"--time-propagation"参数设置的周期后,将进行Leader选择,会新增2个Leader节点(因为5个节点需要更多Leader来维持系统)。
工具也可在Docker外编译(不建议),步骤如下:
bashcmake . make
需要libtool编译,若编译失败,尝试:bash[***]
或:bash./autogen.sh && ./configure && make && sudo make install
bashmake clean ./autogen.sh && ./configure && make CFLAGS=-fgnu89-inline && sudo make install
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务