diff --git a/LibreNMS/Util/DynamicConfigItem.php b/LibreNMS/Util/DynamicConfigItem.php index 64b2e24591..f6f964a240 100644 --- a/LibreNMS/Util/DynamicConfigItem.php +++ b/LibreNMS/Util/DynamicConfigItem.php @@ -77,8 +77,10 @@ class DynamicConfigItem implements \ArrayAccess return filter_var($value, FILTER_VALIDATE_EMAIL); } elseif ($this->type == 'array') { return is_array($value); // this should probably have more complex validation via validator rules + } elseif ($this->type == 'color') { + return (bool)preg_match('/^#?[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/', $value); } elseif (in_array($this->type, ['text', 'password'])) { - return true; + return !is_array($value); } return false; diff --git a/html/js/app.js b/html/js/app.js index c10e98ddbd..f8203455a5 100644 --- a/html/js/app.js +++ b/html/js/app.js @@ -6765,6 +6765,10 @@ __webpack_require__.r(__webpack_exports__); "description": "Enable Distributed Polling (requires additional setup)", "help": "Enable distributed polling system wide. This is intended for load sharing, not remote polling. You must read the documentation for steps to enable: https://docs.librenms.org/Extensions/Distributed-Poller/" }, + "distributed_poller_group": { + "description": "Default Poller Group", + "help": "The default poller group all pollers should poll if none is set in config.php" + }, "distributed_poller_memcached_host": { "description": "Memcached host", "help": "The hostname or ip for the memcached server. This is required for poller_wrapper.py and daily.sh locking." @@ -7177,6 +7181,7 @@ __webpack_require__.r(__webpack_exports__); }, "validate": { "boolean": "{value} is not a valid boolean", + "color": "{value} is not a valid hex color code", "email": "{value} is not a valid email", "integer": "{value} is not an integer", "password": "The password is incorrect", diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php deleted file mode 100644 index df49d8fc29..0000000000 --- a/includes/defaults.inc.php +++ /dev/null @@ -1,877 +0,0 @@ - '#ffffff', - 'even_alt' => '#f9f9f9', - 'even_alt2' => '#f0f0f0', - 'odd' => '#eeeeee', - 'odd_alt' => '#f0f0f0', - 'odd_alt2' => '#e3e3e3', - 'highlight' => '#ffcccc', -); -$config['warn_colour'] = '#ffeeee'; -$config['warn_colour_alt'] = '#ffcccc'; - -// $config['graph_colours'] = array("000066","330066","990066","990066","CC0033","FF0000"); // Purple to Red -// $config['graph_colours'] = array("006600","336600","996600","996600","CC3300","FF0000"); // Green to Red -// $config['graph_colours'] = array("002200","004400","006600","008800","00AA00","00CC00"); // Green -// $config['graph_colours'] = array("220000","440000","660000","880000","AA0000","CC0000"); // Red -// $config['graph_colours'] = array("001122","002244","003366","004488","0055AA","0066CC"); // Blue -// $config['graph_colours'] = array("002233","004466","006699","0088CC","0099FF"); // Sky-Blue -// $config['graph_colours'] = array("110022","330066","440088","6600AA","8800FF"); // Purple -// $config['graph_colours'] = array("002200","004400","006600","008800","00AA00","00AA00","00CC00"); // Forest Greens -// $config['graph_colours']['greens'] = array("112200","224400","336600","448800","66AA00","88FF00"); // Grass Greens -// $config['graph_colours']['greens'] = array("95FFA7","4EFF97","33FF66","336600","224400","112200"); -// $config['graph_colours']['greens'] = array("B7d6A9","8fcb73","50b91d","3ab419","0a8612","034f11"); -// $config['graph_colours']['blues'] = array("b5d7ff","6eb7ff","0064ff","0082ff","0019d5","0016cb","00007d"); // Cold Blues -$config['graph_colours']['mixed'] = array( - 'CC0000', - '008C00', - '4096EE', - '73880A', - 'D01F3C', - '36393D', - 'FF0084', - '91B13C', -); -$config['graph_colours']['oranges'] = array( - 'E43C00', - 'E74B00', - 'EB5B00', - 'EF6A00', - 'F37900', - 'F78800', - 'FB9700', - 'FFA700', -); -$config['graph_colours']['greens'] = array( - 'B6D14B', - '91B13C', - '6D912D', - '48721E', - '24520F', - '003300', -); -$config['graph_colours']['pinks'] = array( - 'D0558F', - 'B34773', - '943A57', - '792C38', - '5C1F1E', - '401F10', -); -$config['graph_colours']['blues'] = array( - 'A0A0E5', - '8080BD', - '606096', - '40406F', - '202048', - '000033', -); -$config['graph_colours']['purples'] = array( - 'CC7CCC', - 'AF63AF', - '934A93', - '773177', - '5B185B', - '3F003F', -); -$config['graph_colours']['default'] = $config['graph_colours']['blues']; - -// Colour values from http://www.sapdesignguild.org/goodies/diagram_guidelines/color_palettes.html -$config['graph_colours']['manycolours'] = array( - "FFF8A3", "FAE16B", "F8D753", "F3C01C", "F0B400", // yellows - "A9CC8F", "82B16A", "5C9746", "3D8128", "1E6C0B", // greens - "B2C8D9", "779DBF", "3E75A7", "205F9A", "00488C", // blues - "BEA37A", "907A52", "7A653E", "63522B", "3D3000", // browns - "F3AA79", "EB8953", "E1662A", "DC5313", "D84000", // oranges - "B5B5A9", "8B8D82", "74796F", "5D645A", "434C43", // greys - "E6A4A5", "D6707B", "C4384F", "BC1C39", "B30023", // pinks -); - -// interleaved purple, pink, green, blue, and orange -$config['graph_colours']['psychedelic'] = array( - 'CC7CCC', 'D0558F', 'B6D14B', 'A0A0E5', 'E43C00', - 'AF63AF', 'B34773', '91B13C', '8080BD', 'E74B00', - '934A93', '943A57', '6D912D', '606096', 'EB5B00', - '773177', '792C38', '48721E', '40406F', 'EF6A00', - '5B185B', '5C1F1E', '24520F', '202048', 'F37900', - '3F003F', '401F10', '003300', '000033', 'F78800', - 'FB9700', 'FFA700' -); - -$config['graph_colours']['mega']=array_merge( - $config['graph_colours']['psychedelic'], - $config['graph_colours']['manycolours'], - $config['graph_colours']['default'], - $config['graph_colours']['mixed'] -); - -// Map colors -$config['network_map_legend'] = array( - '0' => '#008dca', - '5' => '#0092a6', - '10' => '#009782', - '15' => '#009c5f', - '20' => '#00a13b', - '25' => '#00a617', - '30' => '#0bad00', - '35' => '#2fb700', - '40' => '#53c100', - '45' => '#77cc00', - '50' => '#9ad600', - '55' => '#bee000', - '60' => '#e2ea00', - '65' => '#ead600', - '70' => '#e5b200', - '75' => '#e08e00', - '80' => '#db6b00', - '85' => '#d64700', - '90' => '#d12300', - '95' => '#cc0000', - '100' => '#cc0000', - 'di' => [ - 'edge' => '#dddddd88', - 'border' => '#cccccc', - 'node' => '#eeeeee', - ], - 'dn' => [ - 'edge' => '#ff777788', - 'border' => '#ff5555', - 'node' => '#ffdddd', - ] -); - -// Default mini graph time options: -$config['graphs']['mini']['widescreen'] = array( - 'sixhour' => '6 Hours', - 'day' => '24 Hours', - 'twoday' => '48 Hours', - 'week' => 'One Week', - 'twoweek' => 'Two Weeks', - 'month' => 'One Month', - 'twomonth' => 'Two Months', - 'year' => 'One Year', - 'twoyear' => 'Two Years', -); - -$config['graphs']['mini']['normal'] = array( - 'day' => '24 Hours', - 'week' => 'One Week', - 'month' => 'One Month', - 'year' => 'One Year', -); - -$config['graphs']['row']['normal'] = $config['graphs']['mini']['widescreen']; - -// Network Map Items -$config['network_map_items'] = array('xdp','mac'); - -// Network Map Visualization Options -// See http://visjs.org/docs/network/ for description of these options. -$config['network_map_vis_options'] = '{ - layout:{ - randomSeed:2 - }, - "edges": { - arrows: { - to: {enabled: true, scaleFactor:0.5}, - }, - "smooth": { - enabled: false - }, - font: { - size: 14, - color: "red", - face: "sans", - background: "white", - strokeWidth:3, - align: "middle", - strokeWidth: 2 - } - }, - "physics": { - "barnesHut": { - "gravitationalConstant": -2000, - "centralGravity": 0.3, - "springLength": 200, - "springConstant": 0.04, - "damping": 0.09, - "avoidOverlap": 1 - }, - - "forceAtlas2Based": { - "gravitationalConstant": -50, - "centralGravity": 0.01, - "springLength": 200, - "springConstant": 0.08, - "damping": 0.4, - "avoidOverlap": 1 - }, - - "repulsion": { - "centralGravity": 0.2, - "springLength": 250, - "springConstant": 0.2, - "nodeDistance": 200, - "damping": 0.07 - }, - - "hierarchicalRepulsion": { - "nodeDistance": 300, - "centralGravity": 0.2, - "springLength": 300, - "springConstant": 0.2, - "damping": 0.07 - }, - - "maxVelocity": 50, - "minVelocity": 0.4, - "solver": "hierarchicalRepulsion", - "stabilization": { - "enabled": true, - "iterations": 1000, - "updateInterval": 100, - "onlyDynamicEdges": false, - "fit": true - }, - - "timestep": 0.4, - } -}'; - -// Device page options -$config['show_overview_tab'] = true; - -$config['cpu_details_overview'] = false; //By default show only average cpu in device overview - -// The device overview page options -$config['overview_show_sysDescr'] = true; - -// Enable checking of version in discovery -// Poller/Discovery Modules -$config['enable_bgp'] = 1; -// Enable BGP session collection and display -$config['enable_syslog'] = 0; -// Enable Syslog -$config['enable_inventory'] = 1; -// Enable Inventory -$config['enable_pseudowires'] = 1; -// Enable Pseudowires -$config['enable_vrfs'] = 1; -// Enable VRFs -$config['enable_vrf_lite_cisco'] = 1; -// Enable routes for VRF lite cisco -$config['enable_sla'] = 0; -// Enable Cisco SLA collection and display -// Ports extension modules -$config['port_descr_parser'] = 'includes/port-descr-parser.inc.php'; -// Parse port descriptions into fields -$config['enable_ports_etherlike'] = 0; -// Enable Polling EtherLike-MIB (doubles interface processing time) -$config['enable_ports_junoseatmvp'] = 0; -// Enable JunOSe ATM VC Discovery/Poller -$config['enable_ports_adsl'] = 1; -// Enable ADSL-LINE-MIB -$config['enable_ports_poe'] = 0; -// Enable PoE stats collection -// Billing System Configuration -$config['enable_billing'] = 0; -// Enable Billing -$config['billing']['customer_autoadd'] = 0; -// Enable Auto-add bill per customer -$config['billing']['circuit_autoadd'] = 0; -// Enable Auto-add bill per circuit_id -$config['billing']['bill_autoadd'] = 0; -// Enable Auto-add bill per bill_id -$config['billing']['base'] = 1000; -// Set the base to divider bytes to kB, MB, GB ,... (1000|1024) -// External Integration -// $config['rancid_configs'][] = '/var/lib/rancid/network/configs/'; -$config['rancid_repo_type'] = 'svn'; -$config['rancid_ignorecomments'] = 0; -// Ignore lines starting with # -// $config['collectd_dir'] = '/var/lib/collectd/rrd'; -// $config['smokeping']['dir'] = "/var/lib/smokeping/"; -$config['smokeping']['pings'] = 20; -// $config['oxidized']['enabled'] = FALSE;//Set to TRUE -// $config['oxidized']['url'] = 'http://127.0.0.1:8888';// Set the Oxidized rest URL -// $config['oxidized']['reload_nodes'] = FALSE;//Set to TRUE, check documentation - -// Location Mapping -// Use this feature to map ugly locations to pretty locations -// config['location_map']['Under the Sink'] = "Under The Sink, The Office, London, UK"; -// Ignores & Allows -// Has to be lowercase -$config['bad_if'][] = 'voip-null'; -$config['bad_if'][] = 'virtual-'; -$config['bad_if'][] = 'unrouted'; -$config['bad_if'][] = 'eobc'; -$config['bad_if'][] = 'lp0'; -$config['bad_if'][] = '-atm'; -$config['bad_if'][] = 'faith0'; -$config['bad_if'][] = 'container'; -$config['bad_if'][] = 'async'; -$config['bad_if'][] = 'plip'; -$config['bad_if'][] = '-physical'; -$config['bad_if'][] = 'container'; -$config['bad_if'][] = 'unrouted'; -$config['bad_if'][] = 'bluetooth'; -$config['bad_if'][] = 'isatap'; -$config['bad_if'][] = 'ras'; -$config['bad_if'][] = 'qos'; -$config['bad_if'][] = 'span rp'; -$config['bad_if'][] = 'span sp'; -$config['bad_if'][] = 'sslvpn'; -$config['bad_if'][] = 'pppoe-'; -$config['bad_if'][] = 'irtual'; -// $config['bad_if'][] = "control plane"; // Example for cisco control plane -// Ignore ports based on ifType. Case-sensitive. -$config['bad_iftype'][] = 'voiceEncap'; -$config['bad_iftype'][] = 'voiceFXO'; -$config['bad_iftype'][] = 'voiceFXS'; -$config['bad_iftype'][] = 'voiceOverAtm'; -$config['bad_iftype'][] = 'voiceOverFrameRelay'; -$config['bad_iftype'][] = 'voiceOverIp'; -$config['bad_iftype'][] = 'ds0'; -$config['bad_iftype'][] = 'ds1'; -$config['bad_iftype'][] = 'ds3'; -// $config['bad_iftype'][] = "isdn"; #show signaling traffic -// $config['bad_iftype'][] = "lapd"; #show signaling traffic -$config['bad_iftype'][] = 'sonet'; -$config['bad_iftype'][] = 'atmSubInterface'; -$config['bad_iftype'][] = 'aal5'; -$config['bad_iftype'][] = 'shdsl'; -$config['bad_iftype'][] = 'mpls'; - -$config['bad_if_regexp'][] = '/^ng[0-9]+$/'; -$config['bad_if_regexp'][] = '/^sl[0-9]/'; - -// Rewrite Interfaces -$config['rewrite_if_regexp']['/^cpu interface/'] = 'Mgmt'; - -$config['ignore_mount_removable'] = 1; -// Ignore removable disk storage -$config['ignore_mount_network'] = 1; -// Ignore network mounted storage -$config['ignore_mount_optical'] = 1; -// Ignore mounted optical discs -// Per-device interface graph filters -$config['device_traffic_iftype'][] = '/loopback/'; -$config['device_traffic_iftype'][] = '/tunnel/'; -$config['device_traffic_iftype'][] = '/virtual/'; -$config['device_traffic_iftype'][] = '/mpls/'; -$config['device_traffic_iftype'][] = '/ieee8023adLag/'; -$config['device_traffic_iftype'][] = '/l2vlan/'; -$config['device_traffic_iftype'][] = '/ppp/'; - -$config['device_traffic_descr'][] = '/loopback/'; -$config['device_traffic_descr'][] = '/vlan/'; -$config['device_traffic_descr'][] = '/tunnel/'; -$config['device_traffic_descr'][] = '/bond/'; -$config['device_traffic_descr'][] = '/null/'; -$config['device_traffic_descr'][] = '/dummy/'; - -// IRC Bot configuration -$config['irc_host'] = ''; -$config['irc_port'] = ''; -$config['irc_maxretry'] = 3; -$config['irc_nick'] = $config['project_name']; -$config['irc_chan'][] = '##'.$config['project_id']; -$config['irc_pass'] = ''; -$config['irc_external'] = ''; -$config['irc_authtime'] = 3; -$config['irc_debug'] = false; -$config['irc_alert'] = false; -$config['irc_alert_utf8'] = false; -$config['irc_alert_short'] = false; -$config['irc_ctcp'] = false; -$config['irc_ctcp_version'] = "LibreNMS IRCbot. https://www.librenms.org/"; - -// Authentication -$config['allow_unauth_graphs'] = false; -// Allow graphs to be viewed by anyone -$config['allow_unauth_graphs_cidr'] = array(); -// Allow graphs to be viewed without authorisation from certain IP ranges -$config['auth_mechanism'] = 'mysql'; -// Available mechanisms: mysql (default), ldap, http-auth -$config['auth_remember'] = '30'; -// This is how long in days to remember users who select remember me -// LDAP Authentication -$config['auth_ldap_version'] = 3; -// v2 or v3 -$config['auth_ldap_server'] = 'ldap.example.com'; -$config['auth_ldap_port'] = 389; -$config['auth_ldap_prefix'] = 'uid='; -$config['auth_ldap_suffix'] = ',ou=People,dc=example,dc=com'; -$config['auth_ldap_group'] = 'cn=groupname,ou=groups,dc=example,dc=com'; -$config['auth_ldap_uid_attribute'] = 'uidnumber'; - -$config['auth_ldap_attr']['uid'] = "uid"; -$config['auth_ldap_groupbase'] = 'ou=group,dc=example,dc=com'; -$config['auth_ldap_groups']['admin']['level'] = 10; -$config['auth_ldap_groups']['pfy']['level'] = 7; -$config['auth_ldap_groups']['support']['level'] = 1; -$config['auth_ldap_groupmemberattr'] = 'memberUid'; -$config['auth_ldap_emailattr'] = 'mail'; -$config['auth_ldap_cache_ttl'] = 300; -// How long in seconds should ldap* module cache user information in $_SESSION -$config['auth_ldap_userdn'] = false; -// Uses a users full DN as the value of the member attribute in a group (instead of member: username, it’s member: uid=username,ou=groups,dc=domain,dc=com). - -// Active Directory Authentication -$config['auth_ad_user_filter'] = "(objectclass=user)"; -$config['auth_ad_group_filter'] = "(objectclass=group)"; - -// Single sign-on defaults -$config['sso']['create_users'] = true; -$config['sso']['update_users'] = true; -$config['sso']['user_attr'] = 'REMOTE_USER'; - -// Sensors -$config['allow_entity_sensor']['amperes'] = 1; -$config['allow_entity_sensor']['celsius'] = 1; -$config['allow_entity_sensor']['dBm'] = 1; -$config['allow_entity_sensor']['voltsDC'] = 1; -$config['allow_entity_sensor']['voltsAC'] = 1; -$config['allow_entity_sensor']['watts'] = 1; -$config['allow_entity_sensor']['truthvalue'] = 1; -$config['allow_entity_sensor']['specialEnum'] = 1; - -// Filesystems -$config['ignore_mount'][] = '/kern'; -$config['ignore_mount'][] = '/mnt/cdrom'; -$config['ignore_mount'][] = '/proc'; -$config['ignore_mount'][] = '/dev'; -$config['ignore_mount'][] = '/compat/linux/proc'; -$config['ignore_mount'][] = '/compat/linux/sys'; - -$config['ignore_mount_string'][] = 'packages'; -$config['ignore_mount_string'][] = 'devfs'; -$config['ignore_mount_string'][] = 'procfs'; -$config['ignore_mount_string'][] = 'linprocfs'; -$config['ignore_mount_string'][] = 'linsysfs'; -$config['ignore_mount_string'][] = 'UMA'; -$config['ignore_mount_string'][] = 'MALLOC'; - -$config['ignore_mount_regexp'][] = '/on: \/packages/'; -$config['ignore_mount_regexp'][] = '/on: \/dev/'; -$config['ignore_mount_regexp'][] = '/on: \/proc/'; -$config['ignore_mount_regexp'][] = '/on: \/junos^/'; -$config['ignore_mount_regexp'][] = '/on: \/junos\/dev/'; -$config['ignore_mount_regexp'][] = '/on: \/jail\/dev/'; -$config['ignore_mount_regexp'][] = '/^(dev|proc)fs/'; -$config['ignore_mount_regexp'][] = '/^\/dev\/md0/'; -$config['ignore_mount_regexp'][] = '/^\/var\/dhcpd\/dev/'; -$config['ignore_mount_regexp'][] = '/UMA/'; -$config['ignore_mount_regexp'][] = "/^\/Volumes\/OS X Base System/"; - -$config['ignore_mount_removable'] = 1; -// Ignore removable disk storage -$config['ignore_mount_network'] = 1; -// Ignore network mounted storage -// Syslog Settings -// Entries older than this will be removed -$config['syslog_filter'][] = 'last message repeated'; -$config['syslog_filter'][] = 'Connection from UDP: ['; -$config['syslog_filter'][] = 'ipSystemStatsTable node ipSystemStatsOutFragOKs not implemented'; -$config['syslog_filter'][] = 'diskio.c'; -// Ignore some crappy stuff from SNMP daemon -// Virtualization -$config['enable_libvirt'] = 0; -// Enable Libvirt VM support -$config['libvirt_protocols'] = array( - 'qemu+ssh', - 'xen+ssh', -); - -// Nicer labels for the SLA types -$config['sla_type_labels']['echo'] = 'ICMP ping'; -$config['sla_type_labels']['pathEcho'] = 'Path ICMP ping'; -$config['sla_type_labels']['fileIO'] = 'File I/O'; -$config['sla_type_labels']['script'] = 'Script'; -$config['sla_type_labels']['udpEcho'] = 'UDP ping'; -$config['sla_type_labels']['tcpConnect'] = 'TCP connect'; -$config['sla_type_labels']['http'] = 'HTTP'; -$config['sla_type_labels']['dns'] = 'DNS'; -$config['sla_type_labels']['jitter'] = 'Jitter'; -$config['sla_type_labels']['dlsw'] = 'DLSW'; -$config['sla_type_labels']['dhcp'] = 'DHCP'; -$config['sla_type_labels']['ftp'] = 'FTP'; -$config['sla_type_labels']['voip'] = 'VoIP'; -$config['sla_type_labels']['rtp'] = 'RTP'; -$config['sla_type_labels']['lspGroup'] = 'LSP group'; -$config['sla_type_labels']['icmpjitter'] = 'ICMP jitter'; -$config['sla_type_labels']['lspPing'] = 'LSP ping'; -$config['sla_type_labels']['lspTrace'] = 'LSP trace'; -$config['sla_type_labels']['ethernetPing'] = 'Ethernet ping'; -$config['sla_type_labels']['ethernetJitter'] = 'Ethernet jitter'; -$config['sla_type_labels']['lspPingPseudowire'] = 'LSP Pseudowire ping'; - -// Warnings on front page -$config['warn']['ifdown'] = true; -// Show down interfaces -// List of poller modules. Need to be in the array to be -// considered for execution. -$config['poller_modules']['unix-agent'] = false; -$config['poller_modules']['os'] = true; -$config['poller_modules']['ipmi'] = true; -$config['poller_modules']['sensors'] = true; -$config['poller_modules']['processors'] = true; -$config['poller_modules']['mempools'] = true; -$config['poller_modules']['storage'] = true; -$config['poller_modules']['netstats'] = true; -$config['poller_modules']['hr-mib'] = true; -$config['poller_modules']['ucd-mib'] = true; -$config['poller_modules']['ipSystemStats'] = true; -$config['poller_modules']['ports'] = true; -$config['poller_modules']['bgp-peers'] = true; -$config['poller_modules']['junose-atm-vp'] = false; -$config['poller_modules']['toner'] = false; -$config['poller_modules']['ucd-diskio'] = true; -$config['poller_modules']['wifi'] = false; -$config['poller_modules']['wireless'] = true; -$config['poller_modules']['ospf'] = true; -$config['poller_modules']['cisco-ipsec-flow-monitor'] = false; -$config['poller_modules']['cisco-remote-access-monitor'] = false; -$config['poller_modules']['cisco-cef'] = false; -$config['poller_modules']['cisco-sla'] = false; -$config['poller_modules']['cisco-mac-accounting'] = false; -$config['poller_modules']['cipsec-tunnels'] = false; -$config['poller_modules']['cisco-ace-loadbalancer'] = false; -$config['poller_modules']['cisco-ace-serverfarms'] = false; -$config['poller_modules']['cisco-asa-firewall'] = false; -$config['poller_modules']['cisco-voice'] = false; -$config['poller_modules']['cisco-cbqos'] = false; -$config['poller_modules']['cisco-otv'] = false; -$config['poller_modules']['cisco-qfp'] = false; -$config['poller_modules']['cisco-vpdn'] = false; -$config['poller_modules']['nac'] = false; -$config['poller_modules']['netscaler-vsvr'] = false; -$config['poller_modules']['aruba-controller'] = false; -$config['poller_modules']['entity-physical'] = true; -$config['poller_modules']['entity-state'] = false; -$config['poller_modules']['applications'] = true; -$config['poller_modules']['mib'] = false; -$config['poller_modules']['stp'] = true; -$config['poller_modules']['ntp'] = true; -$config['poller_modules']['loadbalancers'] = false; -$config['poller_modules']['mef'] = false; -$config['poller_modules']['mpls'] = true; - -// List of discovery modules. Need to be in this array to be -// considered for execution. -$config['discovery_modules']['os'] = true; -$config['discovery_modules']['ports'] = true; -$config['discovery_modules']['ports-stack'] = true; -$config['discovery_modules']['entity-physical'] = true; -$config['discovery_modules']['entity-state'] = false; -$config['discovery_modules']['processors'] = true; -$config['discovery_modules']['mempools'] = true; -$config['discovery_modules']['cisco-vrf-lite'] = true; -$config['discovery_modules']['cisco-mac-accounting'] = false; -$config['discovery_modules']['cisco-pw'] = false; -$config['discovery_modules']['vrf'] = false; -$config['discovery_modules']['cisco-cef'] = false; -$config['discovery_modules']['cisco-sla'] = false; -$config['discovery_modules']['cisco-cbqos'] = false; -$config['discovery_modules']['cisco-otv'] = false; -$config['discovery_modules']['cisco-qfp'] = false; -$config['discovery_modules']['ipv4-addresses'] = true; -$config['discovery_modules']['ipv6-addresses'] = true; -$config['discovery_modules']['route'] = false; -$config['discovery_modules']['sensors'] = true; -$config['discovery_modules']['storage'] = true; -$config['discovery_modules']['hr-device'] = true; -$config['discovery_modules']['discovery-protocols'] = true; -$config['discovery_modules']['arp-table'] = true; -$config['discovery_modules']['discovery-arp'] = false; -$config['discovery_modules']['junose-atm-vp'] = false; -$config['discovery_modules']['bgp-peers'] = true; -$config['discovery_modules']['vlans'] = true; -$config['discovery_modules']['vmware-vminfo'] = false; -$config['discovery_modules']['libvirt-vminfo'] = false; -$config['discovery_modules']['toner'] = false; -$config['discovery_modules']['ucd-diskio'] = true; -$config['discovery_modules']['applications'] = false; -$config['discovery_modules']['services'] = true; -$config['discovery_modules']['stp'] = true; -$config['discovery_modules']['ntp'] = true; -$config['discovery_modules']['loadbalancers'] = false; -$config['discovery_modules']['mef'] = false; -$config['discovery_modules']['wireless'] = true; -$config['discovery_modules']['fdb-table'] = true; -$config['discovery_modules']['mpls'] = true; -// Enable daily updates -$config['update'] = 1; - -// Sets automatic sensor limits when no values are returned by the device. -$config['sensors']['guess_limits'] = true; - -// Purge syslog and eventlog -$config['syslog_purge'] = 30; -// Number in days of how long to keep syslog entries for. -$config['eventlog_purge'] = 30; -// Number in days of how long to keep eventlog entries for. -$config['authlog_purge'] = 30; -// Number in days of how long to keep authlog entries for. -$config['perf_times_purge'] = 30; -// Number in days of how long to keep performace polling stats entries for. -$config['device_perf_purge'] = 7; -// Number in days of how long to keep device performance data for. -$config['alert_log_purge'] = 365; -// Number in days of how long to keep alert log data for. -$config['ports_fdb_purge'] = 10; -// Number in days of how long to keep fdb table data for. - -// Date format for PHP date()s -$config['dateformat']['long'] = 'r'; -// RFC2822 style -$config['dateformat']['compact'] = 'Y-m-d H:i:s'; -$config['dateformat']['byminute'] = 'Y-m-d H:i'; -$config['dateformat']['time'] = 'H:i:s'; - -// Date format for MySQL DATE_FORMAT -$config['dateformat']['mysql']['compact'] = '%Y-%m-%d %H:%i:%s'; -$config['dateformat']['mysql']['date'] = '%Y-%m-%d'; -$config['dateformat']['mysql']['time'] = '%H:%i:%s'; - -$config['enable_clear_discovery'] = 1; -// Set this to 0 if you want to disable the web option to rediscover devices -$config['force_ip_to_sysname'] = false;// Set to true if you want to use sysName in place of IPs -$config['force_hostname_to_sysname'] = false;// Set to true if you want to use sysNAme in place of a hostname, ie Dynamic DNS - -// Allow duplicate devices by sysName -$config['allow_duplicate_sysName'] = false;// Set to true if you want to allow duplicate sysName's - -$config['enable_port_relationship'] = true; -// Set this to false to not display neighbour relationships for ports -$config['enable_footer'] = false; -// Set this to true if you want to enable the footer in the web interface -$config['api_demo'] = 0; -// Set this to 1 if you want to disable some untrusting features for the API -// Distributed Poller-Settings -$config['distributed_poller'] = false; -$config['distributed_poller_name'] = php_uname('n'); -$config['distributed_poller_group'] = 0; -$config['distributed_poller_memcached_host'] = 'example.net'; -$config['distributed_poller_memcached_port'] = '11211'; - -// BETA polller service config options. -// See https://docs.librenms.org/Extensions/Poller-Service/ for more information -//$config['service_poller_workers'] = 24; # Processes spawned for polling -//$config['service_services_workers'] = 8; # Processes spawned for service polling -//$config['service_discovery_workers'] = 16; # Processes spawned for discovery -// Optional BETA polller service Settings -//$config['service_poller_frequency'] = 300; # Seconds between polling attempts -//$config['service_services_frequency'] = 300; # Seconds between service polling attempts -//$config['service_discovery_frequency'] = 21600; # Seconds between discovery runs -//$config['service_billing_frequency'] = 300; # Seconds between billing calculations -//$config['service_billing_calculate_frequency'] = 60; # Billing interval -//$config['service_poller_down_retry'] = 60; # Seconds between failed polling attempts -//$config['service_loglevel'] = 'INFO'; # Must be one of 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' - -// Stats callback system -$config['callback_post'] = 'https://stats.librenms.org/log.php'; -$config['callback_clear'] = 'https://stats.librenms.org/clear.php'; - -// Stat graphs -$config['alert_graph_date_format'] = '%Y-%m-%d %H:%i'; - -// IPMI type -$config['ipmi']['type'][] = 'lanplus'; -$config['ipmi']['type'][] = 'lan'; -$config['ipmi']['type'][] = 'imb'; -$config['ipmi']['type'][] = 'open'; - -// Options needed for dynamic config - do NOT edit -$config['email_backend_options'] = array( - 'mail', - 'sendmail', - 'smtp', -); -$config['email_smtp_secure_options'] = array( - '', - 'tls', - 'ssl', -); - -// Unix-agent poller module config settings -$config['unix-agent-connection-time-out'] = 10; -// seconds -$config['unix-agent-read-time-out'] = 10; -// seconds - -// Lat / Lon support for maps -#$config['geoloc']['latlng'] = true; // True to enable translation of location to latlng co-ordinates -#$config['geoloc']['engine'] = 'google'; -$config['map']['engine'] = 'leaflet'; -$config['mapael']['default_map'] = 'maps/world_countries.js'; -$config['leaflet']['default_lat'] = '51.4800'; -$config['leaflet']['default_lng'] = '0'; -$config['leaflet']['default_zoom'] = 2; -$config['leaflet']['tile_url'] = "{s}.tile.openstreetmap.org"; - -// General GUI options -$config['gui']['network-map']['style'] = 'new';//old is also valid - -// Show errored ports in the summary table on the dashboard -$config['summary_errors'] = 0; - -// Default notifications Feed -$config['notifications']['LibreNMS'] = 'http://www.librenms.org/notifications.rss'; -$config['notifications']['local'] = 'misc/notifications.rss'; - -// Update channel (Can be 'master' or 'release') -$config['update_channel'] = 'master'; - -// Default port association mode -$config['default_port_association_mode'] = 'ifIndex'; -// Ignore ports which can't be mapped using a devices port_association_mode -// See include/polling/ports.inc.php for a lenghty explanation. -$config['ignore_unmapable_port'] = false; - -// InfluxDB default configuration -$config['influxdb']['timeout'] = 0; -$config['influxdb']['verifySSL'] = false; - -// Prometheus Push Default configuration -$config['prometheus']['job'] = 'librenms'; - -// Xirrus - Disable station/client polling if true as it may take a long time on larger/heavily used APs. -$config['xirrus_disable_stations'] = false; - -// Graphite default port -$config['graphite']['port'] = 2003; - -// API config -$config['api']['cors']['enabled'] = false; -$config['api']['cors']['origin'] = '*'; -$config['api']['cors']['maxage'] = '86400'; -$config['api']['cors']['allowmethods'] = array('POST', 'GET', 'PUT', 'DELETE', 'PATCH'); -$config['api']['cors']['allowheaders'] = array('Origin', 'X-Requested-With', 'Content-Type', 'Accept', 'X-Auth-Token'); - -// Disk -$config['bad_disk_regexp'] = []; - -// Snmptrap logging: none, unhandled, all -$config['snmptraps']['eventlog'] = 'unhandled'; diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php deleted file mode 100644 index 47db476852..0000000000 --- a/includes/definitions.inc.php +++ /dev/null @@ -1,632 +0,0 @@ - 'analyzer', 'order' => 0, 'descr' => 'Log Rate']; - -//PAN OS Graphs -$config['graph_types']['device']['panos_sessions']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions']['order'] = '0'; -$config['graph_types']['device']['panos_sessions']['descr'] = 'Active Sessions'; -$config['graph_types']['device']['panos_sessions_tcp']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions_tcp']['order'] = '0'; -$config['graph_types']['device']['panos_sessions_tcp']['descr'] = 'Active TCP Sessions'; -$config['graph_types']['device']['panos_sessions_udp']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions_udp']['order'] = '0'; -$config['graph_types']['device']['panos_sessions_udp']['descr'] = 'Active UDP Sessions'; -$config['graph_types']['device']['panos_sessions_icmp']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions_icmp']['order'] = '0'; -$config['graph_types']['device']['panos_sessions_icmp']['descr'] = 'Active ICMP Sessions'; -$config['graph_types']['device']['panos_sessions_ssl']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions_ssl']['order'] = '0'; -$config['graph_types']['device']['panos_sessions_ssl']['descr'] = 'Active SSL Proxy Sessions'; -$config['graph_types']['device']['panos_sessions_sslutil']['section'] = 'firewall'; -$config['graph_types']['device']['panos_sessions_sslutil']['order'] = '0'; -$config['graph_types']['device']['panos_sessions_sslutil']['descr'] = 'Active SSL Proxy Utilization'; -$config['graph_types']['device']['panos_activetunnels'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Active GlobalProtect Tunnels']; - -//PF Graphs -$config['graph_types']['device']['pf_states']['section'] = 'firewall'; -$config['graph_types']['device']['pf_states']['order'] = '1'; -$config['graph_types']['device']['pf_states']['descr'] = 'States'; -$config['graph_types']['device']['pf_searches']['section'] = 'firewall'; -$config['graph_types']['device']['pf_searches']['order'] = '2'; -$config['graph_types']['device']['pf_searches']['descr'] = 'Searches'; -$config['graph_types']['device']['pf_inserts']['section'] = 'firewall'; -$config['graph_types']['device']['pf_inserts']['order'] = '3'; -$config['graph_types']['device']['pf_inserts']['descr'] = 'Inserts'; -$config['graph_types']['device']['pf_removals']['section'] = 'firewall'; -$config['graph_types']['device']['pf_removals']['order'] = '4'; -$config['graph_types']['device']['pf_removals']['descr'] = 'Removals'; -$config['graph_types']['device']['pf_matches']['section'] = 'firewall'; -$config['graph_types']['device']['pf_matches']['order'] = '5'; -$config['graph_types']['device']['pf_matches']['descr'] = 'Matches'; -$config['graph_types']['device']['pf_badoffset']['section'] = 'firewall'; -$config['graph_types']['device']['pf_badoffset']['order'] = '6'; -$config['graph_types']['device']['pf_badoffset']['descr'] = 'BadOffset'; -$config['graph_types']['device']['pf_fragmented']['section'] = 'firewall'; -$config['graph_types']['device']['pf_fragmented']['order'] = '7'; -$config['graph_types']['device']['pf_fragmented']['descr'] = 'Fragmented'; -$config['graph_types']['device']['pf_short']['section'] = 'firewall'; -$config['graph_types']['device']['pf_short']['order'] = '8'; -$config['graph_types']['device']['pf_short']['descr'] = 'Short'; -$config['graph_types']['device']['pf_normalized']['section'] = 'firewall'; -$config['graph_types']['device']['pf_normalized']['order'] = '9'; -$config['graph_types']['device']['pf_normalized']['descr'] = 'Normalized'; -$config['graph_types']['device']['pf_memdropped']['section'] = 'firewall'; -$config['graph_types']['device']['pf_memdropped']['order'] = '10'; -$config['graph_types']['device']['pf_memdropped']['descr'] = 'MemDropped'; - -//Pulse Secure Graphs -$config['graph_types']['device']['pulse_sessions'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Active Sessions']; -$config['graph_types']['device']['pulse_users'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Active Users']; - -// Infoblox dns/dhcp Graphs -$config['graph_types']['device']['ib_dns_dyn_updates']['section'] = 'dns'; -$config['graph_types']['device']['ib_dns_dyn_updates']['order'] = '0'; -$config['graph_types']['device']['ib_dns_dyn_updates']['descr'] = 'DNS dynamic updates'; -$config['graph_types']['device']['ib_dns_request_return_codes']['section'] = 'dns'; -$config['graph_types']['device']['ib_dns_request_return_codes']['order'] = '0'; -$config['graph_types']['device']['ib_dns_request_return_codes']['descr'] = 'DNS request return codes'; -$config['graph_types']['device']['ib_dns_performance']['section'] = 'dns'; -$config['graph_types']['device']['ib_dns_performance']['order'] = '0'; -$config['graph_types']['device']['ib_dns_performance']['descr'] = 'DNS performance'; -$config['graph_types']['device']['ib_dhcp_messages']['section'] = 'dhcp'; -$config['graph_types']['device']['ib_dhcp_messages']['order'] = '0'; -$config['graph_types']['device']['ib_dhcp_messages']['descr'] = 'DHCP messages'; - -// Cisco WAAS Optimized TCP Connections -$config['graph_types']['device']['waas_cwotfostatsactiveoptconn'] = ['section' => 'graphs', 'order' => 0, 'descr' => 'Optimized TCP Connections']; - -// SonicWALL Sessions -$config['graph_types']['device']['sonicwall_sessions'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Active Sessions']; - -$config['graph_types']['device']['bits']['section'] = 'netstats'; -$config['graph_types']['device']['bits']['order'] = '0'; -$config['graph_types']['device']['bits']['descr'] = 'Total Traffic'; -$config['graph_types']['device']['ipsystemstats_ipv4']['section'] = 'netstats'; -$config['graph_types']['device']['ipsystemstats_ipv4']['order'] = '0'; -$config['graph_types']['device']['ipsystemstats_ipv4']['descr'] = 'IPv4 Packet Statistics'; -$config['graph_types']['device']['ipsystemstats_ipv4_frag']['section'] = 'netstats'; -$config['graph_types']['device']['ipsystemstats_ipv4_frag']['order'] = '0'; -$config['graph_types']['device']['ipsystemstats_ipv4_frag']['descr'] = 'IPv4 Fragmentation Statistics'; -$config['graph_types']['device']['ipsystemstats_ipv6']['section'] = 'netstats'; -$config['graph_types']['device']['ipsystemstats_ipv6']['order'] = '0'; -$config['graph_types']['device']['ipsystemstats_ipv6']['descr'] = 'IPv6 Packet Statistics'; -$config['graph_types']['device']['ipsystemstats_ipv6_frag']['section'] = 'netstats'; -$config['graph_types']['device']['ipsystemstats_ipv6_frag']['order'] = '0'; -$config['graph_types']['device']['ipsystemstats_ipv6_frag']['descr'] = 'IPv6 Fragmentation Statistics'; -$config['graph_types']['device']['netstat_icmp_info']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_icmp_info']['order'] = '0'; -$config['graph_types']['device']['netstat_icmp_info']['descr'] = 'ICMP Informational Statistics'; -$config['graph_types']['device']['netstat_icmp']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_icmp']['order'] = '0'; -$config['graph_types']['device']['netstat_icmp']['descr'] = 'ICMP Statistics'; -$config['graph_types']['device']['netstat_ip']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_ip']['order'] = '0'; -$config['graph_types']['device']['netstat_ip']['descr'] = 'IP Statistics'; -$config['graph_types']['device']['netstat_ip_frag']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_ip_frag']['order'] = '0'; -$config['graph_types']['device']['netstat_ip_frag']['descr'] = 'IP Fragmentation Statistics'; -$config['graph_types']['device']['netstat_snmp']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_snmp']['order'] = '0'; -$config['graph_types']['device']['netstat_snmp']['descr'] = 'SNMP Statistics'; -$config['graph_types']['device']['netstat_snmp_pkt']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_snmp_pkt']['order'] = '0'; -$config['graph_types']['device']['netstat_snmp_pkt']['descr'] = 'SNMP Packet Type Statistics'; - -$config['graph_types']['device']['netstat_ip_forward']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_ip_forward']['order'] = '0'; -$config['graph_types']['device']['netstat_ip_forward']['descr'] = 'IP Forwarding Statistics'; - -$config['graph_types']['device']['netstat_tcp']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_tcp']['order'] = '0'; -$config['graph_types']['device']['netstat_tcp']['descr'] = 'TCP Statistics'; -$config['graph_types']['device']['netstat_udp']['section'] = 'netstats'; -$config['graph_types']['device']['netstat_udp']['order'] = '0'; -$config['graph_types']['device']['netstat_udp']['descr'] = 'UDP Statistics'; - -$config['graph_types']['device']['fdb_count']['section'] = 'system'; -$config['graph_types']['device']['fdb_count']['order'] = '0'; -$config['graph_types']['device']['fdb_count']['descr'] = 'MAC Addresses Learnt'; -$config['graph_types']['device']['hr_processes']['section'] = 'system'; -$config['graph_types']['device']['hr_processes']['order'] = '0'; -$config['graph_types']['device']['hr_processes']['descr'] = 'Running Processes'; -$config['graph_types']['device']['hr_users']['section'] = 'system'; -$config['graph_types']['device']['hr_users']['order'] = '0'; -$config['graph_types']['device']['hr_users']['descr'] = 'Users Logged In'; -$config['graph_types']['device']['mempool']['section'] = 'system'; -$config['graph_types']['device']['mempool']['order'] = '0'; -$config['graph_types']['device']['mempool']['descr'] = 'Memory Pool Usage'; -$config['graph_types']['device']['processor']['section'] = 'system'; -$config['graph_types']['device']['processor']['order'] = '0'; -$config['graph_types']['device']['processor']['descr'] = 'Processor Usage'; -$config['graph_types']['device']['storage']['section'] = 'system'; -$config['graph_types']['device']['storage']['order'] = '0'; -$config['graph_types']['device']['storage']['descr'] = 'Filesystem Usage'; -$config['graph_types']['device']['temperature']['section'] = 'system'; -$config['graph_types']['device']['temperature']['order'] = '0'; -$config['graph_types']['device']['temperature']['descr'] = 'temperature'; -$config['graph_types']['device']['charge']['section'] = 'system'; -$config['graph_types']['device']['charge']['order'] = '0'; -$config['graph_types']['device']['charge']['descr'] = 'Battery Charge'; -$config['graph_types']['device']['ucd_cpu']['section'] = 'system'; -$config['graph_types']['device']['ucd_cpu']['order'] = '0'; -$config['graph_types']['device']['ucd_cpu']['descr'] = 'Detailed Processor Usage'; -$config['graph_types']['device']['ucd_load']['section'] = 'system'; -$config['graph_types']['device']['ucd_load']['order'] = '0'; -$config['graph_types']['device']['ucd_load']['descr'] = 'Load Averages'; -$config['graph_types']['device']['ucd_memory']['section'] = 'system'; -$config['graph_types']['device']['ucd_memory']['order'] = '0'; -$config['graph_types']['device']['ucd_memory']['descr'] = 'Detailed Memory Usage'; -$config['graph_types']['device']['ucd_swap_io']['section'] = 'system'; -$config['graph_types']['device']['ucd_swap_io']['order'] = '0'; -$config['graph_types']['device']['ucd_swap_io']['descr'] = 'Swap I/O Activity'; -$config['graph_types']['device']['ucd_io']['section'] = 'system'; -$config['graph_types']['device']['ucd_io']['order'] = '0'; -$config['graph_types']['device']['ucd_io']['descr'] = 'System I/O Activity'; -$config['graph_types']['device']['ucd_contexts']['section'] = 'system'; -$config['graph_types']['device']['ucd_contexts']['order'] = '0'; -$config['graph_types']['device']['ucd_contexts']['descr'] = 'Context Switches'; -$config['graph_types']['device']['ucd_interrupts']['section'] = 'system'; -$config['graph_types']['device']['ucd_interrupts']['order'] = '0'; -$config['graph_types']['device']['ucd_interrupts']['descr'] = 'Interrupts'; -$config['graph_types']['device']['uptime']['section'] = 'system'; -$config['graph_types']['device']['uptime']['order'] = '0'; -$config['graph_types']['device']['uptime']['descr'] = 'System Uptime'; -$config['graph_types']['device']['poller_perf']['section'] = 'poller'; -$config['graph_types']['device']['poller_perf']['order'] = '0'; -$config['graph_types']['device']['poller_perf']['descr'] = 'Poller Time'; -$config['graph_types']['device']['ping_perf']['section'] = 'poller'; -$config['graph_types']['device']['ping_perf']['order'] = '0'; -$config['graph_types']['device']['ping_perf']['descr'] = 'Ping Response'; -$config['graph_types']['device']['poller_modules_perf']['section'] = 'poller'; -$config['graph_types']['device']['poller_modules_perf']['order'] = '0'; -$config['graph_types']['device']['poller_modules_perf']['descr'] = 'Poller Modules Performance'; - -$config['graph_types']['device']['vpdn_sessions_l2tp']['section'] = 'vpdn'; -$config['graph_types']['device']['vpdn_sessions_l2tp']['order'] = '0'; -$config['graph_types']['device']['vpdn_sessions_l2tp']['descr'] = 'VPDN L2TP Sessions'; - -$config['graph_types']['device']['vpdn_tunnels_l2tp']['section'] = 'vpdn'; -$config['graph_types']['device']['vpdn_tunnels_l2tp']['order'] = '0'; -$config['graph_types']['device']['vpdn_tunnels_l2tp']['descr'] = 'VPDN L2TP Tunnels'; - -$config['graph_types']['device']['netscaler_tcp_conn']['section'] = 'load balancer'; -$config['graph_types']['device']['netscaler_tcp_conn']['order'] = '0'; -$config['graph_types']['device']['netscaler_tcp_conn']['descr'] = 'TCP Connections'; - -$config['graph_types']['device']['netscaler_tcp_bits']['section'] = 'load balancer'; -$config['graph_types']['device']['netscaler_tcp_bits']['order'] = '0'; -$config['graph_types']['device']['netscaler_tcp_bits']['descr'] = 'TCP Traffic'; - -$config['graph_types']['device']['netscaler_tcp_pkts']['section'] = 'load balancer'; -$config['graph_types']['device']['netscaler_tcp_pkts']['order'] = '0'; -$config['graph_types']['device']['netscaler_tcp_pkts']['descr'] = 'TCP Packets'; - -$config['graph_types']['device']['asa_conns'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Current connections']; - -$config['graph_types']['device']['cisco-iospri']['section'] = 'voice'; -$config['graph_types']['device']['cisco-iospri']['order'] = '0'; -$config['graph_types']['device']['cisco-iospri']['descr'] = 'PRI Utilisation'; - -$config['graph_types']['device']['cisco-voice-ip']['section'] = 'voice'; -$config['graph_types']['device']['cisco-voice-ip']['order'] = '0'; -$config['graph_types']['device']['cisco-voice-ip']['descr'] = 'IP Real Time Calls'; - -$config['graph_types']['device']['cisco-iosdsp']['section'] = 'voice'; -$config['graph_types']['device']['cisco-iosdsp']['order'] = '0'; -$config['graph_types']['device']['cisco-iosdsp']['descr'] = 'DSP Utilisation'; - -$config['graph_types']['device']['cisco-iosmtp']['section'] = 'voice'; -$config['graph_types']['device']['cisco-iosmtp']['order'] = '0'; -$config['graph_types']['device']['cisco-iosmtp']['descr'] = 'Hardware MTP Utilisation'; - -$config['graph_types']['device']['cisco-iosxcode']['section'] = 'voice'; -$config['graph_types']['device']['cisco-iosxcode']['order'] = '0'; -$config['graph_types']['device']['cisco-iosxcode']['descr'] = 'Transcoder Utilisation'; - -$config['graph_descr']['device_smokeping_in_all'] = 'This is an aggregate graph of the incoming smokeping tests to this host. The line corresponds to the average RTT. The shaded area around each line denotes the standard deviation.'; -$config['graph_descr']['device_processor'] = 'This is an aggregate graph of all processors in the system.'; - -$config['graph_types']['device']['cisco_wwan_rssi']['section'] = 'wireless'; -$config['graph_types']['device']['cisco_wwan_rssi']['order'] = '0'; -$config['graph_types']['device']['cisco_wwan_rssi']['descr'] = 'Signal Rssi'; -$config['graph_types']['device']['cisco_wwan_mnc']['section'] = 'wireless'; -$config['graph_types']['device']['cisco_wwan_mnc']['order'] = '1'; -$config['graph_types']['device']['cisco_wwan_mnc']['descr'] = 'MNC'; - -$config['graph_types']['device']['xirrus_stations']['section'] = 'wireless'; -$config['graph_types']['device']['xirrus_stations']['order'] = '0'; -$config['graph_types']['device']['xirrus_stations']['descr'] = 'Associated Stations'; - -$config['graph_types']['device']['sgos_average_requests']['section'] = 'network'; -$config['graph_types']['device']['sgos_average_requests']['order'] = '0'; -$config['graph_types']['device']['sgos_average_requests']['descr'] = 'Average HTTP Requests'; - -// SRX Flow Sessions -$config['graph_types']['device']['junos_jsrx_spu_flows'] = ['section' => 'network', 'order' => 0, 'descr' => 'SPU Flows']; -$config['graph_types']['device']['junos_jsrx_spu_sessions'] = ['section' => 'network', 'order' => 1, 'descr' => 'Flow Sessions']; - -// Blue Coat SGOS -// Client Connections -$config['graph_types']['device']['bluecoat_http_client_connections']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_client_connections']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_client_connections']['descr'] = 'HTTP Client Connections'; -// Server Connections -$config['graph_types']['device']['bluecoat_http_server_connections']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_server_connections']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_server_connections']['descr'] = 'HTTP Server Connections'; - -// Client Connections Active -$config['graph_types']['device']['bluecoat_http_client_connections_active']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_client_connections_active']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_client_connections_active']['descr'] = 'HTTP Client Connections Active'; -// Server Connections Active -$config['graph_types']['device']['bluecoat_http_server_connections_active']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_server_connections_active']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_server_connections_active']['descr'] = 'HTTP Server Connections Active'; - -// Client Connections Idle -$config['graph_types']['device']['bluecoat_http_client_connections_idle']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_client_connections_idle']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_client_connections_idle']['descr'] = 'HTTP Client Connections Idle'; - -// Server Connections Idle -$config['graph_types']['device']['bluecoat_http_server_connections_idle']['section'] = 'network'; -$config['graph_types']['device']['bluecoat_http_server_connections_idle']['order'] = '0'; -$config['graph_types']['device']['bluecoat_http_server_connections_idle']['descr'] = 'HTTP Server Connections Idle'; - - -//riverbed specific graphs -$config['graph_types']['device']['riverbed_connections'] = ['section' => 'network', 'order' => 0, 'descr' => 'Connections']; -$config['graph_types']['device']['riverbed_optimization'] = ['section' => 'network', 'order' => 1, 'descr' => 'Optimization']; -$config['graph_types']['device']['riverbed_datastore'] = ['section' => 'network', 'order' => 2, 'descr' => 'Datastore productivity']; -$config['graph_types']['device']['riverbed_passthrough'] = ['section' => 'network', 'order' => 3, 'descr' => 'Bandwidth passthrough']; - -//mikrotik specific graphs -$config['graph_types']['device']['routeros_leases']['section'] = 'network'; -$config['graph_types']['device']['routeros_leases']['order'] = 0; -$config['graph_types']['device']['routeros_leases']['descr'] = 'DHCP Lease Count'; - -$config['graph_types']['device']['routeros_pppoe_sessions']['section'] = 'network'; -$config['graph_types']['device']['routeros_pppoe_sessions']['order'] = 0; -$config['graph_types']['device']['routeros_pppoe_sessions']['descr'] = 'PPPoE Session Count'; - - -//CheckPoint SPLAT specific graphs -$config['graph_types']['device']['secureplatform_sessions']['section'] = 'firewall'; -$config['graph_types']['device']['secureplatform_sessions']['order'] = 0; -$config['graph_types']['device']['secureplatform_sessions']['descr'] = 'Active connections'; - -//arbos specific graphs -$config['graph_types']['device']['arbos_flows'] = ['section' => 'graphs', 'order' => 0, 'descr' => 'Accumulative flow count per SP device']; - -//F5 specific graphs -$config['graph_types']['device']['bigip_apm_sessions'] = ['section' => 'apm', 'order' => 0, 'descr' => 'Active Sessions']; -$config['graph_types']['device']['bigip_system_tps'] = ['section' => 'ltm', 'order' => 0, 'descr' => 'SSL Transactions']; -$config['graph_types']['device']['bigip_system_server_concurrent_connections'] = ['section' => 'ltm', 'order' => 1, 'descr' => 'Global Server Concurrent Connections']; -$config['graph_types']['device']['bigip_system_client_concurrent_connections'] = ['section' => 'ltm', 'order' => 2, 'descr' => 'Global Client Concurrent Connections']; -$config['graph_types']['device']['bigip_system_server_connection_rate'] = ['section' => 'ltm', 'order' => 3, 'descr' => 'Global Server Connection Rate']; -$config['graph_types']['device']['bigip_system_client_connection_rate'] = ['section' => 'ltm', 'order' => 4, 'descr' => 'Global Client Connection Rate']; - -// Bluecoat ProxySG Graphs -$config['graph_types']['device']['sgos_average_requests'] = ['section' => 'network', 'order' => 0, 'descr' => 'Average HTTP Requests']; -$config['graph_types']['device']['sgos_client_connections'] = ['section' => 'network', 'order' => 1, 'descr' => 'HTTP Client Connections']; -$config['graph_types']['device']['sgos_client_connections_active'] = ['section' => 'network', 'order' => 2, 'descr' => 'HTTP Client Connections Active']; -$config['graph_types']['device']['sgos_client_connections_idle'] = ['section' => 'network', 'order' => 3, 'descr' => 'HTTP Client Connections Idle']; -$config['graph_types']['device']['sgos_server_connections'] = ['section' => 'network', 'order' => 4, 'descr' => 'HTTP Server Connections']; -$config['graph_types']['device']['sgos_server_connections_active'] = ['section' => 'network', 'order' => 5, 'descr' => 'HTTP Server Connections Active']; -$config['graph_types']['device']['sgos_server_connections_idle'] = ['section' => 'network', 'order' => 6, 'descr' => 'HTTP Server Connections Idle']; - -// Cisco AsyncOS Graphs -$config['graph_types']['device']['asyncos_conns'] = ['section' => 'proxy', 'order' => 0, 'descr' => 'Current connections']; - -// Zywall Graphs -$config['graph_types']['device']['zywall_sessions'] = ['section' => 'firewall', 'order' => 0, 'descr' => 'Sessions']; - -// TopVision Graphs -$config['graph_types']['device']['topvision_cmtotal'] = ['section' => 'cmts', 'order' => 0, 'descr' => 'Cable Modem Total']; -$config['graph_types']['device']['topvision_cmreg'] = ['section' => 'cmts', 'order' => 1, 'descr' => 'Cable Modem Registered']; -$config['graph_types']['device']['topvision_cmoffline'] = ['section' => 'cmts', 'order' => 2, 'descr' => 'Cable Modem Offline']; - -// Teltonika RUT2XX Graph -$config['graph_types']['device']['rutos_2xx_mobileDataUsage'] = ['section' => 'network', 'order' => 0, 'descr' => 'Mobile Data Usage']; - -// Device Types -$i = 0; -$config['device_types'][$i]['text'] = 'Servers'; -$config['device_types'][$i]['type'] = 'server'; -$config['device_types'][$i]['icon'] = 'server.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Network'; -$config['device_types'][$i]['type'] = 'network'; -$config['device_types'][$i]['icon'] = 'network.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Wireless'; -$config['device_types'][$i]['type'] = 'wireless'; -$config['device_types'][$i]['icon'] = 'wireless.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Firewalls'; -$config['device_types'][$i]['type'] = 'firewall'; -$config['device_types'][$i]['icon'] = 'firewall.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Power'; -$config['device_types'][$i]['type'] = 'power'; -$config['device_types'][$i]['icon'] = 'power.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Environment'; -$config['device_types'][$i]['type'] = 'environment'; -$config['device_types'][$i]['icon'] = 'environment.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Load Balancers'; -$config['device_types'][$i]['type'] = 'loadbalancer'; -$config['device_types'][$i]['icon'] = 'loadbalancer.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Storage'; -$config['device_types'][$i]['type'] = 'storage'; -$config['device_types'][$i]['icon'] = 'storage.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Printers'; -$config['device_types'][$i]['type'] = 'printer'; -$config['device_types'][$i]['icon'] = 'printer.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Appliance'; -$config['device_types'][$i]['type'] = 'appliance'; -$config['device_types'][$i]['icon'] = 'appliance.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Collaboration'; -$config['device_types'][$i]['type'] = 'collaboration'; -$config['device_types'][$i]['icon'] = 'collaboration.png'; - -$i++; -$config['device_types'][$i]['text'] = 'Workstation'; -$config['device_types'][$i]['type'] = 'workstation'; -$config['device_types'][$i]['icon'] = 'workstation.png'; - -// -// No changes below this line # -// - -// IPMI sensor type mappings -$config['ipmi_unit']['Volts'] = 'voltage'; -$config['ipmi_unit']['degrees C'] = 'temperature'; -$config['ipmi_unit']['RPM'] = 'fanspeed'; -$config['ipmi_unit']['Watts'] = 'power'; -$config['ipmi_unit']['Amps'] = 'current'; -$config['ipmi_unit']['percent'] = 'load'; -$config['ipmi_unit']['discrete'] = ''; diff --git a/includes/html/graphs/common.inc.php b/includes/html/graphs/common.inc.php index dc12cf4a59..05080e6f7c 100644 --- a/includes/html/graphs/common.inc.php +++ b/includes/html/graphs/common.inc.php @@ -82,7 +82,7 @@ if (isset($scale_rigid)) { } $rrd_options .= ' -E --start '.$from.' --end '.$to.' --width '.$width.' --height '.$height.' '; -$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . \LibreNMS\Config::get('rrdgraph_def_text_color'); +$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . ltrim(\LibreNMS\Config::get('rrdgraph_def_text_color'), '#'); if ($_GET['bg']) { $rrd_options .= ' -c CANVAS#' . Clean::alphaDash($_GET['bg']) . ' '; diff --git a/includes/html/graphs/multiport/bits_duo.inc.php b/includes/html/graphs/multiport/bits_duo.inc.php index 5541dec4c4..7ca93400f6 100644 --- a/includes/html/graphs/multiport/bits_duo.inc.php +++ b/includes/html/graphs/multiport/bits_duo.inc.php @@ -5,7 +5,7 @@ if ($_GET['legend']) { } $rrd_options = "--alt-autoscale-max -E --start $from --end ".($to - 150)." --width $width --height $height "; -$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . \LibreNMS\Config::get('rrdgraph_def_text_color'); +$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . ltrim(\LibreNMS\Config::get('rrdgraph_def_text_color'), '#'); if ($height < '99') { $rrd_options .= ' --only-graph'; } diff --git a/includes/html/graphs/multiport/bits_trio.inc.php b/includes/html/graphs/multiport/bits_trio.inc.php index f584471e08..e11121a419 100644 --- a/includes/html/graphs/multiport/bits_trio.inc.php +++ b/includes/html/graphs/multiport/bits_trio.inc.php @@ -5,7 +5,7 @@ if ($_GET['legend']) { } $rrd_options = " --alt-autoscale-max -E --start $from --end ".($to - 150)." --width $width --height $height "; -$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . \LibreNMS\Config::get('rrdgraph_def_text_color'); +$rrd_options .= \LibreNMS\Config::get('rrdgraph_def_text') . ' -c FONT#' . ltrim(\LibreNMS\Config::get('rrdgraph_def_text_color'), '#'); if ($height < '99') { $rrd_options .= ' --only-graph'; diff --git a/misc/config_definitions.json b/misc/config_definitions.json index ff1f28d73a..025ca8e85b 100644 --- a/misc/config_definitions.json +++ b/misc/config_definitions.json @@ -10,7 +10,8 @@ "type": "integer" }, "addhost_alwayscheckip": { - "default": false + "default": false, + "type": "boolean" }, "alert.ack_until_clear": { "default": false, @@ -106,7 +107,8 @@ "type": "boolean" }, "alert_graph_date_format": { - "default": "%Y-%m-%d %H:%i" + "default": "%Y-%m-%d %H:%i", + "type": "text" }, "alert_log_purge": { "default": 365, @@ -117,48 +119,65 @@ "type": "integer" }, "alerts.bgp.whitelist": { - "default": null + "type": "array" }, "alerts.email.default_only": { + "type": "boolean" }, "alerts.email.enable": { - "default": false + "default": false, + "type": "boolean" }, "alerts.port.ifdown": { - "default": false + "default": false, + "type": "boolean" }, "alerts.port_util_alert": { - "default": false + "default": false, + "type": "boolean" }, "alerts.port_util_perc": { - "default": 85 + "default": 85, + "type": "integer", + "validate": { + "value": "integer|between:0,100" + } }, "allow_duplicate_sysName": { - "default": false + "default": false, + "type": "boolean" }, "allow_entity_sensor.amperes": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.celsius": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.dBm": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.specialEnum": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.truthvalue": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.voltsAC": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.voltsDC": { - "default": true + "default": true, + "type": "boolean" }, "allow_entity_sensor.watts": { - "default": true + "default": true, + "type": "boolean" }, "allow_unauth_graphs": { "default": false, @@ -195,13 +214,20 @@ "type": "array" }, "api.cors.enabled": { - "default": false + "default": false, + "type": "boolean" }, "api.cors.maxage": { - "default": 86400 + "default": 86400, + "type": "integer", + "units": "seconds", + "validate": { + "value": "integer|min:0" + } }, "api.cors.origin": { - "default": "*" + "default": "*", + "type": "text" }, "api_demo": { "default": false, @@ -223,22 +249,20 @@ "65332": "Cymru FullBogon Feed", "65333": "Cymru Bogon Feed" }, - "type": "object" + "type": "array" }, "auth_ad_base_dn": { "group": "auth", "section": "ad", "order": 1, - "type": "text", - "required": true + "type": "text" }, "auth_ad_check_certificates": { "default": false, "group": "auth", "section": "ad", "order": 1, - "type": "boolean", - "required": true + "type": "boolean" }, "auth_ad_group_filter": { "default": "(objectclass=group)", @@ -472,7 +496,8 @@ "type": "integer" }, "autodiscovery.bgp": { - "default": true + "default": true, + "type": "boolean" }, "autodiscovery.cdp_exclude.platform_regexp": { "type": "array", @@ -491,13 +516,16 @@ ] }, "autodiscovery.ospf": { - "default": true + "default": true, + "type": "boolean" }, "autodiscovery.snmpscan": { - "default": true + "default": true, + "type": "boolean" }, "autodiscovery.xdp": { - "default": true + "default": true, + "type": "boolean" }, "autodiscovery.xdp_exclude.sysdesc_regexp": { "type": "array", @@ -506,7 +534,8 @@ ] }, "bad_disk_regexp": { - "default": [] + "default": [], + "type": "array" }, "bad_if": { "type": "array", @@ -562,78 +591,107 @@ ] }, "billing.base": { - "default": 1000 + "default": 1000, + "type": "integer" }, "billing.bill_autoadd": { - "default": 0 + "default": false, + "type": "boolean" }, "billing.circuit_autoadd": { - "default": 0 + "default": false, + "type": "boolean" }, "billing.customer_autoadd": { - "default": 0 + "default": false, + "type": "boolean" }, "callback_clear": { - "default": "https://stats.librenms.org/clear.php" + "default": "https://stats.librenms.org/clear.php", + "type": "text" }, "callback_post": { - "default": "https://stats.librenms.org/log.php" + "default": "https://stats.librenms.org/log.php", + "type": "text" }, - "core_descr.0": { - "default": "core" + "core_descr": { + "default": ["core"], + "type": "array" }, "cpu_details_overview": { - "default": false + "default": false, + "type": "boolean" }, - "custom_descr.0": { - "default": "" + "custom_descr": { + "default": [""], + "type": "array" }, "customers_descr": { - "default": "cust" + "default": "cust", + "type": "text" }, "dateformat.byminute": { - "default": "Y-m-d H:i" + "default": "Y-m-d H:i", + "type": "text" }, "dateformat.compact": { - "default": "Y-m-d H:i:s" + "default": "Y-m-d H:i:s", + "type": "text" }, "dateformat.long": { - "default": "r" + "default": "r", + "type": "text" }, "dateformat.mysql.compact": { - "default": "%Y-%m-%d %H:%i:%s" + "default": "%Y-%m-%d %H:%i:%s", + "type": "text" }, "dateformat.mysql.date": { - "default": "%Y-%m-%d" + "default": "%Y-%m-%d", + "type": "text" }, "dateformat.mysql.time": { - "default": "%H:%i:%s" + "default": "%H:%i:%s", + "type": "text" }, "dateformat.time": { - "default": "H:i:s" + "default": "H:i:s", + "type": "text" }, "db_name": { "default": "librenms", - "hidden": true + "hidden": true, + "type": "boolean" }, "db_pass": { "default": null, - "hidden": true + "hidden": true, + "type": "boolean" }, "db_port": { "default": 3306, - "hidden": true + "hidden": true, + "type": "boolean" }, "db_socket": { "default": null, - "hidden": true + "hidden": true, + "type": "boolean" }, "db_user": { "default": "librenms", - "hidden": true + "hidden": true, + "type": "boolean" }, "default_port_association_mode": { - "default": "ifIndex" + "default": "ifIndex", + "type": "select", + "options": { + "ifIndex": "ifIndex", + "ifName": "ifName", + "ifDescr": "ifDescr", + "ifAlias": "ifAlias" + } }, "device_perf_purge": { "default": 7, @@ -731,133 +789,176 @@ "type": "array" }, "discover_services": { - "default": false + "default": false, + "type": "boolean" }, "discovery_by_ip": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.os": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.ports": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.ports-stack": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.entity-physical": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.entity-state": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.processors": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.mempools": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.cisco-vrf-lite": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.cisco-mac-accounting": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-pw": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.vrf": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-cef": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-sla": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-cbqos": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-otv": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.cisco-qfp": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.ipv4-addresses": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.ipv6-addresses": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.route": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.sensors": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.storage": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.hr-device": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.discovery-protocols": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.arp-table": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.discovery-arp": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.junose-atm-vp": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.bgp-peers": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.vlans": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.vmware-vminfo": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.libvirt-vminfo": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.toner": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.ucd-diskio": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.applications": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.services": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.stp": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.ntp": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.loadbalancers": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.mef": { - "default": false + "default": false, + "type": "boolean" }, "discovery_modules.wireless": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.fdb-table": { - "default": true + "default": true, + "type": "boolean" }, "discovery_modules.mpls": { - "default": true + "default": true, + "type": "boolean" }, "distributed_poller": { "default": false, @@ -867,7 +968,11 @@ "type": "boolean" }, "distributed_poller_group": { - "default": 0 + "default": 0, + "type": "integer", + "group": "poller", + "section": "distributed", + "order": 3 }, "distributed_poller_memcached_host": { "default": "example.net", @@ -886,10 +991,9 @@ "order": 2, "type": "integer" }, - "distributed_poller_name": { - }, "dot": { - "default": "/usr/bin/dot" + "default": "/usr/bin/dot", + "type": "text" }, "email_auto_tls": { "default": true, @@ -963,7 +1067,9 @@ "section": "email", "order": 6, "type": "text", - "pattern": "[a-zA-Z0-9_\\-.]+", + "validate": { + "value": "^[a-zA-Z0-9_\\-.]+$" + }, "when": { "setting": "email_backend", "operator": "equals", @@ -1043,55 +1149,72 @@ "type": "text" }, "enable_bgp": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_billing": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_clear_discovery": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_footer": { - "default": false + "default": false, + "type": "boolean" }, "enable_inventory": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_lazy_load": { - "default": true + "default": true, + "type": "boolean" }, "enable_libvirt": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_port_relationship": { - "default": true + "default": true, + "type": "boolean" }, "enable_ports_adsl": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_ports_etherlike": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_ports_junoseatmvp": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_ports_poe": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_pseudowires": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_sla": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_syslog": { - "default": 0 + "default": false, + "type": "boolean" }, "enable_vrf_lite_cisco": { - "default": 1 + "default": true, + "type": "boolean" }, "enable_vrfs": { - "default": 1 + "default": true, + "type": "boolean" }, "eventlog_purge": { "default": 30, @@ -1108,10 +1231,12 @@ "type": "text" }, "force_hostname_to_sysname": { - "default": false + "default": false, + "type": "boolean" }, "force_ip_to_sysname": { - "default": false + "default": false, + "type": "boolean" }, "fping": { "default": "fping", @@ -1151,16 +1276,20 @@ "type": "text" }, "front_page": { - "default": "pages/front/tiles.php" + "default": "pages/front/tiles.php", + "type": "text" }, "front_page_down_box_limit": { - "default": 10 + "default": 10, + "type": "integer" }, "front_page_settings.top.devices": { - "default": 10 + "default": 10, + "type": "integer" }, "front_page_settings.top.ports": { - "default": 10 + "default": 10, + "type": "integer" }, "geoloc.api_key": { "default": "", @@ -1168,7 +1297,6 @@ "section": "location", "order": 1, "type": "text", - "required": true, "when": { "setting": "geoloc.engine", "operator": "in", @@ -1193,7 +1321,8 @@ } }, "github_api": { - "default": "https://api.github.com/repos/librenms/librenms/" + "default": "https://api.github.com/repos/librenms/librenms/", + "type": "text" }, "graph_colours.blues": { "default": [ @@ -1354,1154 +1483,1320 @@ "type": "array" }, "graph_descr.device_processor": { - "default": "This is an aggregate graph of all processors in the system." + "default": "This is an aggregate graph of all processors in the system.", + "type": "text" }, "graph_descr.device_smokeping_in_all": { - "default": "This is an aggregate graph of the incoming smokeping tests to this host. The line corresponds to the average RTT. The shaded area around each line denotes the standard deviation." + "default": "This is an aggregate graph of the incoming smokeping tests to this host. The line corresponds to the average RTT. The shaded area around each line denotes the standard deviation.", + "type": "text" }, "graph_types.device.agent": { "default": { "section": "poller", "order": 0, "descr": "Agent Execution Time" - } + }, + "type": "graph" }, "graph_types.device.arbos_flows": { "default": { "section": "graphs", "order": 0, "descr": "Accumulative flow count per SP device" - } + }, + "type": "graph" }, "graph_types.device.asa_conns": { "default": { "section": "firewall", "order": 0, "descr": "Current connections" - } + }, + "type": "graph" }, "graph_types.device.asyncos_conns": { "default": { "section": "proxy", "order": 0, "descr": "Current connections" - } + }, + "type": "graph" }, "graph_types.device.barracuda_firewall_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.bigip_apm_sessions": { "default": { "section": "apm", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.bigip_system_client_concurrent_connections": { "default": { "section": "ltm", "order": 2, "descr": "Global Client Concurrent Connections" - } + }, + "type": "graph" }, "graph_types.device.bigip_system_client_connection_rate": { "default": { "section": "ltm", "order": 4, "descr": "Global Client Connection Rate" - } + }, + "type": "graph" }, "graph_types.device.bigip_system_server_concurrent_connections": { "default": { "section": "ltm", "order": 1, "descr": "Global Server Concurrent Connections" - } + }, + "type": "graph" }, "graph_types.device.bigip_system_server_connection_rate": { "default": { "section": "ltm", "order": 3, "descr": "Global Server Connection Rate" - } + }, + "type": "graph" }, "graph_types.device.bigip_system_tps": { "default": { "section": "ltm", "order": 0, "descr": "SSL Transactions" - } + }, + "type": "graph" }, "graph_types.device.bits": { "default": { "section": "netstats", "order": 0, "descr": "Total Traffic" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_client_connections": { "default": { "section": "network", "order": 0, "descr": "HTTP Client Connections" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_client_connections_active": { "default": { "section": "network", "order": 0, "descr": "HTTP Client Connections Active" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_client_connections_idle": { "default": { "section": "network", "order": 0, "descr": "HTTP Client Connections Idle" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_server_connections": { "default": { "section": "network", "order": 0, "descr": "HTTP Server Connections" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_server_connections_active": { "default": { "section": "network", "order": 0, "descr": "HTTP Server Connections Active" - } + }, + "type": "graph" }, "graph_types.device.bluecoat_http_server_connections_idle": { "default": { "section": "network", "order": 0, "descr": "HTTP Server Connections Idle" - } + }, + "type": "graph" }, "graph_types.device.cambium-epmp-frameUtilization": { "default": { "section": "wireless", "order": 7, "descr": "Frame Utilization" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_RFStatus": { "default": { "section": "wireless", "order": 0, "descr": "RF Status" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_access": { "default": { "section": "wireless", "order": 4, "descr": "Access Info" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_freq": { "default": { "section": "wireless", "order": 6, "descr": "Frequency" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_gpsSync": { "default": { "section": "wireless", "order": 5, "descr": "GPS Sync Status" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_modulation": { "default": { "section": "wireless", "order": 2, "descr": "ePMP Modulation" - } + }, + "type": "graph" }, "graph_types.device.cambium_epmp_registeredSM": { "default": { "section": "wireless", "order": 3, "descr": "ePMP Registered SM" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_450_linkRadioDbm": { "default": { "section": "wireless", "order": 5, "descr": "Radio Link H/V" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_450_powerlevel": { "default": { "section": "wireless", "order": 4, "descr": "Power Level of Registered SM" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_450_ptpSNR": { "default": { "section": "wireless", "order": 6, "descr": "Master SNR" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_450_slaveHV": { "default": { "section": "wireless", "order": 7, "descr": "Dbm H/V" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_crcErrors": { "default": { "section": "wireless", "order": 15, "descr": "CRC Errors (Migrated to Wireless Sensor)" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_errorCount": { "default": { "section": "wireless", "order": 14, "descr": "Error Count (Migrated to Wireless Sensor)" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_gpsStats": { "default": { "section": "wireless", "order": 0, "descr": "GPS Stats" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_jitter": { "default": { "section": "wireless", "order": 2, "descr": "Jitter" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_radioDbm": { "default": { "section": "wireless", "order": 13, "descr": "Radio Dbm" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_regCount": { "default": { "section": "wireless", "order": 11, "descr": "Registered SM" - } + }, + "type": "graph" }, "graph_types.device.canopy_generic_signalHV": { "default": { "section": "wireless", "order": 3, "descr": "Signal" - } + }, + "type": "graph" }, "graph_types.device.ceraos_DefectedBlocks": { "default": { "section": "wireless", "order": 4, "descr": "DefectedBlocks" - } + }, + "type": "graph" }, "graph_types.device.ceraos_MSE": { "default": { "section": "wireless", "order": 2, "descr": "Radial MSE" - } + }, + "type": "graph" }, "graph_types.device.ceraos_RxBitrate": { "default": { "section": "wireless", "order": 6, "descr": "RxBitrate" - } + }, + "type": "graph" }, "graph_types.device.ceraos_RxLevel": { "default": { "section": "wireless", "order": 0, "descr": "RX Level" - } + }, + "type": "graph" }, "graph_types.device.ceraos_TxBitrate": { "default": { "section": "wireless", "order": 5, "descr": "TxBitrate" - } + }, + "type": "graph" }, "graph_types.device.ceraos_TxPower": { "default": { "section": "wireless", "order": 1, "descr": "TX Power" - } + }, + "type": "graph" }, "graph_types.device.ceraos_XPI": { "default": { "section": "wireless", "order": 3, "descr": "Cross Polarisation Interference" - } + }, + "type": "graph" }, "graph_types.device.charge": { "default": { "section": "system", "order": 0, "descr": "Battery Charge" - } + }, + "type": "graph" }, "graph_types.device.cipsec_flow_bits": { "default": { "section": "firewall", "order": 0, "descr": "IPSec Tunnel Traffic Volume" - } + }, + "type": "graph" }, "graph_types.device.cipsec_flow_pkts": { "default": { "section": "firewall", "order": 0, "descr": "IPSec Tunnel Traffic Packets" - } + }, + "type": "graph" }, "graph_types.device.cipsec_flow_stats": { "default": { "section": "firewall", "order": 0, "descr": "IPSec Tunnel Statistics" - } + }, + "type": "graph" }, "graph_types.device.cipsec_flow_tunnels": { "default": { "section": "firewall", "order": 0, "descr": "IPSec Active Tunnels" - } + }, + "type": "graph" }, "graph_types.device.cisco-iosdsp": { "default": { "section": "voice", "order": 0, "descr": "DSP Utilisation" - } + }, + "type": "graph" }, "graph_types.device.cisco-iosmtp": { "default": { "section": "voice", "order": 0, "descr": "Hardware MTP Utilisation" - } + }, + "type": "graph" }, "graph_types.device.cisco-iospri": { "default": { "section": "voice", "order": 0, "descr": "PRI Utilisation" - } + }, + "type": "graph" }, "graph_types.device.cisco-iosxcode": { "default": { "section": "voice", "order": 0, "descr": "Transcoder Utilisation" - } + }, + "type": "graph" }, "graph_types.device.cisco-voice-ip": { "default": { "section": "voice", "order": 0, "descr": "IP Real Time Calls" - } + }, + "type": "graph" }, "graph_types.device.cisco_wwan_mnc": { "default": { "section": "wireless", "order": 1, "descr": "MNC" - } + }, + "type": "graph" }, "graph_types.device.cisco_wwan_rssi": { "default": { "section": "wireless", "order": 0, "descr": "Signal Rssi" - } + }, + "type": "graph" }, "graph_types.device.cras_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Remote Access Sessions" - } + }, + "type": "graph" }, "graph_types.device.fdb_count": { "default": { "section": "system", "order": 0, "descr": "MAC Addresses Learnt" - } + }, + "type": "graph" }, "graph_types.device.fortigate_cpu": { "default": { "section": "system", "order": 0, "descr": "CPU" - } + }, + "type": "graph" }, "graph_types.device.fortigate_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.fortios_lograte": { "default": { "section": "analyzer", "order": 0, "descr": "Log Rate" - } + }, + "type": "graph" }, "graph_types.device.hr_processes": { "default": { "section": "system", "order": 0, "descr": "Running Processes" - } + }, + "type": "graph" }, "graph_types.device.hr_users": { "default": { "section": "system", "order": 0, "descr": "Users Logged In" - } + }, + "type": "graph" }, "graph_types.device.ib_dhcp_messages": { "default": { "section": "dhcp", "order": 0, "descr": "DHCP messages" - } + }, + "type": "graph" }, "graph_types.device.ib_dns_dyn_updates": { "default": { "section": "dns", "order": 0, "descr": "DNS dynamic updates" - } + }, + "type": "graph" }, "graph_types.device.ib_dns_performance": { "default": { "section": "dns", "order": 0, "descr": "DNS performance" - } + }, + "type": "graph" }, "graph_types.device.ib_dns_request_return_codes": { "default": { "section": "dns", "order": 0, "descr": "DNS request return codes" - } + }, + "type": "graph" }, "graph_types.device.ipsystemstats_ipv4": { "default": { "section": "netstats", "order": 0, "descr": "IPv4 Packet Statistics" - } + }, + "type": "graph" }, "graph_types.device.ipsystemstats_ipv4_frag": { "default": { "section": "netstats", "order": 0, "descr": "IPv4 Fragmentation Statistics" - } + }, + "type": "graph" }, "graph_types.device.ipsystemstats_ipv6": { "default": { "section": "netstats", "order": 0, "descr": "IPv6 Packet Statistics" - } + }, + "type": "graph" }, "graph_types.device.ipsystemstats_ipv6_frag": { "default": { "section": "netstats", "order": 0, "descr": "IPv6 Fragmentation Statistics" - } + }, + "type": "graph" }, "graph_types.device.junos_jsrx_spu_flows": { "default": { "section": "network", "order": 0, "descr": "SPU Flows" - } + }, + "type": "graph" }, "graph_types.device.junos_jsrx_spu_sessions": { "default": { "section": "network", "order": 1, "descr": "Flow Sessions" - } + }, + "type": "graph" }, "graph_types.device.mempool": { "default": { "section": "system", "order": 0, "descr": "Memory Pool Usage" - } + }, + "type": "graph" }, "graph_types.device.netscaler_tcp_bits": { "default": { "section": "load balancer", "order": 0, "descr": "TCP Traffic" - } + }, + "type": "graph" }, "graph_types.device.netscaler_tcp_conn": { "default": { "section": "load balancer", "order": 0, "descr": "TCP Connections" - } + }, + "type": "graph" }, "graph_types.device.netscaler_tcp_pkts": { "default": { "section": "load balancer", "order": 0, "descr": "TCP Packets" - } + }, + "type": "graph" }, "graph_types.device.netstat_icmp": { "default": { "section": "netstats", "order": 0, "descr": "ICMP Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_icmp_info": { "default": { "section": "netstats", "order": 0, "descr": "ICMP Informational Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_ip": { "default": { "section": "netstats", "order": 0, "descr": "IP Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_ip_forward": { "default": { "section": "netstats", "order": 0, "descr": "IP Forwarding Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_ip_frag": { "default": { "section": "netstats", "order": 0, "descr": "IP Fragmentation Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_snmp": { "default": { "section": "netstats", "order": 0, "descr": "SNMP Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_snmp_pkt": { "default": { "section": "netstats", "order": 0, "descr": "SNMP Packet Type Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_tcp": { "default": { "section": "netstats", "order": 0, "descr": "TCP Statistics" - } + }, + "type": "graph" }, "graph_types.device.netstat_udp": { "default": { "section": "netstats", "order": 0, "descr": "UDP Statistics" - } + }, + "type": "graph" }, "graph_types.device.panos_activetunnels": { "default": { "section": "firewall", "order": 0, "descr": "Active GlobalProtect Tunnels" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions_icmp": { "default": { "section": "firewall", "order": 0, "descr": "Active ICMP Sessions" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions_ssl": { "default": { "section": "firewall", "order": 0, "descr": "Active SSL Proxy Sessions" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions_sslutil": { "default": { "section": "firewall", "order": 0, "descr": "Active SSL Proxy Utilization" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions_tcp": { "default": { "section": "firewall", "order": 0, "descr": "Active TCP Sessions" - } + }, + "type": "graph" }, "graph_types.device.panos_sessions_udp": { "default": { "section": "firewall", "order": 0, "descr": "Active UDP Sessions" - } + }, + "type": "graph" }, "graph_types.device.pf_badoffset": { "default": { "section": "firewall", "order": 6, "descr": "BadOffset" - } + }, + "type": "graph" }, "graph_types.device.pf_fragmented": { "default": { "section": "firewall", "order": 7, "descr": "Fragmented" - } + }, + "type": "graph" }, "graph_types.device.pf_inserts": { "default": { "section": "firewall", "order": 3, "descr": "Inserts" - } + }, + "type": "graph" }, "graph_types.device.pf_matches": { "default": { "section": "firewall", "order": 5, "descr": "Matches" - } + }, + "type": "graph" }, "graph_types.device.pf_memdropped": { "default": { "section": "firewall", "order": 10, "descr": "MemDropped" - } + }, + "type": "graph" }, "graph_types.device.pf_normalized": { "default": { "section": "firewall", "order": 9, "descr": "Normalized" - } + }, + "type": "graph" }, "graph_types.device.pf_removals": { "default": { "section": "firewall", "order": 4, "descr": "Removals" - } + }, + "type": "graph" }, "graph_types.device.pf_searches": { "default": { "section": "firewall", "order": 2, "descr": "Searches" - } + }, + "type": "graph" }, "graph_types.device.pf_short": { "default": { "section": "firewall", "order": 8, "descr": "Short" - } + }, + "type": "graph" }, "graph_types.device.pf_states": { "default": { "section": "firewall", "order": 1, "descr": "States" - } + }, + "type": "graph" }, "graph_types.device.ping_perf": { "default": { "section": "poller", "order": 0, "descr": "Ping Response" - } + }, + "type": "graph" }, "graph_types.device.poller_modules_perf": { "default": { "section": "poller", "order": 0, "descr": "Poller Modules Performance" - } + }, + "type": "graph" }, "graph_types.device.poller_perf": { "default": { "section": "poller", "order": 0, "descr": "Poller Time" - } + }, + "type": "graph" }, "graph_types.device.processor": { "default": { "section": "system", "order": 0, "descr": "Processor Usage" - } + }, + "type": "graph" }, "graph_types.device.pulse_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.pulse_users": { "default": { "section": "firewall", "order": 0, "descr": "Active Users" - } + }, + "type": "graph" }, "graph_types.device.riverbed_connections": { "default": { "section": "network", "order": 0, "descr": "Connections" - } + }, + "type": "graph" }, "graph_types.device.riverbed_datastore": { "default": { "section": "network", "order": 2, "descr": "Datastore productivity" - } + }, + "type": "graph" }, "graph_types.device.riverbed_optimization": { "default": { "section": "network", "order": 1, "descr": "Optimization" - } + }, + "type": "graph" }, "graph_types.device.riverbed_passthrough": { "default": { "section": "network", "order": 3, "descr": "Bandwidth passthrough" - } + }, + "type": "graph" }, "graph_types.device.routeros_leases": { "default": { "section": "network", "order": 0, "descr": "DHCP Lease Count" - } + }, + "type": "graph" }, "graph_types.device.routeros_pppoe_sessions": { "default": { "section": "network", "order": 0, "descr": "PPPoE Session Count" - } + }, + "type": "graph" }, "graph_types.device.rutos_2xx_mobileDataUsage": { "default": { "section": "network", "order": 0, "descr": "Mobile Data Usage" - } + }, + "type": "graph" }, "graph_types.device.screenos_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.secureplatform_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active connections" - } + }, + "type": "graph" }, "graph_types.device.sgos_average_requests": { "default": { "section": "network", "order": 0, "descr": "Average HTTP Requests" - } + }, + "type": "graph" }, "graph_types.device.sgos_client_connections": { "default": { "section": "network", "order": 1, "descr": "HTTP Client Connections" - } + }, + "type": "graph" }, "graph_types.device.sgos_client_connections_active": { "default": { "section": "network", "order": 2, "descr": "HTTP Client Connections Active" - } + }, + "type": "graph" }, "graph_types.device.sgos_client_connections_idle": { "default": { "section": "network", "order": 3, "descr": "HTTP Client Connections Idle" - } + }, + "type": "graph" }, "graph_types.device.sgos_server_connections": { "default": { "section": "network", "order": 4, "descr": "HTTP Server Connections" - } + }, + "type": "graph" }, "graph_types.device.sgos_server_connections_active": { "default": { "section": "network", "order": 5, "descr": "HTTP Server Connections Active" - } + }, + "type": "graph" }, "graph_types.device.sgos_server_connections_idle": { "default": { "section": "network", "order": 6, "descr": "HTTP Server Connections Idle" - } + }, + "type": "graph" }, "graph_types.device.siklu_rfinterfaceOctets": { "default": { "section": "wireless", "order": 5, "descr": "Traffic" - } + }, + "type": "graph" }, "graph_types.device.siklu_rfinterfaceOtherOctets": { "default": { "section": "wireless", "order": 6, "descr": "Other Octets" - } + }, + "type": "graph" }, "graph_types.device.siklu_rfinterfaceOtherPkts": { "default": { "section": "wireless", "order": 4, "descr": "Other Packets" - } + }, + "type": "graph" }, "graph_types.device.siklu_rfinterfacePkts": { "default": { "section": "wireless", "order": 3, "descr": "Packets" - } + }, + "type": "graph" }, "graph_types.device.sonicwall_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Active Sessions" - } + }, + "type": "graph" }, "graph_types.device.storage": { "default": { "section": "system", "order": 0, "descr": "Filesystem Usage" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclAFER": { "default": { "section": "wireless", "order": 4, "descr": "Radio Air Frame Error Rate" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclDataRate": { "default": { "section": "wireless", "order": 4, "descr": "Data Rate on the Airside interface" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclLnkLoss": { "default": { "section": "wireless", "order": 3, "descr": "Radio Link Loss" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclRxPower": { "default": { "section": "wireless", "order": 1, "descr": "Radio Receive Power" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclTxPower": { "default": { "section": "wireless", "order": 0, "descr": "Radio Transmit Power" - } + }, + "type": "graph" }, "graph_types.device.sub10_sub10RadioLclVectErr": { "default": { "section": "wireless", "order": 3, "descr": "Radio Vector Error" - } + }, + "type": "graph" }, "graph_types.device.temperature": { "default": { "section": "system", "order": 0, "descr": "temperature" - } + }, + "type": "graph" }, "graph_types.device.topvision_cmoffline": { "default": { "section": "cmts", "order": 2, "descr": "Cable Modem Offline" - } + }, + "type": "graph" }, "graph_types.device.topvision_cmreg": { "default": { "section": "cmts", "order": 1, "descr": "Cable Modem Registered" - } + }, + "type": "graph" }, "graph_types.device.topvision_cmtotal": { "default": { "section": "cmts", "order": 0, "descr": "Cable Modem Total" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_Capacity": { "default": { "section": "wireless", "order": 2, "descr": "Link Capacity" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_LinkDist": { "default": { "section": "wireless", "order": 1, "descr": "Link Distance" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RFTotOctetsRx": { "default": { "section": "wireless", "order": 6, "descr": "RF Total Octets Rx" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RFTotOctetsTx": { "default": { "section": "wireless", "order": 4, "descr": "RF Total Octets Tx" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RFTotPktsRx": { "default": { "section": "wireless", "order": 7, "descr": "RF Total Packets Rx" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RFTotPktsTx": { "default": { "section": "wireless", "order": 5, "descr": "RF Total Packets Tx" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RadioFreqs": { "default": { "section": "wireless", "order": 0, "descr": "Radio Frequencies" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RadioTemp": { "default": { "section": "wireless", "order": 3, "descr": "Radio Temperatures" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_RxPower": { "default": { "section": "wireless", "order": 8, "descr": "Radio Rx Power" - } + }, + "type": "graph" }, "graph_types.device.ubnt_airfiber_TxPower": { "default": { "section": "wireless", "order": 0, "descr": "Radio Tx Power" - } + }, + "type": "graph" }, "graph_types.device.ucd_contexts": { "default": { "section": "system", "order": 0, "descr": "Context Switches" - } + }, + "type": "graph" }, "graph_types.device.ucd_cpu": { "default": { "section": "system", "order": 0, "descr": "Detailed Processor Usage" - } + }, + "type": "graph" }, "graph_types.device.ucd_interrupts": { "default": { "section": "system", "order": 0, "descr": "Interrupts" - } + }, + "type": "graph" }, "graph_types.device.ucd_io": { "default": { "section": "system", "order": 0, "descr": "System I/O Activity" - } + }, + "type": "graph" }, "graph_types.device.ucd_load": { "default": { "section": "system", "order": 0, "descr": "Load Averages" - } + }, + "type": "graph" }, "graph_types.device.ucd_memory": { "default": { "section": "system", "order": 0, "descr": "Detailed Memory Usage" - } + }, + "type": "graph" }, "graph_types.device.ucd_swap_io": { "default": { "section": "system", "order": 0, "descr": "Swap I/O Activity" - } + }, + "type": "graph" }, "graph_types.device.uptime": { "default": { "section": "system", "order": 0, "descr": "System Uptime" - } + }, + "type": "graph" }, "graph_types.device.vpdn_sessions_l2tp": { "default": { "section": "vpdn", "order": 0, "descr": "VPDN L2TP Sessions" - } + }, + "type": "graph" }, "graph_types.device.vpdn_tunnels_l2tp": { "default": { "section": "vpdn", "order": 0, "descr": "VPDN L2TP Tunnels" - } + }, + "type": "graph" }, "graph_types.device.waas_cwotfostatsactiveoptconn": { "default": { "section": "graphs", "order": 0, "descr": "Optimized TCP Connections" - } + }, + "type": "graph" }, "graph_types.device.xirrus_stations": { "default": { "section": "wireless", "order": 0, "descr": "Associated Stations" - } + }, + "type": "graph" }, "graph_types.device.zywall_sessions": { "default": { "section": "firewall", "order": 0, "descr": "Sessions" - } + }, + "type": "graph" }, "graphite.port": { - "default": 2003 + "default": 2003, + "type": "integer" }, "graphs.mini.normal": { "default": { @@ -2509,7 +2804,8 @@ "week": "One Week", "month": "One Month", "year": "One Year" - } + }, + "type": "array" }, "graphs.mini.widescreen": { "default": { @@ -2521,7 +2817,8 @@ "twomonth": "Two Months", "year": "One Year", "twoyear": "Two Years" - } + }, + "type": "array" }, "graphs.row.normal": { "default": { @@ -2534,12 +2831,19 @@ "twomonth": "Two Months", "year": "One Year", "twoyear": "Two Years" - } + }, + "type": "array" }, "gui.network-map.style": { - "default": "new" + "default": "new", + "type": "select", + "options": { + "old": "Old", + "new": "New" + } }, "html_dir": { + "type": "text" }, "http_proxy": { "group": "system", @@ -2548,7 +2852,8 @@ "type": "text" }, "icmp_check": { - "default": true + "default": true, + "type": "boolean" }, "ignore_mount": { "default": [ @@ -2562,10 +2867,12 @@ "type": "array" }, "ignore_mount_network": { - "default": true + "default": true, + "type": "boolean" }, "ignore_mount_optical": { - "default": true + "default": true, + "type": "boolean" }, "ignore_mount_regexp": { "default": [ @@ -2580,10 +2887,12 @@ "/^\\/var\\/dhcpd\\/dev/", "/UMA/", "/^\\/Volumes\\/OS X Base System/" - ] + ], + "type": "array" }, "ignore_mount_removable": { - "default": true + "default": true, + "type": "boolean" }, "ignore_mount_string": { "default": [ @@ -2598,30 +2907,39 @@ "type": "array" }, "ignore_unmapable_port": { - "default": false + "default": false, + "type": "boolean" }, "influxdb.timeout": { - "default": 0 + "default": 0, + "type": "integer" }, "influxdb.verifySSL": { - "default": false + "default": false, + "type": "boolean" }, "install_dir": { + "type": "text" }, "int_core": { - "default": 1 + "default": true, + "type": "boolean" }, "int_customers": { - "default": 1 + "default": true, + "type": "boolean" }, "int_l2tp": { - "default": 0 + "default": false, + "type": "boolean" }, "int_peering": { - "default": 1 + "default": true, + "type": "boolean" }, "int_transit": { - "default": 1 + "default": true, + "type": "boolean" }, "ipmi.type": { "default": [ @@ -2629,7 +2947,8 @@ "lan", "imb", "open" - ] + ], + "type": "array" }, "ipmi_unit": { "default": { @@ -2640,7 +2959,8 @@ "degrees C": "temperature", "discrete": "", "percent": "load" - } + }, + "type": "array" }, "ipmitool": { "default": "/usr/bin/ipmitool", @@ -2650,57 +2970,74 @@ "type": "text" }, "irc_alert": { - "default": false + "default": false, + "type": "boolean" }, "irc_alert_short": { - "default": false + "default": false, + "type": "boolean" }, "irc_alert_utf8": { - "default": false + "default": false, + "type": "boolean" }, "irc_authtime": { - "default": 3 + "default": 3, + "type": "integer" }, "irc_chan": { "type": "array" }, "irc_ctcp": { - "default": false + "default": false, + "type": "boolean" }, "irc_ctcp_version": { - "default": "LibreNMS IRCbot. https://www.librenms.org/" + "default": "LibreNMS IRCbot. https://www.librenms.org/", + "type": "text" }, "irc_debug": { - "default": false + "default": false, + "type": "boolean" }, "irc_external": { - "default": "" + "default": "", + "type": "text" }, "irc_host": { - "default": "" + "default": "", + "type": "text" }, "irc_maxretry": { - "default": 3 + "default": 3, + "type": "integer" }, "irc_nick": { + "type": "text" }, "irc_pass": { - "default": "" + "default": "", + "type": "password" }, "irc_port": { - "default": "" + "default": "", + "type": "text" }, "leaflet.default_lat": { - "default": 51.4800 + "default": 51.4800, + "type": "float" }, "leaflet.default_lng": { - "default": 0 + "default": 0, + "type": "float" }, "leaflet.default_zoom": { - "default": 2 + "default": 2, + "type": "integer" }, "leaflet.tile_url": { - "default": "{s}.tile.openstreetmap.org" + "default": "{s}.tile.openstreetmap.org", + "type": "text" }, "libvirt_protocols": { "default": [ @@ -2710,29 +3047,38 @@ "type": "array" }, "list_colour.even": { - "default": "#ffffff" + "default": "#ffffff", + "type": "color" }, "list_colour.even_alt": { - "default": "#f9f9f9" + "default": "#f9f9f9", + "type": "color" }, "list_colour.even_alt2": { - "default": "#f0f0f0" + "default": "#f0f0f0", + "type": "color" }, "list_colour.highlight": { - "default": "#ffcccc" + "default": "#ffcccc", + "type": "color" }, "list_colour.odd": { - "default": "#eeeeee" + "default": "#eeeeee", + "type": "color" }, "list_colour.odd_alt": { - "default": "#f0f0f0" + "default": "#f0f0f0", + "type": "color" }, "list_colour.odd_alt2": { - "default": "#e3e3e3" + "default": "#e3e3e3", + "type": "color" }, "log_dir": { + "type": "text" }, "log_file": { + "type": "text" }, "login_message": { "default": "Unauthorised access or use shall render the user liable to criminal and/or civil prosecution.", @@ -2742,15 +3088,23 @@ "type": "text" }, "map.engine": { - "default": "leaflet" + "default": "leaflet", + "type": "select", + "options": { + "leaflet": "Leaflet", + "mapeal": "Mapeal" + } }, "mapael.default_map": { - "default": "maps/world_countries.js" + "default": "maps/world_countries.js", + "type": "text" }, "mib_dir": { + "type": "text" }, "mono_font": { - "default": "DejaVuSansMono" + "default": "DejaVuSansMono", + "type": "text" }, "mtr": { "default": "/usr/bin/mtr", @@ -2760,10 +3114,8 @@ "type": "text" }, "nagios_plugins": { - "default": "/usr/lib/nagios/plugins" - }, - "navbar.manage_groups.hide": { - "default": 0 + "default": "/usr/lib/nagios/plugins", + "type": "text" }, "network_map_items": { "default": [ @@ -2805,10 +3157,12 @@ "edge": "#ff777788", "node": "#ffdddd" } - } + }, + "type": "array" }, "network_map_vis_options": { - "default": "{\n layout:{\n randomSeed:2\n },\n \"edges\": {\n arrows: {\n to: {enabled: true, scaleFactor:0.5},\n },\n \"smooth\": {\n enabled: false\n },\n font: {\n size: 14,\n color: \"red\",\n face: \"sans\",\n background: \"white\",\n strokeWidth:3,\n align: \"middle\",\n strokeWidth: 2\n }\n },\n \"physics\": {\n \"barnesHut\": {\n \"gravitationalConstant\": -2000,\n \"centralGravity\": 0.3,\n \"springLength\": 200,\n \"springConstant\": 0.04,\n \"damping\": 0.09,\n \"avoidOverlap\": 1\n },\n\n \"forceAtlas2Based\": {\n \"gravitationalConstant\": -50,\n \"centralGravity\": 0.01,\n \"springLength\": 200,\n \"springConstant\": 0.08,\n \"damping\": 0.4,\n \"avoidOverlap\": 1\n },\n\n \"repulsion\": {\n \"centralGravity\": 0.2,\n \"springLength\": 250,\n \"springConstant\": 0.2,\n \"nodeDistance\": 200,\n \"damping\": 0.07\n },\n\n \"hierarchicalRepulsion\": {\n \"nodeDistance\": 300,\n \"centralGravity\": 0.2,\n \"springLength\": 300,\n \"springConstant\": 0.2,\n \"damping\": 0.07\n },\n\n \"maxVelocity\": 50,\n \"minVelocity\": 0.4,\n \"solver\": \"hierarchicalRepulsion\",\n \"stabilization\": {\n \"enabled\": true,\n \"iterations\": 1000,\n \"updateInterval\": 100,\n \"onlyDynamicEdges\": false,\n \"fit\": true\n },\n\n \"timestep\": 0.4,\n }\n}" + "default": "{\n layout:{\n randomSeed:2\n },\n \"edges\": {\n arrows: {\n to: {enabled: true, scaleFactor:0.5},\n },\n \"smooth\": {\n enabled: false\n },\n font: {\n size: 14,\n color: \"red\",\n face: \"sans\",\n background: \"white\",\n strokeWidth:3,\n align: \"middle\",\n strokeWidth: 2\n }\n },\n \"physics\": {\n \"barnesHut\": {\n \"gravitationalConstant\": -2000,\n \"centralGravity\": 0.3,\n \"springLength\": 200,\n \"springConstant\": 0.04,\n \"damping\": 0.09,\n \"avoidOverlap\": 1\n },\n\n \"forceAtlas2Based\": {\n \"gravitationalConstant\": -50,\n \"centralGravity\": 0.01,\n \"springLength\": 200,\n \"springConstant\": 0.08,\n \"damping\": 0.4,\n \"avoidOverlap\": 1\n },\n\n \"repulsion\": {\n \"centralGravity\": 0.2,\n \"springLength\": 250,\n \"springConstant\": 0.2,\n \"nodeDistance\": 200,\n \"damping\": 0.07\n },\n\n \"hierarchicalRepulsion\": {\n \"nodeDistance\": 300,\n \"centralGravity\": 0.2,\n \"springLength\": 300,\n \"springConstant\": 0.2,\n \"damping\": 0.07\n },\n\n \"maxVelocity\": 50,\n \"minVelocity\": 0.4,\n \"solver\": \"hierarchicalRepulsion\",\n \"stabilization\": {\n \"enabled\": true,\n \"iterations\": 1000,\n \"updateInterval\": 100,\n \"onlyDynamicEdges\": false,\n \"fit\": true\n },\n\n \"timestep\": 0.4,\n }\n}", + "type": "text" }, "nfdump": { "default": "/usr/bin/nfdump", @@ -2831,8 +3185,7 @@ "group": "external", "section": "nfsen", "order": 1, - "type": "array", - "required": true + "type": "array" }, "nfsen_subdirlayout": { "default": 1, @@ -2922,7 +3275,8 @@ "76800": "24 hours", "115200": "36 hours", "153600": "48 hours" - } + }, + "type": "array" }, "nfsen_split_char": { "group": "external", @@ -2944,13 +3298,16 @@ "type": "text" }, "notifications.LibreNMS": { - "default": "http://www.librenms.org/notifications.rss" + "default": "http://www.librenms.org/notifications.rss", + "type": "text" }, "notifications.local": { - "default": "misc/notifications.rss" + "default": "misc/notifications.rss", + "type": "text" }, "old_graphs": { - "default": 1 + "default": true, + "type": "boolean" }, "os.default.over": { "default": [ @@ -2962,10 +3319,12 @@ "graph": "device_mempool", "text": "Memory Usage" } - ] + ], + "type": "array" }, "os_def_cache_time": { - "default": 86400 + "default": 86400, + "type": "integer" }, "os_group.unix.over": { "default": [ @@ -2977,19 +3336,24 @@ "graph": "device_ucd_memory", "text": "Memory Usage" } - ] + ], + "type": "array" }, "os_group.unix.processor_stacked": { - "default": 1 + "default": true, + "type": "boolean" }, "os_group.unix.type": { - "default": "server" + "default": "server", + "type": "text" }, "overlib_defaults": { - "default": ",FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e'" + "default": ",FGCOLOR,'#ffffff', BGCOLOR, '#e5e5e5', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#555555', TEXTCOLOR, '#3e3e3e'", + "type": "text" }, "overview_show_sysDescr": { - "default": true + "default": true, + "type": "boolean" }, "own_hostname": { "default": "localhost", @@ -3030,7 +3394,8 @@ "default": false, "group": "external", "section": "oxidized", - "order": 5 + "order": 5, + "type": "boolean" }, "oxidized.url": { "default": false, @@ -3038,19 +3403,27 @@ "section": "oxidized", "order": 1, "type": "text", - "pattern": "[a-zA-Z0-9]{1,5}://.*", - "required": true + "validate": { + "value": "regex:^[a-zA-Z0-9]{1,5}://.*$" + } }, "page_refresh": { - "default": 300 + "default": 300, + "type": "integer", + "units": "seconds" }, "page_title_prefix": { - "default": "" + "default": "", + "type": "text" }, "page_title_suffix": { + "type": "text" }, - "peering_descr.0": { - "default": "peering" + "peering_descr": { + "default": [ + "peering" + ], + "type": "array" }, "peeringdb.enabled": { "default": false, @@ -3060,7 +3433,11 @@ "type": "boolean" }, "percentile_value": { - "default": 95 + "default": 95, + "type": "integer", + "validate": { + "value": "integer|between:0,100" + } }, "perf_times_purge": { "default": 30, @@ -3077,144 +3454,235 @@ "type": "text" }, "plugin_dir": { + "type": "text" }, "poller_modules.unix-agent": { - "default": false + "default": false, + "type": "boolean" }, "poller_modules.os": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ipmi": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.sensors": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.processors": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.mempools": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.storage": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.netstats": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.hr-mib": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ucd-mib": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ipSystemStats": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ports": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.bgp-peers": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.junose-atm-vp": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.toner": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.ucd-diskio": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.wifi": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.wireless": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ospf": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.cisco-ipsec-flow-monitor": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-remote-access-monitor": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-cef": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-sla": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-mac-accounting": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cipsec-tunnels": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-ace-loadbalancer": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-ace-serverfarms": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-asa-firewall": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-voice": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-cbqos": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-otv": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-qfp": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.cisco-vpdn": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.nac": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.netscaler-vsvr": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.aruba-controller": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.entity-physical": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.entity-state": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.applications": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.mib": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.stp": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.ntp": { - "default": true + "default": true, + "type": "boolean" + }, "poller_modules.loadbalancers": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.mef": { - "default": false + "default": false, + "type": "boolean" + }, "poller_modules.mpls": { - "default": true + "default": true, + "type": "boolean" + }, "port_descr_parser": { - "default": "includes/port-descr-parser.inc.php" + "default": "includes/port-descr-parser.inc.php", + "type": "text" }, "ports_fdb_purge": { "default": 10, @@ -3225,22 +3693,34 @@ "type": "integer" }, "ports_page_default": { - "default": "details" + "default": "details", + "type": "select", + "options":{ + "basic": "Basic", + "details": "Details", + "arp": "ARP", + "fdb": "FDB" + } }, "project_home": { - "default": "http://www.librenms.org/" + "default": "http://www.librenms.org/", + "type": "text" }, "project_id": { - "default": "librenms" + "default": "librenms", + "type": "text" }, "project_issues": { - "default": "https://community.librenms.org/c/help" + "default": "https://community.librenms.org/c/help", + "type": "text" }, "project_name": { - "default": "LibreNMS" + "default": "LibreNMS", + "type": "text" }, "prometheus.job": { - "default": "librenms" + "default": "librenms", + "type": "text" }, "public_status": { "default": false, @@ -3250,13 +3730,20 @@ "type": "boolean" }, "rancid_ignorecomments": { - "default": 0 + "default": false, + "type": "boolean" }, "rancid_repo_type": { - "default": "svn" + "default": "svn", + "type": "select", + "options": { + "svn": "SVN", + "git": "Git" + } }, "rewrite_if_regexp./^cpu interface/": { - "default": "Mgmt" + "default": "Mgmt", + "type": "text" }, "rrd.heartbeat": { "default": 600, @@ -3292,13 +3779,16 @@ "type": "text" }, "rrdgraph_def_text": { - "default": "-c BACK#EEEEEE00 -c SHADEA#EEEEEE00 -c SHADEB#EEEEEE00 -c CANVAS#FFFFFF00 -c GRID#a5a5a5 -c MGRID#FF9999 -c FRAME#5e5e5e -c ARROW#5e5e5e -R normal" + "default": "-c BACK#EEEEEE00 -c SHADEA#EEEEEE00 -c SHADEB#EEEEEE00 -c CANVAS#FFFFFF00 -c GRID#a5a5a5 -c MGRID#FF9999 -c FRAME#5e5e5e -c ARROW#5e5e5e -R normal", + "type": "text" }, "rrdgraph_def_text_color": { - "default": "000000" + "default": "000000", + "type": "color" }, "rrdgraph_real_percentile": { - "default": false + "default": false, + "type": "boolean" }, "rrdtool": { "default": "rrdtool", @@ -3315,9 +3805,11 @@ "type": "boolean" }, "secure_cookies": { + "type": "boolean" }, "sensors.guess_limits": { - "default": true + "default": true, + "type": "boolean" }, "sfdp": { "default": "/usr/bin/sfdp", @@ -3327,16 +3819,20 @@ "type": "text" }, "show_locations": { - "default": 1 + "default": true, + "type": "boolean" }, "show_locations_dropdown": { - "default": 1 + "default": true, + "type": "boolean" }, "show_overview_tab": { - "default": true + "default": true, + "type": "boolean" }, "show_services": { - "default": 0 + "default": false, + "type": "boolean" }, "site_style": { "default": "light", @@ -3352,70 +3848,92 @@ } }, "sla_type_labels.dhcp": { - "default": "DHCP" + "default": "DHCP", + "type": "text" }, "sla_type_labels.dlsw": { - "default": "DLSW" + "default": "DLSW", + "type": "text" }, "sla_type_labels.dns": { - "default": "DNS" + "default": "DNS", + "type": "text" }, "sla_type_labels.echo": { - "default": "ICMP ping" + "default": "ICMP ping", + "type": "text" }, "sla_type_labels.ethernetJitter": { - "default": "Ethernet jitter" + "default": "Ethernet jitter", + "type": "text" }, "sla_type_labels.ethernetPing": { - "default": "Ethernet ping" + "default": "Ethernet ping", + "type": "text" }, "sla_type_labels.fileIO": { - "default": "File I/O" + "default": "File I/O", + "type": "text" }, "sla_type_labels.ftp": { - "default": "FTP" + "default": "FTP", + "type": "text" }, "sla_type_labels.http": { - "default": "HTTP" + "default": "HTTP", + "type": "text" }, "sla_type_labels.icmpjitter": { - "default": "ICMP jitter" + "default": "ICMP jitter", + "type": "text" }, "sla_type_labels.jitter": { - "default": "Jitter" + "default": "Jitter", + "type": "text" }, "sla_type_labels.lspGroup": { - "default": "LSP group" + "default": "LSP group", + "type": "text" }, "sla_type_labels.lspPing": { - "default": "LSP ping" + "default": "LSP ping", + "type": "text" }, "sla_type_labels.lspPingPseudowire": { - "default": "LSP Pseudowire ping" + "default": "LSP Pseudowire ping", + "type": "text" }, "sla_type_labels.lspTrace": { - "default": "LSP trace" + "default": "LSP trace", + "type": "text" }, "sla_type_labels.pathEcho": { - "default": "Path ICMP ping" + "default": "Path ICMP ping", + "type": "text" }, "sla_type_labels.rtp": { - "default": "RTP" + "default": "RTP", + "type": "text" }, "sla_type_labels.script": { - "default": "Script" + "default": "Script", + "type": "text" }, "sla_type_labels.tcpConnect": { - "default": "TCP connect" + "default": "TCP connect", + "type": "text" }, "sla_type_labels.udpEcho": { - "default": "UDP ping" + "default": "UDP ping", + "type": "text" }, "sla_type_labels.voip": { - "default": "VoIP" + "default": "VoIP", + "type": "text" }, "smokeping.pings": { - "default": 20 + "default": 20, + "type": "integer" }, "snmp.community": { "group": "poller", @@ -3514,7 +4032,12 @@ "type": "text" }, "snmptraps.eventlog": { - "default": "unhandled" + "default": "unhandled", + "type": "select", + "options": { + "unhandled": "Unhandled Traps", + "all": "All Traps" + } }, "snmpwalk": { "default": "/usr/bin/snmpwalk", @@ -3524,22 +4047,31 @@ "type": "text" }, "sso.create_users": { - "default": true + "default": true, + "type": "boolean" }, "sso.update_users": { - "default": true + "default": true, + "type": "boolean" }, "sso.user_attr": { - "default": "REMOTE_USER" + "default": "REMOTE_USER", + "type": "text" }, "storage_perc_warn": { - "default": 60 + "default": 60, + "type": "integer", + "validate": { + "value": "integer|between:0,100" + } }, "stylesheet": { - "default": "css/styles.css" + "default": "css/styles.css", + "type": "text" }, "summary_errors": { - "default": 0 + "default": 0, + "type": "integer" }, "syslog_filter": { "default": [ @@ -3547,7 +4079,8 @@ "Connection from UDP: [", "ipSystemStatsTable node ipSystemStatsOutFragOKs not implemented", "diskio.c" - ] + ], + "type": "array" }, "syslog_purge": { "default": 30, @@ -3557,13 +4090,16 @@ "type": "integer" }, "temp_dir": { - "default": "/tmp" + "default": "/tmp", + "type": "text" }, "top_devices": { - "default": 1 + "default": true, + "type": "boolean" }, "top_ports": { - "default": 1 + "default": true, + "type": "boolean" }, "traceroute": { "default": "traceroute", @@ -3579,14 +4115,17 @@ "order": 14, "type": "text" }, - "transit_descr.0": { - "default": "transit" + "transit_descr": { + "default": ["transit"], + "type": "array" }, "unix-agent-connection-time-out": { - "default": 10 + "default": 10, + "type": "integer" }, "unix-agent-read-time-out": { - "default": 10 + "default": 10, + "type": "integer" }, "unix-agent.connection-timeout": { "default": 10, @@ -3626,10 +4165,15 @@ } }, "uptime_warning": { - "default": 84600 + "default": 84600, + "type": "integer", + "validate": { + "value": "integer|min:0" + } }, "vertical_summary": { - "default": 0 + "default": 0, + "type": "integer" }, "virsh": { "default": "/usr/bin/virsh", @@ -3639,16 +4183,20 @@ "type": "text" }, "warn.ifdown": { - "default": true + "default": true, + "type": "boolean" }, "warn_colour": { - "default": "#ffeeee" + "default": "#ffeeee", + "type": "color" }, "warn_colour_alt": { - "default": "#ffcccc" + "default": "#ffcccc", + "type": "color" }, "web_mouseover": { - "default": true + "default": true, + "type": "boolean" }, "webui.availability_map_box_size": { "default": 165, @@ -3700,8 +4248,7 @@ "group": "webui", "section": "search", "order": 0, - "type": "integer", - "required": true + "type": "integer" }, "webui.graph_stacked": { "default": false, @@ -3736,7 +4283,8 @@ "type": "text" }, "xirrus_disable_stations": { - "default": false + "default": false, + "type": "boolean" } } } diff --git a/misc/config_schema.json b/misc/config_schema.json new file mode 100644 index 0000000000..b902b7c266 --- /dev/null +++ b/misc/config_schema.json @@ -0,0 +1,88 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "Warning!": { + "type": "string" + }, + "config": { + "type": "object", + "propertyNames": { + "pattern": "^[a-z0-9_.\\-]+$" + }, + "additionalProperties": { + "type": "object", + "properties": { + "default": {}, + "type": { + "type": "string", + "enum": [ + "integer", + "text", + "boolean", + "select", + "array", + "password", + "email", + "color", + "float", + "graph", + "dashboard-select", + "snmp3auth", + "ldap-groups", + "ad-groups" + ] + }, + "section": { + "type": "string" + }, + "group": { + "type": "string" + }, + "order": { + "type": "integer" + }, + "options": { + "type": "object", + "minProperties": 2 + }, + "units": { + "type": "string" + }, + "validate": { + "propertyNames": { + "pattern": "^value$", + "type": "string" + } + }, + "when": { + "properties": { + "setting": { + "type": "string" + }, + "operator": { + "type": "string", + "enum": [ + "equals", + "in" + ] + }, + "value": { + "type": ["string", "array"] + } + } + }, + "disabled": { + "type": "boolean" + }, + "hidden": { + "type": "boolean" + } + }, + "required": ["type"], + "additionalProperties": false + } + } + }, + "required": ["Warning!", "config"] +} diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index 778ec66419..f1f00b46f7 100644 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -310,6 +310,10 @@ return [ 'description' => 'Enable Distributed Polling (requires additional setup)', 'help' => 'Enable distributed polling system wide. This is intended for load sharing, not remote polling. You must read the documentation for steps to enable: https://docs.librenms.org/Extensions/Distributed-Poller/' ], + 'distributed_poller_group' => [ + 'description' => 'Default Poller Group', + 'help' => 'The default poller group all pollers should poll if none is set in config.php' + ], 'distributed_poller_memcached_host' => [ 'description' => 'Memcached host', 'help' => 'The hostname or ip for the memcached server. This is required for poller_wrapper.py and daily.sh locking.' @@ -722,6 +726,7 @@ return [ ], 'validate' => [ 'boolean' => ':value is not a valid boolean', + 'color' => ':value is not a valid hex color code', 'email' => ':value is not a valid email', 'integer' => ':value is not an integer', 'password' => 'The password is incorrect', diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index a166c1e47b..cbbc0cbe30 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -22,6 +22,6 @@ @routes - + @endpush diff --git a/tests/YamlTest.php b/tests/YamlTest.php index 2fd1874b22..5239f776e2 100644 --- a/tests/YamlTest.php +++ b/tests/YamlTest.php @@ -25,6 +25,7 @@ namespace LibreNMS\Tests; +use Illuminate\Support\Str; use JsonSchema\Constraints\Constraint; use JsonSchema\Exception\JsonDecodingException; use LibreNMS\Config; @@ -34,6 +35,11 @@ use Symfony\Component\Yaml\Yaml; class YamlTest extends TestCase { + public function testConfigSchema() + { + $this->validateFileAgainstSchema('/misc/config_definitions.json', '/misc/config_schema.json'); + } + /** * @group os */ @@ -52,36 +58,8 @@ class YamlTest extends TestCase private function validateYamlFilesAgainstSchema($dir, $schema_file) { - $schema = (object)['$ref' => 'file://' . Config::get('install_dir') . $schema_file]; - - foreach ($this->listFiles($dir . '/*.yaml') as $info) { - list($file, $path) = $info; - - try { - $data = Yaml::parse(file_get_contents($path)); - } catch (ParseException $e) { - throw new ExpectationFailedException("$path Could not be parsed", null, $e); - } - - try { - $validator = new \JsonSchema\Validator; - $validator->validate( - $data, - $schema, - Constraint::CHECK_MODE_TYPE_CAST // | Constraint::CHECK_MODE_VALIDATE_SCHEMA - ); - } catch (JsonDecodingException $e) { - // Output the filename so we know what file failed - echo "Json format invalid in $schema_file\n"; - throw $e; - } - - $errors = collect($validator->getErrors()) - ->reduce(function ($out, $error) { - return sprintf("%s[%s] %s\n", $out, $error['property'], $error['message']); - }, ''); - - $this->assertTrue($validator->isValid(), "$file does not validate. Violations:\n$errors"); + foreach ($this->listFiles($dir . '/*.yaml') as $file) { + $this->validateFileAgainstSchema($file, $schema_file); } } @@ -102,8 +80,47 @@ class YamlTest extends TestCase return collect(glob($pattern)) ->reduce(function ($array, $file) { $name = basename($file); - $array[$name] = [$name, $file]; + $array[$name] = $file; return $array; }, []); } + + /** + * @param $filePath + * @param $schema_file + */ + private function validateFileAgainstSchema($filePath, $schema_file) + { + $schema = (object)['$ref' => 'file://' . Config::get('install_dir') . $schema_file]; + $filename = basename($filePath); + $filePath = Str::start($filePath, Config::get('install_dir')); + + try { + $data = Str::endsWith($filePath, '.json') + ? json_decode(file_get_contents($filePath)) + : Yaml::parse(file_get_contents($filePath)); + } catch (ParseException $e) { + throw new ExpectationFailedException("$filePath Could not be parsed", null, $e); + } + + try { + $validator = new \JsonSchema\Validator; + $validator->validate( + $data, + $schema, + Constraint::CHECK_MODE_TYPE_CAST // | Constraint::CHECK_MODE_VALIDATE_SCHEMA + ); + } catch (JsonDecodingException $e) { + // Output the filename so we know what file failed + echo "Json format invalid in $schema_file\n"; + throw $e; + } + + $errors = collect($validator->getErrors()) + ->reduce(function ($out, $error) { + return sprintf("%s[%s] %s\n", $out, $error['property'], $error['message']); + }, ''); + + $this->assertTrue($validator->isValid(), "$filename does not validate. Violations:\n$errors"); + } }