{%- set node_config = salt['pillar.get'] ('nodes:' ~ grains['id']) %} {%- set ro_community = salt['pillar.get'] ('globals:snmp:ro_community', "Configure globals:snmp:ro_community in pillar...") %} {%- set sys_contact = salt['pillar.get'] ('globals:ops_mail', "Configure globals:ops_mail in pillar...") %} {%- set sys_location = node_config.get ('sysLocation', "Please fix sysLocation...") %} {%- set nms_list = salt['pillar.get'] ('globals:snmp:nms_list', []) %} {%- set sites_config = salt['pillar.get'] ('sites', {}) %} {%- set ifaces = salt['ffho_net.get_interface_config'] (node_config, sites_config) %} # # /etc/snmp/snmpd.conf (Salt managed) # sysLocation {{ sys_location }} sysContact {{ sys_contact }} sysServices 72 # Listen for connections from the local system agentAddress udp:127.0.0.1:161 agentAddress udp6:[::1]:161 # Listen for connections on Loopback-IPs agentAddress udp:{{ salt['ffho_net.get_loopback_ip'] (node_config, grains['id'], 'v4') }}:161 agentAddress udp6:[{{ salt['ffho_net.get_loopback_ip'] (node_config, grains['id'], 'v6') }}]:161 # We accept requests from those fine boxes rocommunity {{ ro_community }} 127.0.0.1 rocommunity6 {{ ro_community }} ::1 {%- for entry in nms_list %} {%- if ':' in entry %} rocommunity6 {{ ro_community }} {{ entry }} {%- else %} rocommunity {{ ro_community }} {{ entry }} {%- endif %} {%- endfor %} # # Network interfaces # # Set bandwidth of VLAN, B.A.T.M.A.N., bridge and vEth interface to 100Mb/s # The default is 10Mb/s which makes LibreNMS whine quite a lot if there is # a little traffic. 100Mb/s currently seems a decent idea for us but is not # an ideal value for everyone. {%- for iface in ifaces|sort %} {%- set config = ifaces.get (iface) %} {%- if 'vlan-raw-device' in config or "batman" in config or "bridge" in config or config.get ('link-type', '') == 'veth' %} interface {{ iface }} 6 100000000 {%- endif %} {%- endfor %} {%- if "fastd" in node_config.get ('roles') %} {%- for site in node_config.get ('sites') %} interface {{ site }}_intergw 6 100000000 {%- endfor %} {%- endif %} {%- set ovpn_networks = [] %} {%- for netname, network in salt['pillar.get']('ovpn', {}).items () if grains['id'] in network %} {%- do ovpn_networks.append (netname) %} {%- endfor %} {%- for netname in ovpn_networks|sort %} {%- set network = salt['pillar.get']('ovpn:' ~ netname) %} {%- set network_config = network.get ('config') %} {%- set host_stanza = network.get (grains['id']) %} {%- set host_config = host_stanza.get ('config', {}) %} {%- set interface = host_config.get ('interface', network_config.get ('interface')) %} {%- if loop.first %} # OpenVPN interfaces {%- endif %} interface {{ interface }} 6 100000000 {%- endfor %} # # Disk Monitoring # # 10MBs required on root disk, 5% free on /var, 10% free on all other disks disk / 10000 disk /var 5% includeAllDisks 10% # Walk the UCD-SNMP-MIB::dskTable to see the resulting output # Note that this table will be empty if there are no "disk" entries in the snmpd.conf file # # System Load # # Unacceptable 1-, 5-, and 15-minute load averages load 12 10 5 # Walk the UCD-SNMP-MIB::laTable to see the resulting output # Note that this table *will* be populated, even without a "load" entry in the snmpd.conf file # # Event MIB - automatically generate alerts # # Remember to activate the 'createUser' lines above iquerySecName internalUser rouser internalUser # generate traps on UCD error conditions defaultMonitors no # generate traps on linkUp/Down linkUpDownNotifications no master agentx