使用Raspberry Pi构建集群,这不仅很有趣,而且可以简化您的工作。正如我们在我们在系列中的最新文章您可以使用群集来编译软件或使其从Internet上的各种来源收集数据。这种东西有很多用途。
但是,经过一个小时的编译,您可能会对节点的性能感到好奇。如果不是under-powered或CPU温度没有升高到期望的水平,它们如何在负载下工作。它们在执行任务时,每个节点还剩下多少内存。机架中的节点越多,您必须经过的信息越多。幸运的是,这里有可以帮助您以各种方式一次可视化此类信息的软件。
在本教程中,您将学习:
- 如何安装
glances
监控工具 - 如何配置一目了然
- 如何使用
glances
查看集群信息 - 如何创建本地网页以显示
glances
输出
构建树莓派系列:
- 构建Raspberry PI群集-第一部分:硬件采购和组装
- 构建Raspberry PI Cluster-第二部分:操作系统安装
- 构建Raspberry PI集群-第三部分:同时节点管理
- 构建Raspberry PI集群-第四部分:监视
使用的软件要求和约定
类别 | 使用的要求,约定或软件版本 |
---|---|
系统 | Raspbian Linux |
软件 | 扫视 |
其他 | 以root身份或通过Linux特权访问Linux系统sudo 命令。 |
约定 |
#-要求linux命令可以直接以root用户或通过使用root特权来执行sudo 命令$-要求linux命令以普通非特权用户身份执行 |
概览-群集监视中的must-have
考虑到一眼作为一个top
用于集群。不仅如此。这是用于监视集群的瑞士军刀。它可以在一个终端窗口中显示您所需的一切:硬件温度,风扇速度,运行进程,RAM和CPU使用率,节点IP以及其他一些有趣的较小的 gems 。该软件基于ncurses
它还可以让您轻松浏览群集节点,配置信息窗口显示的内容,甚至还具有网络服务器模式供您在网页中输出该信息。
安装一览
该软件基于Python
。有几种安装方法。大多数Linux发行版已经在其存储库中提供了它,因此在Ubuntu中,您只需执行
$ sudo apt install glances
(adsbygoogle = window.adsbygoogle || [])。push({});
并且所有软件包的依赖关系都将得到解决。如果您愿意以Python的方式进行操作,则可以使用pip
:
$ sudo apt install pip
$ pip install glances
Glances具有大量模块,例如RAID信息,WiFi网络信息,Web界面或Docker集成。为了确保全部使用,请使用pip
,请看一下
$ pip install 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'
您还可以使用安装脚本glances
在您的系统上,无论您使用什么发行版。它从GitHub下载最新的master分支,并将其设置在您的系统上。为此用途
$ curl -L https://bit.ly/glances | /bin/bash
另外一定要安装glances
在所有群集节点上。
配置概览
安装完成后,glances
在以下位置创建配置文件/etc/glances/
叫glances.conf
。在此文件中,您可以fine-tune ncurses界面向您显示什么以及如何显示。例如,如果要在系统信息屏幕中使用白色背景而不是黑色背景,则可以修改该行
curse_theme=black
至
curse_theme=white
ncurses界面使用颜色,因此,如果您希望在视觉上受到过载的CPU的干扰,则可以定义CPU使用率条从绿色变为红色的百分比。为此修改的值cpu_critical=90
介于10
和99
。 RAM,SWAP,负载阈值均具有相同的参数:
careful=50
warning=70
critical=90
您可以修改它们的值,以便只有达到该值定义的限制时,它们各自的条才会更改颜色。取消注释Sensors alias
中的行[sensors]
部分以获取有关CPU和主板温度的信息。为此,您还需要具备hddtemp
和psutil
安装在每个Raspbian群集节点上的软件包:
$ sudo apt install hddtemp python-psutil
可配置元素的列表很广泛,但是/etc/glances/glances.conf
该文件有据可查且不言自明,并且需要自己撰写一篇文章。但是让我们看看你能做什么glances
。
使用概览
您可以通过几种方式使用一览表。如果您想查看有关特定集群节点的信息,并且碰巧通过SSH连接到该集群节点,则只需使用以下命令调用该命令:
$ glances
如果你想开始glances
在服务器模式下的群集节点上,您可以附加-s
属性:
$ glances -s
然后在另一台机器上,您可以启动glances
作为一个简单的客户端应用程序并连接到glances
您刚开始使用的服务器
$ glances -c 192.168.x.x
(adsbygoogle = window.adsbygoogle || [])。push({});
哪里192.168.x.x
是Glances服务器的IP。另外,如果您在主机名中定义了主机名,则可以使用主机名/etc/hosts
文件:
$ glances -c rpi1
您可以在配置文件中定义群集节点。寻找Client/server
在部分glances.conf
并添加您的节点:
[serverlist]
# Define the static servers list
server_1_name=192.168.1.126
server_1_alias=rpi1
server_1_port=61209
server_2_name=192.168.1.252
server_2_alias=rpi2
server_2_port=61209
server_3_name=192.168.1.150
server_3_alias=rpi3
server_3_port=61209
server_4_name=192.168.1.124
server_4_alias=rpi4
server_4_port=61209
如您所见,每个服务器都有一个数字,一个名称,一个别名和一个端口。该端口应保留61209
对于所有节点,而别名应对应于每个群集节点IP的主机名。
使用多个节点时,为避免每次连接到服务器时都输入其登录密码glances
服务器,您可以在plaintex中的glances
配置文件。编辑/etc/glances/glances.conf
并将您的群集节点添加到[passwords]
部分:
rpi1=yourpassword
rpi2=yourpassword
rpi3=yourpassword
rpi4=yourpassword
替代yourpassword
使用您在本系列的第三部分中设置的密码并保存文件。
现在你可以打电话glances
从笔记本电脑
$ glances --browser
并在可浏览的ncurses列表中查看所有群集节点。您可以输入它们中的每一个,查看每个人在使用其资源和流程在做什么,然后继续进行下一个。
网络服务器模式
但是,如果您想一次查看所有群集节点怎么办?那会更好吗?而且在网页上显示该信息会更好吗? Glances具有Web服务器模式,您可以从以下模式开始:
$ glances -w
将Glances服务器激活为网络服务器后,您可以使用任何网络浏览器访问详细描述可在ncurses界面中查看的相同信息的网页。只需在浏览器的URL栏中输入节点的IP地址或主机名,然后使用61208
作为港口。
例如http://192.168.1.252:61208
将在我们的LAN中显示有关群集第二个节点的Glances Web服务器信息。问题是您将不得不为每个节点使用不同的页面和地址。那么,为什么不使用一个简单的HTML页面来制作一个可以同时显示所有四个节点的网页呢?IFRAMES
?
创建Glances网页监视站
安装Apache在群集的第一个节点上。我们将使用rpi1
作为显示此HTML文件的节点。你可以用
$ sudo apt install apache2
Apache Web服务器的根是/var/www/html/
夹。在此处创建一个新文件并命名index.html
:
# touch /var/www/html/index.html
现在编辑此文件:
# nano /var/www/html/index.html
将此添加到其内容:
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<body>");
out.println("<h2>My cluster info"</h2>");
out.println("<br>");
out.println("<center>");
out.println("<iframe src="http://rpi1:61208" height="465" width="326"></iframe>");
out.println("<iframe src="http://rpi2:61208" height="465" width="326"></iframe>");
out.println("<iframe src="http://rpi3:61208" height="465" width="326"></iframe>");
out.println("<iframe src="http://rpi4:61208" height="465" width="326"></iframe></center>");
out.println("</br>");
out.println("</body>");
out.println("</html>");
用保存文件ctrl+x
。如您所见,我们使用的是主机名而不是IP和Glances网络服务器端口-61208
。 HTML有四个IFRAMES
,每个群集节点一个。改变height
和width
值,以便iframe可以填充您的屏幕。
(adsbygoogle = window.adsbygoogle || [])。push({});
现在只要做一件事。将以下行添加到每个/etc/rc.local
群集节点的文件:
glances -w --theme-white --process-short-name --hide-kernel-threads --fs-free-space --disable-irq --disable-raid --disable-folder --disable-swap
这告诉Glances作为Web服务器在启动时启动,使用白色主题,调整显示的进程列表宽度,并隐藏Raspberry Pi不需要或很少使用的一些东西:RAID信息,IRQ信息,某些文件夹信息,SWAP和内核线程信息。这样,在重新启动群集并通过Web浏览器访问第一个节点的地址后,IFRAMES
将能够在其各自的窗口中放入所有相关信息。
您可以通过编辑位于以下位置的相应CSS文件来进一步决定Glances Web服务器网页如何显示信息/usr/lib/python3/dist-packages/glances/outputs/static/public/css/style.css
。字体大小,字体类型,颜色-都可以在此处自定义,以使群集信息网页更漂亮。
结论
Glances是从集群中获取相关信息的好方法。如果您使用IFRAME
使用webpage方法,您可以随时访问群集信息页面,并在一个浏览器窗口中查看所有节点的性能。或者您可以使用ncurses
在“终端”屏幕中的“用户界面”中查看相同的信息。 Glances是高度可定制的,并且在使用群集时非常有用,因为它是由Raspberry Pi制成的小型群集。
附录
没有限制。如果4节点Raspberry PI群集不能满足您的要求,您随时可以随时添加更多节点。