Browse Source

Merge pull request #113 from jm890/pillar_interface_selection

Use Pillar to choose which interfaces to monitor.
pull/122/head
Aleš Komárek 7 years ago
parent
commit
8f441f08e3
3 changed files with 31 additions and 21 deletions
  1. +7
    -8
      _modules/linux_netlink.py
  2. +15
    -10
      linux/map.jinja
  3. +9
    -3
      linux/meta/collectd.yml

+ 7
- 8
_modules/linux_netlink.py View File



import re 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. 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()) return filter(_filter, __salt__['grains.get']('ip_interfaces', {}).keys())

+ 15
- 10
linux/map.jinja View File

{% set monitoring = salt['grains.filter_by']({ {% set monitoring = salt['grains.filter_by']({
'default': { 'default': {
'zombie': { 'zombie': {
'warn': 3,
'crit': 7,
'warn': 3,
'crit': 7,
}, },
'procs': { 'procs': {
'warn': 5000,
'crit': 10000,
'warn': 5000,
'crit': 10000,
}, },
'load': { 'load': {
'warn': '6,4,2',
'crit': '12,8,4',
'warn': '6,4,2',
'crit': '12,8,4',
}, },
'swap': { 'swap': {
'warn': '50%',
'crit': '20%',
'warn': '50%',
'crit': '20%',
}, },
'disk': { 'disk': {
'warn': '15%',
'crit': '5%',
'warn': '15%',
'crit': '5%',
},
'netlink': {
'interfaces': [],
'interface_regex': '^[a-z0-9]+$',
'ignore_selected': False,
}, },
'cpu_idle_percentage': { 'cpu_idle_percentage': {
'warn': 10.0, 'warn': 10.0,

+ 9
- 3
linux/meta/collectd.yml View File

{%- from "linux/map.jinja" import monitoring with context %}
local_plugin: local_plugin:
linux_network_netlink: linux_network_netlink:
plugin: netlink plugin: netlink
template: linux/files/collectd_netlink.conf 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: interfaces:
{%- for interface_name in salt['linux_netlink.ls']() %}
{%- for interface_name in interfaces|sort %}
- {{ interface_name }} - {{ interface_name }}
{%- endfor %} {%- endfor %}
{%- endif %} {%- endif %}

Loading…
Cancel
Save