mirror of
https://github.com/ntop/ntopng.git
synced 2026-05-01 00:19:33 +00:00
Fixes circular dependency and lightened some modules
This commit is contained in:
parent
de03d66a73
commit
ef27b0b058
14 changed files with 1929 additions and 2045 deletions
|
|
@ -1,248 +1,255 @@
|
|||
--
|
||||
-- (C) 2019-24 - ntop.org
|
||||
--
|
||||
|
||||
require "ntop_utils"
|
||||
|
||||
-- ###########################################
|
||||
|
||||
-- NOTE: '~= "0"' is used for prefs which are enabled by default
|
||||
function areInterfaceTimeseriesEnabled(ifid)
|
||||
return((ntop.getPref("ntopng.prefs.interface_rrd_creation") ~= "0"))
|
||||
return ((ntop.getPref("ntopng.prefs.interface_rrd_creation") ~= "0"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areInterfaceL7TimeseriesEnabled(ifid)
|
||||
return(areInterfaceTimeseriesEnabled(ifid) and
|
||||
(ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation") ~= "per_category"))
|
||||
return (areInterfaceTimeseriesEnabled(ifid) and
|
||||
(ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation") ~= "per_category"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areInterfaceCategoriesTimeseriesEnabled(ifid)
|
||||
local rv = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
local rv = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
|
||||
-- note: categories are disabled by default
|
||||
return(areInterfaceTimeseriesEnabled(ifid) and
|
||||
((rv == "per_category") or (rv == "both")))
|
||||
-- note: categories are disabled by default
|
||||
return (areInterfaceTimeseriesEnabled(ifid) and ((rv == "per_category") or (rv == "both")))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areHostTimeseriesEnabled(ifid)
|
||||
local rv = ntop.getPref("ntopng.prefs.hosts_ts_creation")
|
||||
if isEmptyString(rv) then rv = "light" end
|
||||
local rv = ntop.getPref("ntopng.prefs.hosts_ts_creation")
|
||||
if isEmptyString(rv) then
|
||||
rv = "light"
|
||||
end
|
||||
|
||||
return((rv == "light") or (rv == "full"))
|
||||
return ((rv == "light") or (rv == "full"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areHostL7TimeseriesEnabled(ifid)
|
||||
local rv = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
local rv = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
|
||||
-- note: host protocols are disabled by default
|
||||
return((ntop.getPref("ntopng.prefs.hosts_ts_creation") == "full") and
|
||||
((rv == "per_protocol") or (rv == "both")))
|
||||
-- note: host protocols are disabled by default
|
||||
return ((ntop.getPref("ntopng.prefs.hosts_ts_creation") == "full") and ((rv == "per_protocol") or (rv == "both")))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areHostCategoriesTimeseriesEnabled(ifid)
|
||||
local rv = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
local rv = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
|
||||
-- note: host protocols are disabled by default
|
||||
return((ntop.getPref("ntopng.prefs.hosts_ts_creation") == "full") and
|
||||
((rv == "per_category") or (rv == "both")))
|
||||
-- note: host protocols are disabled by default
|
||||
return ((ntop.getPref("ntopng.prefs.hosts_ts_creation") == "full") and ((rv == "per_category") or (rv == "both")))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areSystemTimeseriesEnabled()
|
||||
return(ntop.getPref("ntopng.prefs.system_probes_timeseries") ~= "0")
|
||||
return (ntop.getPref("ntopng.prefs.system_probes_timeseries") ~= "0")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areHostPoolsTimeseriesEnabled(ifid)
|
||||
return(ntop.isPro() and (ntop.getPref("ntopng.prefs.host_pools_rrd_creation") == "1"))
|
||||
return (ntop.isPro() and (ntop.getPref("ntopng.prefs.host_pools_rrd_creation") == "1"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areASTimeseriesEnabled(ifid)
|
||||
return(ntop.getPref("ntopng.prefs.asn_rrd_creation") == "1")
|
||||
return (ntop.getPref("ntopng.prefs.asn_rrd_creation") == "1")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areInternalTimeseriesEnabled(ifid)
|
||||
-- NOTE: no separate preference so far
|
||||
return(areSystemTimeseriesEnabled())
|
||||
-- NOTE: no separate preference so far
|
||||
return (areSystemTimeseriesEnabled())
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areCountryTimeseriesEnabled(ifid)
|
||||
return((ntop.getPref("ntopng.prefs.country_rrd_creation") == "1"))
|
||||
return ((ntop.getPref("ntopng.prefs.country_rrd_creation") == "1"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areOSTimeseriesEnabled(ifid)
|
||||
return((ntop.getPref("ntopng.prefs.os_rrd_creation") == "1"))
|
||||
return ((ntop.getPref("ntopng.prefs.os_rrd_creation") == "1"))
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areVlanTimeseriesEnabled(ifid)
|
||||
return(ntop.getPref("ntopng.prefs.vlan_rrd_creation") == "1")
|
||||
return (ntop.getPref("ntopng.prefs.vlan_rrd_creation") == "1")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areMacsTimeseriesEnabled(ifid)
|
||||
return(ntop.getPref("ntopng.prefs.l2_device_rrd_creation") == "1")
|
||||
return (ntop.getPref("ntopng.prefs.l2_device_rrd_creation") == "1")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areContainersTimeseriesEnabled(ifid)
|
||||
-- NOTE: no separate preference so far
|
||||
return(true)
|
||||
-- NOTE: no separate preference so far
|
||||
return (true)
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areSnmpTimeseriesEnabled(device, port_idx)
|
||||
return(ntop.getPref("ntopng.prefs.snmp_devices_rrd_creation") == "1")
|
||||
return (ntop.getPref("ntopng.prefs.snmp_devices_rrd_creation") == "1")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areFlowdevTimeseriesEnabled(ifid, device)
|
||||
return(ntop.getPref("ntopng.prefs.flow_device_port_rrd_creation") == "1")
|
||||
return (ntop.getPref("ntopng.prefs.flow_device_port_rrd_creation") == "1")
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function areAlertsEnabled()
|
||||
if(__alert_enabled == nil) then
|
||||
-- Not too nice as changes will be read periodically as new VMs are reloaded
|
||||
-- but at least we avoid breaking up the performance
|
||||
__alert_enabled = (ntop.getPref("ntopng.prefs.disable_alerts_generation") ~= "1")
|
||||
end
|
||||
if (__alert_enabled == nil) then
|
||||
-- Not too nice as changes will be read periodically as new VMs are reloaded
|
||||
-- but at least we avoid breaking up the performance
|
||||
__alert_enabled = (ntop.getPref("ntopng.prefs.disable_alerts_generation") ~= "1")
|
||||
end
|
||||
|
||||
return (__alert_enabled)
|
||||
return (__alert_enabled)
|
||||
end
|
||||
|
||||
-- ##########################################
|
||||
|
||||
function get5MinTSConfig()
|
||||
local config = {}
|
||||
local config = {}
|
||||
|
||||
config.host_ts_creation = ntop.getPref("ntopng.prefs.hosts_ts_creation")
|
||||
config.host_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
config.l2_device_rrd_creation = ntop.getPref("ntopng.prefs.l2_device_rrd_creation")
|
||||
config.l2_device_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.l2_device_ndpi_timeseries_creation")
|
||||
config.flow_devices_rrd_creation = ntop.getPref("ntopng.prefs.flow_device_port_rrd_creation")
|
||||
config.host_pools_rrd_creation = ntop.getPref("ntopng.prefs.host_pools_rrd_creation")
|
||||
config.snmp_devices_rrd_creation = ntop.getPref("ntopng.prefs.snmp_devices_rrd_creation")
|
||||
config.asn_rrd_creation = ntop.getPref("ntopng.prefs.asn_rrd_creation")
|
||||
config.obs_point_rrd_creation = ntop.getPref("ntopng.prefs.observation_points_rrd_creation")
|
||||
config.country_rrd_creation = ntop.getPref("ntopng.prefs.country_rrd_creation")
|
||||
config.os_rrd_creation = ntop.getPref("ntopng.prefs.os_rrd_creation")
|
||||
config.vlan_rrd_creation = ntop.getPref("ntopng.prefs.vlan_rrd_creation")
|
||||
config.ndpi_flows_timeseries_creation = ntop.getPref("ntopng.prefs.ndpi_flows_rrd_creation")
|
||||
config.interface_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
config.host_ts_creation = ntop.getPref("ntopng.prefs.hosts_ts_creation")
|
||||
config.host_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.host_ndpi_timeseries_creation")
|
||||
config.l2_device_rrd_creation = ntop.getPref("ntopng.prefs.l2_device_rrd_creation")
|
||||
config.l2_device_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.l2_device_ndpi_timeseries_creation")
|
||||
config.flow_devices_rrd_creation = ntop.getPref("ntopng.prefs.flow_device_port_rrd_creation")
|
||||
config.host_pools_rrd_creation = ntop.getPref("ntopng.prefs.host_pools_rrd_creation")
|
||||
config.snmp_devices_rrd_creation = ntop.getPref("ntopng.prefs.snmp_devices_rrd_creation")
|
||||
config.asn_rrd_creation = ntop.getPref("ntopng.prefs.asn_rrd_creation")
|
||||
config.obs_point_rrd_creation = ntop.getPref("ntopng.prefs.observation_points_rrd_creation")
|
||||
config.country_rrd_creation = ntop.getPref("ntopng.prefs.country_rrd_creation")
|
||||
config.os_rrd_creation = ntop.getPref("ntopng.prefs.os_rrd_creation")
|
||||
config.vlan_rrd_creation = ntop.getPref("ntopng.prefs.vlan_rrd_creation")
|
||||
config.ndpi_flows_timeseries_creation = ntop.getPref("ntopng.prefs.ndpi_flows_rrd_creation")
|
||||
config.interface_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
|
||||
-- ########################################################
|
||||
-- Populate some defaults
|
||||
if (tostring(config.flow_devices_rrd_creation) == "1" and ntop.isEnterpriseM() == false) then
|
||||
config.flow_devices_rrd_creation = "0"
|
||||
end
|
||||
-- ########################################################
|
||||
-- Populate some defaults
|
||||
if (tostring(config.flow_devices_rrd_creation) == "1" and ntop.isEnterpriseM() == false) then
|
||||
config.flow_devices_rrd_creation = "0"
|
||||
end
|
||||
|
||||
if (tostring(config.snmp_devices_rrd_creation) == "1" and not (ntop.isEnterpriseM() or ntop.isnEdgeEnterprise())) then
|
||||
config.snmp_devices_rrd_creation = "0"
|
||||
end
|
||||
if (tostring(config.snmp_devices_rrd_creation) == "1" and not (ntop.isEnterpriseM() or ntop.isnEdgeEnterprise())) then
|
||||
config.snmp_devices_rrd_creation = "0"
|
||||
end
|
||||
|
||||
-- Local hosts RRD creation is on, with no nDPI rrd creation
|
||||
if isEmptyString(config.host_ts_creation) then
|
||||
config.host_ts_creation = "light"
|
||||
end
|
||||
if isEmptyString(config.host_ndpi_timeseries_creation) then
|
||||
config.host_ndpi_timeseries_creation = "none"
|
||||
end
|
||||
-- Local hosts RRD creation is on, with no nDPI rrd creation
|
||||
if isEmptyString(config.host_ts_creation) then
|
||||
config.host_ts_creation = "light"
|
||||
end
|
||||
if isEmptyString(config.host_ndpi_timeseries_creation) then
|
||||
config.host_ndpi_timeseries_creation = "none"
|
||||
end
|
||||
|
||||
-- Devices RRD creation is OFF, as OFF is the nDPI rrd creation
|
||||
if isEmptyString(config.l2_device_rrd_creation) then
|
||||
config.l2_device_rrd_creation = "0"
|
||||
end
|
||||
if isEmptyString(config.l2_device_ndpi_timeseries_creation) then
|
||||
config.l2_device_ndpi_timeseries_creation = "none"
|
||||
end
|
||||
-- Devices RRD creation is OFF, as OFF is the nDPI rrd creation
|
||||
if isEmptyString(config.l2_device_rrd_creation) then
|
||||
config.l2_device_rrd_creation = "0"
|
||||
end
|
||||
if isEmptyString(config.l2_device_ndpi_timeseries_creation) then
|
||||
config.l2_device_ndpi_timeseries_creation = "none"
|
||||
end
|
||||
|
||||
-- Interface RRD creation is on, with per-protocol nDPI, Pref used by Observation Points
|
||||
if isEmptyString(config.interface_ndpi_timeseries_creation) then
|
||||
config.interface_ndpi_timeseries_creation = "per_protocol"
|
||||
end
|
||||
-- Interface RRD creation is on, with per-protocol nDPI, Pref used by Observation Points
|
||||
if isEmptyString(config.interface_ndpi_timeseries_creation) then
|
||||
config.interface_ndpi_timeseries_creation = "per_protocol"
|
||||
end
|
||||
|
||||
return config
|
||||
return config
|
||||
end
|
||||
|
||||
-- ###########################################
|
||||
|
||||
function getMinTSConfig()
|
||||
local config = {}
|
||||
local prefs = ntop.getPrefs() -- runtime ntopng preferences
|
||||
local config = {}
|
||||
local prefs = ntop.getPrefs() -- runtime ntopng preferences
|
||||
|
||||
config.interface_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
config.ndpi_flows_timeseries_creation = ntop.getPref("ntopng.prefs.ndpi_flows_rrd_creation")
|
||||
config.internals_rrd_creation = ntop.getPref("ntopng.prefs.internals_rrd_creation") == "1"
|
||||
config.is_dump_flows_enabled = ntop.getPrefs()["is_dump_flows_enabled"]
|
||||
config.interface_ndpi_timeseries_creation = ntop.getPref("ntopng.prefs.interface_ndpi_timeseries_creation")
|
||||
config.ndpi_flows_timeseries_creation = ntop.getPref("ntopng.prefs.ndpi_flows_rrd_creation")
|
||||
config.internals_rrd_creation = ntop.getPref("ntopng.prefs.internals_rrd_creation") == "1"
|
||||
config.is_dump_flows_enabled = ntop.getPrefs()["is_dump_flows_enabled"]
|
||||
|
||||
-- Interface RRD creation is on, with per-protocol nDPI
|
||||
if isEmptyString(config.interface_ndpi_timeseries_creation) then
|
||||
config.interface_ndpi_timeseries_creation = "per_protocol"
|
||||
end
|
||||
-- Interface RRD creation is on, with per-protocol nDPI
|
||||
if isEmptyString(config.interface_ndpi_timeseries_creation) then
|
||||
config.interface_ndpi_timeseries_creation = "per_protocol"
|
||||
end
|
||||
|
||||
return config
|
||||
return config
|
||||
end
|
||||
|
||||
-- ##############################################
|
||||
|
||||
-- Get from redis the throughput type bps or pps
|
||||
function getThroughputType()
|
||||
local throughput_type = ntop.getCache("ntopng.prefs.thpt_content")
|
||||
if throughput_type == "" then throughput_type = "bps" end
|
||||
|
||||
return throughput_type
|
||||
local throughput_type = ntop.getCache("ntopng.prefs.thpt_content")
|
||||
if throughput_type == "" then
|
||||
throughput_type = "bps"
|
||||
end
|
||||
|
||||
return throughput_type
|
||||
end
|
||||
|
||||
-- ##############################################
|
||||
|
||||
function hasClickHouseSupport()
|
||||
local auth = require "auth"
|
||||
local auth = require "auth"
|
||||
|
||||
if not (ntop.isPro() or ntop.isnEdgeEnterprise())
|
||||
or ntop.isWindows() then
|
||||
return false
|
||||
end
|
||||
if not (ntop.isPro() or ntop.isnEdgeEnterprise()) or ntop.isWindows() then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Don't allow nIndex for unauthorized users
|
||||
if not auth.has_capability(auth.capabilities.historical_flows) then
|
||||
return false
|
||||
end
|
||||
-- Don't allow nIndex for unauthorized users
|
||||
if not auth.has_capability(auth.capabilities.historical_flows) then
|
||||
return false
|
||||
end
|
||||
|
||||
-- TODO optimize
|
||||
if prefs == nil then
|
||||
prefs = ntop.getPrefs()
|
||||
end
|
||||
-- TODO optimize
|
||||
if prefs == nil then
|
||||
prefs = ntop.getPrefs()
|
||||
end
|
||||
|
||||
if prefs.is_dump_flows_to_clickhouse_enabled then
|
||||
return true
|
||||
end
|
||||
if prefs.is_dump_flows_to_clickhouse_enabled then
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- ##############################################
|
||||
|
||||
-- NOTE: global nindex support may be enabled but some disable on some interfaces
|
||||
function interfaceHasClickHouseSupport()
|
||||
require "check_redis_prefs"
|
||||
return (hasClickHouseSupport() and ntop.getPrefs()["is_dump_flows_to_clickhouse_enabled"])
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue