diff options
-rw-r--r-- | manifests/agent.pp | 61 | ||||
-rw-r--r-- | templates/agent/check_mk.erb | 51 |
2 files changed, 112 insertions, 0 deletions
diff --git a/manifests/agent.pp b/manifests/agent.pp new file mode 100644 index 0000000..4a83e34 --- /dev/null +++ b/manifests/agent.pp @@ -0,0 +1,61 @@ +class check_mk::agent ( + $version, + $filestore = 'puppet://files/check_mk', + $ip_whitelist = undef, + $port = '6556', + $server_dir = '/usr/bin', + $use_cache = false, + $user = 'root', + $workspace = '/root/check_mk', +) { + if ! defined(Package['xinetd']) { + package { 'xinetd': + ensure => present, + } + } + file { "${workspace}/check_mk-agent-${version}.noarch.rpm": + ensure => present, + content => "${filestore}/check_mk-agent-${version}.noarch.rpm", + require => Package['xinetd'], + } + file { "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm": + ensure => present, + content => "${filestore}/check_mk-agent-logwatch-${version}.noarch.rpm", + require => Package['xinetd'], + } + package { 'check_mk-agent': + ensure => present, + source => "${workspace}/check_mk-agent-${version}.noarch.rpm", + require => File["${workspace}/check_mk-agent-${version}.noarch.rpm"], + } + package { 'check_mk-agent-logwatch': + ensure => present, + content => "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm", + require => File["${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm"], + } + if $use_cache { + $server = "${server_dir}/check_mk_caching_agent" + } + else { + $server = "${server_dir}/check_mk_agent" + } + if $ip_whitelist { + $only_from = join($ip_whitelist, ' ') + } + else { + $only_from = undef + } + file { '/etc/xinetd.d/check_mk': + ensure => present, + owner => 'root', + group => 'root', + mode => '0444', + source => template('check_mk/agent/check_mk.erb'), + require => Package['check_mk-agent','check_mk-agent-logwatch'], + notify => Service['xinetd'], + } + service { 'xinetd': + ensure => 'running', + enable => true, + } +} diff --git a/templates/agent/check_mk.erb b/templates/agent/check_mk.erb new file mode 100644 index 0000000..7643292 --- /dev/null +++ b/templates/agent/check_mk.erb @@ -0,0 +1,51 @@ +# +------------------------------------------------------------------+ +# | ____ _ _ __ __ _ __ | +# | / ___| |__ ___ ___| | __ | \/ | |/ / | +# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / | +# | | |___| | | | __/ (__| < | | | | . \ | +# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ | +# | | +# | Copyright Mathias Kettner 2012 mk@mathias-kettner.de | +# +------------------------------------------------------------------+ +# +# This file is part of Check_MK. +# The official homepage is at http://mathias-kettner.de/check_mk. +# +# check_mk is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation in version 2. check_mk is distributed +# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with- +# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more de- +# ails. You should have received a copy of the GNU General Public +# License along with GNU Make; see the file COPYING. If not, write +# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +# Boston, MA 02110-1301 USA. + +service check_mk +{ + type = UNLISTED + port = <%= @port %> + socket_type = stream + protocol = tcp + wait = no + user = <%= @user %> +<% if @use_cache -%> + # If you use fully redundant monitoring and poll the client + # from more then one monitoring servers in parallel you might + # want to use the agent cache wrapper: +<% end -%> + server = <%= @server %> + +<% if @only_from %> + # configure the IP address(es) of your Nagios server here: + only_from = <%= @only_from %> +<% end -%> + + # Don't be too verbose. Don't log every check. This might be + # commented out for debugging. If this option is commented out + # the default options will be used for this service. + log_on_success = + + disable = no +} |