Use Pillar to choose which interfaces to monitor.pull/122/head
@@ -2,16 +2,15 @@ | |||
import re | |||
_alphanum_re = re.compile(r'^[a-z0-9]+$') | |||
_lo_re = re.compile(r'^lo$') | |||
def _filter(interface): | |||
return _alphanum_re.match(interface) and not _lo_re.match(interface) | |||
def ls(): | |||
def ls(regex): | |||
""" | |||
Provide a list of network interfaces. | |||
""" | |||
_lo_re = re.compile(r'^lo$') | |||
_alphanum_re = re.compile(regex) | |||
def _filter(interface): | |||
return _alphanum_re.match(interface) and not _lo_re.match(interface) | |||
return filter(_filter, __salt__['grains.get']('ip_interfaces', {}).keys()) |
@@ -200,24 +200,29 @@ | |||
{% set monitoring = salt['grains.filter_by']({ | |||
'default': { | |||
'zombie': { | |||
'warn': 3, | |||
'crit': 7, | |||
'warn': 3, | |||
'crit': 7, | |||
}, | |||
'procs': { | |||
'warn': 5000, | |||
'crit': 10000, | |||
'warn': 5000, | |||
'crit': 10000, | |||
}, | |||
'load': { | |||
'warn': '6,4,2', | |||
'crit': '12,8,4', | |||
'warn': '6,4,2', | |||
'crit': '12,8,4', | |||
}, | |||
'swap': { | |||
'warn': '50%', | |||
'crit': '20%', | |||
'warn': '50%', | |||
'crit': '20%', | |||
}, | |||
'disk': { | |||
'warn': '15%', | |||
'crit': '5%', | |||
'warn': '15%', | |||
'crit': '5%', | |||
}, | |||
'netlink': { | |||
'interfaces': [], | |||
'interface_regex': '^[a-z0-9]+$', | |||
'ignore_selected': False, | |||
}, | |||
'cpu_idle_percentage': { | |||
'warn': 10.0, |
@@ -1,11 +1,17 @@ | |||
{%- from "linux/map.jinja" import monitoring with context %} | |||
local_plugin: | |||
linux_network_netlink: | |||
plugin: netlink | |||
template: linux/files/collectd_netlink.conf | |||
ignore_selected: false | |||
{%- if 'linux_netlink.ls' in salt.keys() %} | |||
ignore_selected: {{ monitoring.netlink.ignore_selected }} | |||
{%- if monitoring.netlink.interfaces is list and monitoring.netlink.interfaces|length > 0 %} | |||
{%- set interfaces = monitoring.netlink.interfaces %} | |||
{%- else %} | |||
{%- set interfaces = salt['linux_netlink.ls'](monitoring.netlink.interface_regex) %} | |||
{%- endif %} | |||
{%- if interfaces %} | |||
interfaces: | |||
{%- for interface_name in salt['linux_netlink.ls']() %} | |||
{%- for interface_name in interfaces|sort %} | |||
- {{ interface_name }} | |||
{%- endfor %} | |||
{%- endif %} |