mirror of
https://github.com/ntop/ntopng.git
synced 2026-05-09 07:39:03 +00:00
Method scanAlerts was called inside a loop over the interfaces in minute.lua. Since scanAlerts was looping over the interfaces as well, this was causing interfaces to be deselected from the outer loop. This commit fixes the issues by forcing scanAlerts to receive an input interface. Fixes #582
82 lines
2.4 KiB
Lua
82 lines
2.4 KiB
Lua
--
|
|
-- (C) 2013-16 - ntop.org
|
|
--
|
|
|
|
|
|
dirs = ntop.getDirs()
|
|
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
|
|
|
|
require "lua_utils"
|
|
require "alert_utils"
|
|
|
|
if(ntop.isPro()) then
|
|
package.path = dirs.installdir .. "/pro/scripts/callbacks/?.lua;" .. package.path
|
|
require("daily")
|
|
end
|
|
|
|
-- Delete JSON files older than a 30 days
|
|
-- TODO: make 30 configurable
|
|
harvestJSONTopTalkers(30)
|
|
|
|
-- Scan "day" alerts
|
|
for _, ifname in pairs(interface.getIfNames()) do
|
|
scanAlerts("day", ifname)
|
|
end
|
|
|
|
local debug = false
|
|
local delete_keys = true
|
|
|
|
function harverstExpiredMySQLFlows(ifname, mysql_retention)
|
|
sql = "DELETE FROM flowsv4 where FIRST_SWITCHED < "..mysql_retention
|
|
sql = sql.." AND (INTERFACE_ID = "..getInterfaceId(ifname)..")"
|
|
sql = sql.." AND (NTOPNG_INSTANCE_NAME='"..ntop.getPrefs()["instance_name"].."' OR NTOPNG_INSTANCE_NAME IS NULL)"
|
|
interface.execSQLQuery(sql)
|
|
if(debug) then io.write(sql.."\n") end
|
|
|
|
sql = "DELETE FROM flowsv6 where FIRST_SWITCHED < "..mysql_retention
|
|
sql = sql.." AND (INTERFACE_ID = "..getInterfaceId(ifname)..")"
|
|
sql = sql.." AND (NTOPNG_INSTANCE_NAME='"..ntop.getPrefs()["instance_name"].."' OR NTOPNG_INSTANCE_NAME IS NULL)"
|
|
interface.execSQLQuery(sql)
|
|
if(debug) then io.write(sql.."\n") end
|
|
end
|
|
|
|
|
|
begin = os.clock()
|
|
t = os.time()-86400
|
|
|
|
if((_GET ~= nil) and (_GET["debug"] ~= nil)) then
|
|
debug = true
|
|
t = t + 86400
|
|
end
|
|
|
|
if(debug) then sendHTTPHeader('text/plain') end
|
|
|
|
when = os.date("%y%m%d", t)
|
|
|
|
mysql_retention = ntop.getCache("ntopng.prefs.mysql_retention")
|
|
if((mysql_retention == nil) or (mysql_retention == "")) then mysql_retention = "30" end
|
|
mysql_retention = os.time() - 86400*tonumber(mysql_retention)
|
|
|
|
minute_top_talkers_retention = ntop.getCache("ntopng.prefs.minute_top_talkers_retention")
|
|
if((minute_top_talkers_retention == nil) or (minute_top_talkers_retention == "")) then minute_top_talkers_retention = "365" end
|
|
|
|
ifnames = interface.getIfNames()
|
|
for _,_ifname in pairs(ifnames) do
|
|
interface.select(_ifname)
|
|
interface_id = getInterfaceId(_ifname)
|
|
|
|
ntop.deleteMinuteStatsOlderThan(interface_id, tonumber(minute_top_talkers_retention))
|
|
|
|
harverstExpiredMySQLFlows(_ifname, mysql_retention)
|
|
|
|
hosts_stats = interface.getHostsInfo()
|
|
|
|
for key, value in pairs(hosts_stats) do
|
|
interface.resetPeriodicStats(key, value["vlan"])
|
|
end
|
|
|
|
if(interface.getInterfaceDumpDiskPolicy() == true) then
|
|
ntop.deleteDumpFiles(interface_id)
|
|
end
|
|
end
|
|
|