我正在創建一個使用情況統計信息網頁,該網頁將顯示當前的在線用戶並在給定的時間/日期顯示用戶的歷史圖表。從FreeRadius獲得在線用戶
在freeradius中有一個函數可以輕鬆獲取當前連接用戶的數量,然後我可以將其轉儲到數據庫中供我的網頁在使用圖表中使用?
我發現的唯一解決方案是每15分鐘閱讀一次cron-job的acct表,我希望有一個更好的解決方案,我還沒有找到。
我正在創建一個使用情況統計信息網頁,該網頁將顯示當前的在線用戶並在給定的時間/日期顯示用戶的歷史圖表。從FreeRadius獲得在線用戶
在freeradius中有一個函數可以輕鬆獲取當前連接用戶的數量,然後我可以將其轉儲到數據庫中供我的網頁在使用圖表中使用?
我發現的唯一解決方案是每15分鐘閱讀一次cron-job的acct表,我希望有一個更好的解決方案,我還沒有找到。
不,freeradius沒有跟蹤內部會計會話的狀態。您需要將會計數據寫入數據庫,然後您可以查詢該數據庫以獲取給定點的併發會話數。
有沒有在這個問題的一些例子SQL查詢,可以幫助你:Calculate number of concurrent events in SQL
如果你不想使用複雜的SQL,你可以輪詢數據庫每隔幾分鐘,並得到會議的次數沒有停止時間(仍然有效),然後將計數記錄在單獨的表中。
SELECT username
從radacct
:如果你想使用它的半徑側,那麼你必須使用cron作業username
LIKE「%@無線%」 AND acctstoptime
IS NULL GROUP BY的用戶名
,因爲半徑不能給你歷史數據收集基於會話的數據,但您可以從radacct表中獲取當前在線用戶數據
SELECT username FROM radacct WHERE acctstoptime IS NULL;或者你可以使用linux命令「radwho」參考:。 official freeradius doc
而對於歷史數據,可以使用路由器的API像 Mikrotik MRTG report 或者您也可以與一些基於SNMP網管去(像[LibreNMS])
它可以從FREERADIUS獲得在線用戶,通過創建一個定製模塊? – KostasC