技術(shù)世界不是很棒嗎?所有這些出色的服務(wù)和免費(fèi)軟件隨處可見(jiàn)。我想分享我對(duì)Grafana和InfluxDB的初次經(jīng)驗(yàn),目的是制作路由器統(tǒng)計(jì)數(shù)據(jù)的持久,美觀,靈活的圖形。
問(wèn)題:我的路由器指標(biāo)旨在可以在Web-UI的各處找到。有些測(cè)量提供了最近幾分鐘的實(shí)時(shí)圖形,有些則沒(méi)有。重新啟動(dòng)后,所有統(tǒng)計(jì)信息都會(huì)重置。我想回到過(guò)去,查看吞吐量,溫度等。
解決方案:InfluxDB用于持久存儲(chǔ),而Grafana用于可視化。
InfluxDB 是一個(gè)所謂的時(shí)間序列數(shù)據(jù)庫(kù)(TSDB),專門(mén)用于存儲(chǔ)數(shù)據(jù)歷史記錄,即標(biāo)記值時(shí)間。
Grafana 是一個(gè)免費(fèi)的自包含網(wǎng)站的InfluxDB(和其他TSDB)基于圖形的工具。
這兩種軟件都很容易上手,但功能強(qiáng)大。順便說(shuō)一句,我與eiter項(xiàng)目無(wú)關(guān)。這個(gè)項(xiàng)目只是為了讓您前進(jìn)。一旦開(kāi)始,您可能會(huì)發(fā)現(xiàn)自己在繪制各種事物。這非常適合物聯(lián)網(wǎng)應(yīng)用。例如我將與Openhab一起用于家庭自動(dòng)化傳感器指標(biāo)(溫度,濕度等)的相同設(shè)置。
在評(píng)論中請(qǐng)使用火焰和贊揚(yáng)。并且讓我知道是否有任何問(wèn)題無(wú)法解決,所以我可以修復(fù)它!
步驟1:先決條件
路由器
要開(kāi)始使用此項(xiàng)目,您需要具有以下功能的基于Linux的路由器:
命令行登錄root訪問(wèn)(telnet或ssh)
Cron支持
內(nèi)部JFFS或USB存儲(chǔ)設(shè)備上的本地文件存儲(chǔ)。這是用于存儲(chǔ)腳本的。
上述功能通常沒(méi)有庫(kù)存固件,因此您可能必須使用DDWRT,Tomato或類似產(chǎn)品。就我而言,我使用ASUSWRT Merlin。華碩非常有意識(shí)地開(kāi)放其庫(kù)存固件,而Merlin版本則增加了最少但至關(guān)重要的功能。我為此項(xiàng)目使用了 ASUS RT-N66U 。
服務(wù)器
第二個(gè)前提條件是x86-基于Linux的服務(wù)器。它不必超級(jí)強(qiáng)大。在本項(xiàng)目中,我使用了帶有Ubuntu Server 13.04 LTS和4GB RAM的HP微型服務(wù)器。從理論上講,您可以在不同的處理器體系結(jié)構(gòu)(例如ARM)上運(yùn)行它,但是您將無(wú)法使用預(yù)構(gòu)建的軟件包。該服務(wù)器不必專門(mén)用于InfluxDB。
PC
您需要一臺(tái)裝有終端軟件(例如Putty或MobaXterm)的PC或Mac。我更喜歡后者。)
一些知識(shí)
此Instructable適用于對(duì)命令行Linux有基本了解的人,
步驟2:準(zhǔn)備路由器
這對(duì)ASUS RT-有效N66U ,我即如果您使用的是其他路由器,則不能按照字母上的說(shuō)明進(jìn)行操作。
免責(zé)聲明! 請(qǐng)勿在路由器上加載自定義固件,除非您知道自己的路由器在做或至少接受一點(diǎn)點(diǎn)的風(fēng)險(xiǎn),就是將路由器弄亂,直至無(wú)法返回(磚狀)。我已經(jīng)在路由器上加載了許多自定義固件,但從未遇到任何問(wèn)題,但我知道可能會(huì)發(fā)生問(wèn)題。但是,使用Merlin for Asus,由于它基于庫(kù)存固件,因此風(fēng)險(xiǎn)較低。
在PC上,下載MerlinWRT
提取下載的zip 。 .trx文件包含固件。
瀏覽到路由器管理界面(通??稍趆ttp://192.168.1.1找到)
轉(zhuǎn)到:管理-》固件升級(jí)。選擇下載的.trx文件并上傳。
路由器重啟后,您將進(jìn)入Merlin。重新登錄。
轉(zhuǎn)到:管理-》系統(tǒng)。啟用所有JFFS-stuff。按應(yīng)用。
重新啟動(dòng)路由器。
驗(yàn)證:
使用終端軟件,登錄到路由器使用與Web管理員相同的用戶名和密碼。
驗(yàn)證/jffs是否存在并且包含“ configs”和“ scripts”目錄(請(qǐng)參見(jiàn)屏幕截圖)。
現(xiàn)在路由器已準(zhǔn)備好自定義腳本!
步驟3:準(zhǔn)備服務(wù)器
如先決條件中所述,您需要一個(gè)小型x86于InfluxDB和Grafana的基于(英特爾,AMD)的Linux服務(wù)器。以下說(shuō)明可在Ubuntu上使用。請(qǐng)查看Grafana和InfluxDB文檔以獲取其他發(fā)行版的安裝指南。
InfluxDB 0.8不是最新版本,但在撰寫(xiě)本文時(shí)提供了與應(yīng)用程序的最佳兼容性。安裝方法如下:
在服務(wù)器上的命令行登錄
如果在64位操作系統(tǒng)上:
$ wget https://s3.amazonaws.com/influxdb/influxdb_0.8.8_amd64.deb
$ sudo dpkg -i influxdb_0.8.8_amd64.deb
如果在32位操作系統(tǒng)上:
$ wget https://s3.amazonaws.com/influxdb/influxdb_0.8.8_i686.deb
$ sudo dpkg -i influxdb_0.8.8_i686.deb
啟動(dòng)守護(hù)程序:
$ sudo/etc/init.d/influxdb start
重新啟動(dòng):
$ sudo update-rc.d influxdb默認(rèn)值
Grafana 2.1.1安裝:
將Grafana安裝為此處描述:http://docs.grafana.org/installation/debian/
驗(yàn)證:
通過(guò)以下方法驗(yàn)證influxdb瀏覽到influxdb管理員gui:http://yourserver:8083。以用戶root和密碼root登錄
通過(guò)瀏覽到http://yourserver:3000/login驗(yàn)證grafana。以用戶管理員身份登錄,密碼為admin
步驟4:InfluxDB準(zhǔn)備
登錄到influxdb http://yourserver:8083/
上的admin(root/root),使用默認(rèn)設(shè)置創(chuàng)建指標(biāo)數(shù)據(jù)庫(kù)(mydb)。查看截圖。您可以使用其他名稱,但稍后將在說(shuō)明中更改對(duì)mydb的引用。
步驟5:確定指標(biāo)
現(xiàn)在是決定您要測(cè)量什么以及如何測(cè)量的好時(shí)機(jī)。我決定了以下內(nèi)容(我將提供腳本示例)。對(duì)于路由器統(tǒng)計(jì)信息,我開(kāi)始研究 wl 命令,并且我將繼續(xù)這樣做。它是巨大的。它似乎是路由器功能的主要命令行界面。實(shí)際上,我認(rèn)為您可以做在Web UI中可以做的所有事情,甚至更多。我認(rèn)為這是Broadcom專有的命令,因此如果您使用其他芯片組,則可能必須尋找替代方法。
CPU 使用。我的路由器上沒(méi)有安裝 vmstat 命令(我更喜歡使用),但 top 命令卻安裝了??梢詮囊韵旅钶敵鲋刑崛PU使用率:
$ top -bn1 |頭-3
內(nèi)存使用。也可以從 top 命令中提取可用內(nèi)存和已用內(nèi)存。請(qǐng)參閱CPU。
溫度。每個(gè)wifi芯片都有溫度讀數(shù),這些溫度讀數(shù)深深隱藏在wl命令中。但是,必須轉(zhuǎn)換結(jié)果(請(qǐng)參見(jiàn)腳本)。例如:
$ wl -i eth1 phy_tempsense
Ping 。我決定對(duì)我的外部訪問(wèn)進(jìn)行基準(zhǔn)測(cè)試,以測(cè)量對(duì)兩個(gè)已建立網(wǎng)站的ping訪問(wèn)。例如:
$ ping -c1 -W1 http://www.google.com
吞吐量。我認(rèn)為沒(méi)有計(jì)算就無(wú)法提供吞吐量。但是,可以在多個(gè)位置找到計(jì)數(shù)器。/proc/net/dev是一個(gè)很好的計(jì)數(shù)器源。示例:
$ cat/proc/net/dev | tail +3
無(wú)線客戶端。通過(guò)wl命令每個(gè)接口/芯片(2.4GHz和5.0GHz)連接的無(wú)線設(shè)備數(shù):
$ wl -i eth1 assoclist
我對(duì)其他測(cè)量有想法,但我認(rèn)為這是一個(gè)很好的開(kāi)始。要記住的一點(diǎn)是,小型家用路由器并不是功能強(qiáng)大的處理設(shè)備。太多,太頻繁或太復(fù)雜的測(cè)量都會(huì)對(duì)路由器性能產(chǎn)生不利影響。
如果您提出了一個(gè)致命指標(biāo),請(qǐng)分享(評(píng)論)!
步驟6:路由器腳本
附加的zip歸檔文件包含:
router_assoclist.sh -報(bào)告已連接無(wú)線客戶端數(shù)量的示例腳本
router_cpu.sh -CPU利用率腳本
router_mem.sh -內(nèi)存利用率腳本
router_net.sh -網(wǎng)絡(luò)統(tǒng)計(jì)信息腳本。使用流量計(jì)數(shù)器。
router_ping_ext.sh -用于一個(gè)或多個(gè)目標(biāo)的ping往返
router_temp.sh -攝氏2.4GHz和5GHz芯片上的溫度。如果您更喜歡華氏溫度,請(qǐng)?jiān)诖颂庍M(jìn)行數(shù)學(xué)計(jì)算。
routerstats.sh -觸發(fā)其他腳本的主腳本
todb.sh -該腳本需要三個(gè)參數(shù):系列名稱,列和數(shù)據(jù)點(diǎn)。字符串?dāng)?shù)據(jù)會(huì)自動(dòng)加引號(hào),數(shù)據(jù)會(huì)被格式化并發(fā)送到目標(biāo)數(shù)據(jù)庫(kù)。
這是安裝示例腳本的方式:
登錄到路由器命令行
在持久性(jffs)文件系統(tǒng)上創(chuàng)建目錄:
#mkdir/jffs/scripts/routerstats
提取zip存檔并將文件移動(dòng)到路由器上的新目錄。有幾種傳輸文件的方法,例如G。您可以在管理GUI中使用USB記憶棒或激活SSH(還可以激活SCP文件傳輸)。如果決定使用SSH/SCP,請(qǐng)使用Filezilla,modaXterm或類似工具將文件傳輸?shù)铰酚善鳌?/p>
如果您不知道 vi 編輯器的工作方式,現(xiàn)在是查找它的好時(shí)機(jī)。它是路由器上唯一的文件編輯器。編輯 todb.sh中的設(shè)置: vi/jffs/scripts/routerstats/todb.sh。編輯以下幾行以符合您的設(shè)置。您可能只需要更改dbhost行:
dbname =“ mydb”
dbhost =“ srv4:8086 ”
user =“ root”
passwd =“ root”
如果您不想學(xué)習(xí)vi,請(qǐng)先編輯文件,然后再將其移動(dòng)到路由器。
使腳本每30秒運(yùn)行一次。以下代碼在 services-start 腳本中添加了兩行,該腳本在啟動(dòng)時(shí)插入了兩個(gè)cron調(diào)度程序條目。在常規(guī)的Linux發(fā)行版中,cron條目是持久的,您只需運(yùn)行一次 cru -命令并使用它即可。 Cron僅以分鐘間隔執(zhí)行,因此要獲得30s間隔就需要第二行。第二行與第一行同時(shí)觸發(fā),但在執(zhí)行任何有用操作之前要等待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
驗(yàn)證:
登錄到InfluxDB管理員GUI(http://yourserver:8083)
單擊mydb旁邊的“瀏覽數(shù)據(jù)”
輸入“列表系列”作為查詢(請(qǐng)參見(jiàn)屏幕截圖)
步驟7:Grafana可視化
Grafana可視化很有趣。我將為您提供一個(gè)示例儀表板,但我鼓勵(lì)您試用并對(duì)其進(jìn)行調(diào)整??梢栽贕rafana主頁(yè)上找到優(yōu)秀視頻教程的鏈接。
創(chuàng)建數(shù)據(jù)源:
登錄到grafana(http://yourserver:3000)
創(chuàng)建數(shù)據(jù)源mydb(請(qǐng)參見(jiàn)屏幕快照
導(dǎo)入示例儀表板:
下載附件的儀表板文件。該文件包含json的定義整個(gè)儀表板。如果需要,請(qǐng)檢查出來(lái)。它是人類可讀的并且可以編輯的。例如,如果您創(chuàng)建的數(shù)據(jù)源使用除 mydb 之外的任何其他名稱,則可以在該文件中進(jìn)行搜索替換或稍后在GUI中更改數(shù)據(jù)源。
導(dǎo)入儀表板(請(qǐng)參見(jiàn)屏幕截圖)
現(xiàn)在,您應(yīng)該擁有一個(gè)儀表板,它將逐漸填充數(shù)據(jù)!
責(zé)任編輯:wv
-
路由器
+關(guān)注
關(guān)注
22文章
3744瀏覽量
114266
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論