summaryrefslogtreecommitdiff
path: root/puppet/modules/check_mk/manifests/ps.pp
blob: 1171a13518f360c6a49f18edbfbfcf9c78d942d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
define check_mk::ps (
  $target,
  $host,
  $desc,
  $procname = "/usr/sbin/${desc}",
  $levels = '1, 1, 1, 1',
  $user = undef
) {
  # This class is called on check-mk agent machines in order to create
  # checks using the built-in ps check type. They create stored configs
  # and then the check_mk::server::collect_ps class on the server
  # generates the config file to set them up

  # lines in the ps.mk config file 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 (which may result in a very large file, but check-mk is fine)
  concat::fragment { "check_mk_ps-${host}_${desc}":
    target  => $target,
    content => $check,
    order   => 20
  }
}