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

@@ -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())

+ 15
- 10
linux/map.jinja View File

@@ -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,

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

@@ -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 %}

Loading…
Cancel
Save