威廉希尔官方网站 世界不是很棒吗?所有这些出色的服务和免费软件随处可见。我想分享我对Grafana和InfluxDB的初次经验,目的是制作路由器统计数据的持久,美观,灵活的图形。
问题:我的路由器指标旨在可以在Web-UI的各处找到。有些测量提供了最近几分钟的实时图形,有些则没有。重新启动后,所有统计信息都会重置。我想回到过去,查看吞吐量,温度等。
解决方案:InfluxDB用于持久存储,而Grafana用于可视化。
InfluxDB 是一个所谓的时间序列数据库(TSDB),专门用于存储数据历史记录,即标记值时间。
Grafana 是一个免费的自包含网站的InfluxDB(和其他TSDB)基于图形的工具。
这两种软件都很容易上手,但功能强大。顺便说一句,我与eiter项目无关。这个项目只是为了让您前进。一旦开始,您可能会发现自己在绘制各种事物。这非常适合物联网应用。例如我将与Openhab一起用于家庭自动化传感器指标(温度,湿度等)的相同设置。
在评论中请使用火焰和赞扬。并且让我知道是否有任何问题无法解决,所以我可以修复它!
步骤1:先决条件
路由器
要开始使用此项目,您需要具有以下功能的基于Linux的路由器:
命令行登录root访问(telnet或ssh)
Cron支持
内部JFFS或USB存储设备上的本地文件存储。这是用于存储脚本的。
上述功能通常没有库存固件,因此您可能必须使用DDWRT,Tomato或类似产品。就我而言,我使用ASUSWRT Merlin。华硕非常有意识地开放其库存固件,而Merlin版本则增加了最少但至关重要的功能。我为此项目使用了 ASUS RT-N66U 。
服务器
第二个前提条件是x86-基于Linux的服务器。它不必超级强大。在本项目中,我使用了带有Ubuntu Server 13.04 LTS和4GB RAM的HP微型服务器。从理论上讲,您可以在不同的处理器体系结构(例如ARM)上运行它,但是您将无法使用预构建的软件包。该服务器不必专门用于InfluxDB。
PC
您需要一台装有终端软件(例如Putty或MobaXterm)的PC或Mac。我更喜欢后者。)
一些知识
此Instructable适用于对命令行Linux有基本了解的人,
步骤2:准备路由器
这对ASUS RT-有效N66U ,我即如果您使用的是其他路由器,则不能按照字母上的说明进行操作。
免责声明! 请勿在路由器上加载自定义固件,除非您知道自己的路由器在做或至少接受一点点的风险,就是将路由器弄乱,直至无法返回(砖状)。我已经在路由器上加载了许多自定义固件,但从未遇到任何问题,但我知道可能会发生问题。但是,使用Merlin for Asus,由于它基于库存固件,因此风险较低。
在PC上,下载MerlinWRT
提取下载的zip 。 .trx文件包含固件。
浏览到路由器管理界面(通常可在http://192.168.1.1找到)
转到:管理-》固件升级。选择下载的.trx文件并上传。
路由器重启后,您将进入Merlin。重新登录。
转到:管理-》系统。启用所有JFFS-stuff。按应用。
重新启动路由器。
验证:
使用终端软件,登录到路由器使用与Web管理员相同的用户名和密码。
验证/jffs是否存在并且包含“ configs”和“ scripts”目录(请参见屏幕截图)。
现在路由器已准备好自定义脚本!
步骤3:准备服务器
如先决条件中所述,您需要一个小型x86于InfluxDB和Grafana的基于(英特尔,AMD)的Linux服务器。以下说明可在Ubuntu上使用。请查看Grafana和InfluxDB文档以获取其他发行版的安装指南。
InfluxDB 0.8不是最新版本,但在撰写本文时提供了与应用程序的最佳兼容性。安装方法如下:
在服务器上的命令行登录
如果在64位操作系统上:
$ wget https://s3.amazonaws.com/influxdb/influxdb_0.8.8_amd64.deb
$ sudo dpkg -i influxdb_0.8.8_amd64.deb
如果在32位操作系统上:
$ wget https://s3.amazonaws.com/influxdb/influxdb_0.8.8_i686.deb
$ sudo dpkg -i influxdb_0.8.8_i686.deb
启动守护程序:
$ sudo/etc/init.d/influxdb start
重新启动:
$ sudo update-rc.d influxdb默认值
Grafana 2.1.1安装:
将Grafana安装为此处描述:http://docs.grafana.org/installation/debian/
验证:
通过以下方法验证influxdb浏览到influxdb管理员gui:http://yourserver:8083。以用户root和密码root登录
通过浏览到http://yourserver:3000/login验证grafana。以用户管理员身份登录,密码为admin
步骤4:InfluxDB准备
登录到influxdb http://yourserver:8083/
上的admin(root/root),使用默认设置创建指标数据库(mydb)。查看截图。您可以使用其他名称,但稍后将在说明中更改对mydb的引用。
步骤5:确定指标
现在是决定您要测量什么以及如何测量的好时机。我决定了以下内容(我将提供脚本示例)。对于路由器统计信息,我开始研究 wl 命令,并且我将继续这样做。它是巨大的。它似乎是路由器功能的主要命令行界面。实际上,我认为您可以做在Web UI中可以做的所有事情,甚至更多。我认为这是Broadcom专有的命令,因此如果您使用其他芯片组,则可能必须寻找替代方法。
CPU 使用。我的路由器上没有安装 vmstat 命令(我更喜欢使用),但 top 命令却安装了。可以从以下命令输出中提取CPU使用率:
$ top -bn1 |头-3
内存使用。也可以从 top 命令中提取可用内存和已用内存。请参阅CPU。
温度。每个wifi芯片都有温度读数,这些温度读数深深隐藏在wl命令中。但是,必须转换结果(请参见脚本)。例如:
$ wl -i eth1 phy_tempsense
Ping 。我决定对我的外部访问进行基准测试,以测量对两个已建立网站的ping访问。例如:
$ ping -c1 -W1 http://www.google.com
吞吐量。我认为没有计算就无法提供吞吐量。但是,可以在多个位置找到计数器。/proc/net/dev是一个很好的计数器源。示例:
$ cat/proc/net/dev | tail +3
无线客户端。通过wl命令每个接口/芯片(2.4GHz和5.0GHz)连接的无线设备数:
$ wl -i eth1 assoclist
我对其他测量有想法,但我认为这是一个很好的开始。要记住的一点是,小型家用路由器并不是功能强大的处理设备。太多,太频繁或太复杂的测量都会对路由器性能产生不利影响。
如果您提出了一个致命指标,请分享(评论)!
步骤6:路由器脚本
附加的zip归档文件包含:
router_assoclist.sh -报告已连接无线客户端数量的示例脚本
router_cpu.sh -CPU利用率脚本
router_mem.sh -内存利用率脚本
router_net.sh -网络统计信息脚本。使用流量计数器。
router_ping_ext.sh -用于一个或多个目标的ping往返
router_temp.sh -摄氏2.4GHz和5GHz芯片上的温度。如果您更喜欢华氏温度,请在此处进行数学计算。
routerstats.sh -触发其他脚本的主脚本
todb.sh -该脚本需要三个参数:系列名称,列和数据点。字符串数据会自动加引号,数据会被格式化并发送到目标数据库。
这是安装示例脚本的方式:
登录到路由器命令行
在持久性(jffs)文件系统上创建目录:
#mkdir/jffs/scripts/routerstats
提取zip存档并将文件移动到路由器上的新目录。有几种传输文件的方法,例如G。您可以在管理GUI中使用USB记忆棒或激活SSH(还可以激活SCP文件传输)。如果决定使用SSH/SCP,请使用Filezilla,modaXterm或类似工具将文件传输到路由器。
如果您不知道 vi 编辑器的工作方式,现在是查找它的好时机。它是路由器上唯一的文件编辑器。编辑 todb.sh中的设置: vi/jffs/scripts/routerstats/todb.sh。编辑以下几行以符合您的设置。您可能只需要更改dbhost行:
dbname =“ mydb”
dbhost =“ srv4:8086 ”
user =“ root”
passwd =“ root”
如果您不想学习vi,请先编辑文件,然后再将其移动到路由器。
使脚本每30秒运行一次。以下代码在 services-start 脚本中添加了两行,该脚本在启动时插入了两个cron调度程序条目。在常规的Linux发行版中,cron条目是持久的,您只需运行一次 cru -命令并使用它即可。 Cron仅以分钟间隔执行,因此要获得30s间隔就需要第二行。第二行与第一行同时触发,但在执行任何有用操作之前要等待30秒。
#echo‘cru a routerstats“ * * * * */jffs/scripts/routerstats/routerstats.sh”’》》/jffs/scripts/services-start
# echo‘cru a“ routerstats + 30”“ * * * * *(sleep 30;/jffs/scripts/routerstats/routerstats.sh)”’》 》/jffs/scripts/services-start
验证:
登录到InfluxDB管理员GUI(http://yourserver:8083)
单击mydb旁边的“浏览数据”
输入“列表系列”作为查询(请参见屏幕截图)
步骤7:Grafana可视化
Grafana可视化很有趣。我将为您提供一个示例仪表板,但我鼓励您试用并对其进行调整。可以在Grafana主页上找到优秀视频教程的链接。
创建数据源:
登录到grafana(http://yourserver:3000)
创建数据源mydb(请参见屏幕快照
导入示例仪表板:
下载附件的仪表板文件。该文件包含json的定义整个仪表板。如果需要,请检查出来。它是人类可读的并且可以编辑的。例如,如果您创建的数据源使用除 mydb 之外的任何其他名称,则可以在该文件中进行搜索替换或稍后在GUI中更改数据源。
导入仪表板(请参见屏幕截图)
现在,您应该拥有一个仪表板,它将逐渐填充数据!
责任编辑:wv
-
路由器
+关注
关注
22文章
3732浏览量
113849
发布评论请先 登录
相关推荐
评论