技術世界不是很棒嗎?所有這些出色的服務和免費軟件隨處可見。我想分享我對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文章
3839瀏覽量
116687
發布評論請先 登錄
光纖如何連接路由器

怎樣選擇合適的工業路由器?
工業路由器 VS 無線路由器:硬漢與暖男的 “職場生存法則”

工業路由器和家用路由器,區別竟然這么大,你被誤導了嗎?

工業路由器和家用路由器區別
工業路由器家庭能用嗎?這個答案可能會顛覆你的認知!
5G/4G工業路由器和普通路由器的區別

如何遠程登錄路由器

評論