From b8fa0aa1f5e438d7ea95317cfcaa83f8dba87976 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 1 Feb 2013 11:39:06 +0100 Subject: [PATCH] Initial commit of the Icinga Template Library. Fixes #2977 --- Makefile.am | 3 +- configure.ac | 1 + itl/Makefile.am | 7 ++++ itl/itl-host.conf | 29 +++++++++++++++++ itl/itl-service-common.conf | 64 +++++++++++++++++++++++++++++++++++++ itl/itl-service.conf | 32 +++++++++++++++++++ itl/itl-standalone.conf | 21 ++++++++++++ itl/itl.conf | 27 ++++++++++++++++ 8 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 itl/Makefile.am create mode 100644 itl/itl-host.conf create mode 100644 itl/itl-service-common.conf create mode 100644 itl/itl-service.conf create mode 100644 itl/itl-standalone.conf create mode 100644 itl/itl.conf diff --git a/Makefile.am b/Makefile.am index e81974feb..645c5ac1e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,7 +8,8 @@ SUBDIRS = \ lib \ components \ icinga-app \ - test + test \ + itl #doc icinga2docdir = ${docdir} icinga2doc_DATA = \ diff --git a/configure.ac b/configure.ac index 4f953a382..775f3db55 100644 --- a/configure.ac +++ b/configure.ac @@ -97,6 +97,7 @@ components/replication/Makefile docs/Doxyfile icinga-app/Makefile icinga-app/config/Makefile +itl/Makefile lib/Makefile lib/base/Makefile lib/config/Makefile diff --git a/itl/Makefile.am b/itl/Makefile.am new file mode 100644 index 000000000..279a2d70d --- /dev/null +++ b/itl/Makefile.am @@ -0,0 +1,7 @@ +icinga2itldir = ${datarootdir}/icinga2/itl +icinga2itl_DATA = \ + itl.conf \ + itl-host.conf \ + itl-service.conf \ + itl-service-common.conf \ + itl-standalone.conf diff --git a/itl/itl-host.conf b/itl/itl-host.conf new file mode 100644 index 000000000..28c02bc58 --- /dev/null +++ b/itl/itl-host.conf @@ -0,0 +1,29 @@ +/****************************************************************************** + * Icinga 2 * + * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * + * * + * This program 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; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software Foundation * + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ******************************************************************************/ + +object HostGroup "all-hosts" { + alias = "All Hosts" +} + +abstract object Host "itl-host" { + hostgroups = { "all-hosts" }, + + services = { "ping" }, + hostchecks = { "ping" } +} diff --git a/itl/itl-service-common.conf b/itl/itl-service-common.conf new file mode 100644 index 000000000..de3e71349 --- /dev/null +++ b/itl/itl-service-common.conf @@ -0,0 +1,64 @@ +/****************************************************************************** + * Icinga 2 * + * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * + * * + * This program 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; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software Foundation * + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ******************************************************************************/ + + abstract object Service "ping" inherits "plugin-service" { + check_command = "$plugindir$/check_ping -H $address$ -w $wrta$,$wpl$% -c $crta$,$cpl$%a -p $packets$ -t $timeout$", + + macros = { + wrta = 100, + wpl = 5, + + crta = 200, + cpl = 15, + + packets = 5, + timeout = 0 + } +} + +abstract object Service "dummy" inherits "plugin-service" { + check_command = "$plugindir$/check_dummy $state$ '$text$'", + + macros = { + state = 0, + text = "Check was successful." + } +} + +abstract object Service "check_http_vhost" inherits "plugin-service" { + check_command = "$plugindir$/check_http -H $vhost$" +} + +abstract object Service "check_http_ip" inherits "plugin-service" { + check_command = "$plugindir$/check_http -I $address$" +} + +abstract object Service "load" inherits "plugin-service" { + check_command = "$plugindir$/check_load -w $wload1$,$wload5$,$wload15$ -c $cload1$,$cload5$,$cload15$", + + macros = { + wload1 = 0, + wload5 = 0, + wload15 = 0, + + cload1 = 0, + cload5 = 0, + crload5 = 0 + } +} diff --git a/itl/itl-service.conf b/itl/itl-service.conf new file mode 100644 index 000000000..5b6a34844 --- /dev/null +++ b/itl/itl-service.conf @@ -0,0 +1,32 @@ +/****************************************************************************** + * Icinga 2 * + * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * + * * + * This program 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; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software Foundation * + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ******************************************************************************/ + +object ServiceGroup "all-services" { + alias = "All Services" +} + +abstract object Service "itl-service" { + servicegroups = { "all-services" } +} + +abstract object Service "plugin-service" inherits "itl-service" { + methods = { + check = "native::PluginCheck" + } +} diff --git a/itl/itl-standalone.conf b/itl/itl-standalone.conf new file mode 100644 index 000000000..95d184f5c --- /dev/null +++ b/itl/itl-standalone.conf @@ -0,0 +1,21 @@ +/****************************************************************************** + * Icinga 2 * + * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * + * * + * This program 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; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software Foundation * + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ******************************************************************************/ + +local object Component "checker" {} +local object Component "delegation" {} diff --git a/itl/itl.conf b/itl/itl.conf new file mode 100644 index 000000000..34d507915 --- /dev/null +++ b/itl/itl.conf @@ -0,0 +1,27 @@ +/****************************************************************************** + * Icinga 2 * + * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/) * + * * + * This program 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; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software Foundation * + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * + ******************************************************************************/ + +/** + * This is the Icinga Templare Library, a collection of general purpose Icinga + * configuration templates. + */ + +#include "itl-host.conf" +#include "itl-service.conf" +#include "itl-service-common.conf"