From 989fb446c1db090f7f9a4d1401b5ba83681af581 Mon Sep 17 00:00:00 2001 From: Matt Taggart Date: Thu, 26 Jun 2014 17:21:27 -0700 Subject: new resource collector for 'ps' checks --- manifests/agent/ps.pp | 17 +++++++++++++++++ manifests/config.pp | 1 + manifests/ps.pp | 29 +++++++++++++++++++++++++++++ manifests/server/collect_ps.pp | 29 +++++++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 manifests/agent/ps.pp create mode 100644 manifests/ps.pp create mode 100644 manifests/server/collect_ps.pp diff --git a/manifests/agent/ps.pp b/manifests/agent/ps.pp new file mode 100644 index 0000000..67a999f --- /dev/null +++ b/manifests/agent/ps.pp @@ -0,0 +1,17 @@ +define check_mk::agent::ps ( + # procname and levels have defaults in check_mk::ps + $procname = undef, + $levels = undef, + # user is optional + $user = undef +) { + + @@check_mk::ps { "${::fqdn}_${name}": + desc => $name, + host => $::fqdn, + procname => $procname, + user => $user, + levels => $levels, + tag => 'check_mk_ps'; + } +} diff --git a/manifests/config.pp b/manifests/config.pp index 1d7d6cd..6736147 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -51,6 +51,7 @@ class check_mk::config ( } if ( $use_storedconfigs ) { class { 'check_mk::server::collect_hosts': } + class { 'check_mk::server::collect_ps': } } diff --git a/manifests/ps.pp b/manifests/ps.pp new file mode 100644 index 0000000..c84f583 --- /dev/null +++ b/manifests/ps.pp @@ -0,0 +1,29 @@ +define check_mk::ps ( + $target, + $host, + $desc, + $procname = "/usr/sbin/${desc}", + $levels = '1, 1, 1, 1', + $user = undef +) { + + # lines look like + # ( "foo.example.com", "ps", "NAME", ( "/usr/sbin/foo", 1, 1, 1, 1 ) ) + # or with a user + # ( "foo.example.com", "ps", "NAME", ( "/usr/sbin/foo", "user", 1, 1, 1, 1 ) ) + if $user { + $check = " ( \"${host}\", \"ps\", \"${desc}\", ( \"${procname}\", ${user}, ${levels} ) ),\n" + } else { + $check = " ( \"${host}\", \"ps\", \"${desc}\", ( \"${procname}\", ${levels} ) ),\n" + } + + # FIXME: we could be smarter about this and consolidate host checks that have + # identical settings and that would make the config file make more sense + # for humans. but for now we'll just do separate lines. + concat::fragment { "check_mk_ps-${host}_${desc}": + target => $target, + content => $check, + order => 20 + } +} + diff --git a/manifests/server/collect_ps.pp b/manifests/server/collect_ps.pp new file mode 100644 index 0000000..7a0fb8f --- /dev/null +++ b/manifests/server/collect_ps.pp @@ -0,0 +1,29 @@ +class check_mk::server::collect_ps ( + $config = "${::check_mk::config::etc_dir}/check_mk/conf.d/ps.mk" +) { + + concat { $config: + owner => 'root', + group => 'root', + mode => '0644', + notify => Exec['check_mk-refresh'], + } + + concat::fragment{'check_mk_ps_header': + target => $config, + content => "checks += [\n", + order => 10, + } + + Check_mk::Ps <<| tag == 'check_mk_ps' |>> { + target => $config, + notify => Exec['check_mk-refresh'] + } + + concat::fragment{'check_mk_ps_footer': + target => $config, + content => "]\n", + order => 90, + } + +} -- cgit v1.2.3