美文网首页玩转树莓派
剖析Pi-Dashboard的机制

剖析Pi-Dashboard的机制

作者: 刘小白DOER | 来源:发表于2020-08-26 18:23 被阅读0次

        笔者试用了一下树莓派实验室发布的一款开源的 IoT 设备监控工具Pi Dashboard (Pi 仪表盘) ,界面简洁实用,可以查看树莓派很多状态。局部界面如下:

            作为做过前端bootstrap的小鲜肉来说,太熟悉这个风格了,情不自禁要看看到底怎么来监控树莓派的状态的,可以作为linux服务器监控的一种手段。

    1、安装Pi Dashboard

        首先安装 Nginx(或 Apache)和 PHP,笔者使用的是Apache,具体安装在这两个程序可以参考我的文章-树莓派安装LAMP,部署个人网页

        命令行进入到/var/www/html目录,此目录是web服务器目录,通过GitHub 部署pi-dashboard。

    cd /var/www/html

    sudo git clone https://github.com/spoonysonny/pi-dashboard.git

    2、浏览器访问

        浏览器输入http://ipaddress/pi-dashboard/来访问,可以查看CPU、内存、进程等实时数据。

    3、源码index.php

        那这些状态参数是怎么打印显示出来的呢?笔记查看index.php后发现每个参数对应$D数组的其中一个数值,index.php文件没有数组$D的具体信息,查看开头require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'device.php');

        原来在device.php里面,那这个被调用的文件就是完成读取树莓派参数的功能。

    4、核心device.php

        文件里面有数组建立的代码$D = Array();,简单看几个参数怎么赋值$D数组的。

        cpu温度赋值:(哈哈,大家可以参考我的另外文章,四种方法查看树莓派CPU温度

        if (($str = @file("/sys/class/thermal/thermal_zone0/temp")) !== false){

            $D['cpu']['temp'] = $str;

        }

        else{

            $D['cpu']['temp'] = 0;

        }

    cpu频率赋值,也是读取文件内容:

    if (($str = @file("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")) !== false){

            $D['cpu']['freq'] = $str[0];

        }

        else{

            $D['cpu']['freq'] = 0;

        }

      user等树莓派信息赋值,这个是通过函数赋值的。  

        总计一下,数组$D里面的数值是通过文件读取写入数组和php的函数赋值的。

    5、改写device.php

         在文件末尾加上打印的功能,直接在命令行打印出树莓派状态,开启上帝模式,就不需要web服务器apache啦 。

    echo "<pre>";

    print_r($D);

    echo "<pre>";

        添加后,修改执行权限,chmod +x device.php。

        在命令行输入/usr/bin/php device.php,执行代码。

      代码是按格式打印出数组$D,看看局部打印效果:

        当然如果要更加好看简便,只能一个个echo数组$D里面的参数了。比如:echo "memory_total:". $D['mem']['total']."\n";更加一目了然。

     6、展望一下

        选择有很多linux服务器,我要用这样的方法    来监控,该怎么实现呢?我需要一个树莓派做监控服务器,上面部署监控主页面。

        界面左侧可以通过列表IP显示所有服务器,点击哪个就显示哪个服务器IP的dashboard,主界面还要显示所有服务器的主要状态吧,这就需要统计服务器的状态并统一显示在主界面上。那可以在各个服务器上面的index.php里面将主要参数插入到树莓派监控服务器的数据库,树莓派监控服务器再统一调用显示。

    相关文章

      网友评论

        本文标题:剖析Pi-Dashboard的机制

        本文链接:https://www.haomeiwen.com/subject/bscfsktx.html