summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Taggart <taggart@riseup.net>2014-06-26 17:21:27 -0700
committerMatt Taggart <taggart@riseup.net>2015-04-16 21:09:01 +0000
commit989fb446c1db090f7f9a4d1401b5ba83681af581 (patch)
tree41c7b617d111c35a7a90a75292fc08b12949a8f0
parent7893decc59cc67d446e65f7045e0de5ee929252e (diff)
new resource collector for 'ps' checks
-rw-r--r--manifests/agent/ps.pp17
-rw-r--r--manifests/config.pp1
-rw-r--r--manifests/ps.pp29
-rw-r--r--manifests/server/collect_ps.pp29
4 files changed, 76 insertions, 0 deletions
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,
+ }
+
+}