cookbook 'icinga2', '= 0.6.1'
icinga2
(32) Versions
0.6.1
-
Follow19
Installs/Configures Icinga2
cookbook 'icinga2', '= 0.6.1', :supermarket
knife supermarket install icinga2
knife supermarket download icinga2
icinga2 Cookbook
This is a Chef cookbook to manage Icinga2 using Chef LWRP.
More features and attributes will be added over time, feel free to contribute
what you find missing!
Repository
https://github.com/vkhatri/chef-icinga2
Recipes
icinga2::default
- does not do anything, used for LWRP usageicinga2::server
- install & configure icinga2 server with default incinga Objectsicinga2::server_apache
- manages apache and icinga2 classic ui / web / web2 vhost usingapache2
cookbookicinga2::server_install
- install icinga2 core/ido server packagesicinga2::server_core
- configures icinga2 core configuration files & directoriesicinga2::server_features
- enable/disable icinga2 featuresicinga2::server_classic_ui
- configures icinga2 classic uiicinga2::server_pnp
- configures pnp4nagios for icinga2icinga2::server_objects
- manages icinga2 default objects/templates objects ifnode['icinga2']['disable_conf_d']
is set in which caseconf.d
objects config is not included inicinga2.conf
and objects are created using LWRPicinga2::server_object_host
- creates icinga2generic-host
Host
templateicinga2::server_object_notificationcommand
- creates icinga2 defaultNotificationCommand
objectsicinga2::server_object_service
- creates icinga2 defaultgeneric-service
Service
templatesicinga2::server_object_timeperiod
- creates icinga2 defaultTimePeriod
objectsicinga2::server_object_user
- creates icinga2generic-user
User
template andicingaadmin
User
objecticinga2::server_object_usergroup
- creates icinga2icingaadmins
UserGroup
object
Attributes
icinga2::default
- icinga2 server default attributes fileicinga2::repo
- icinga2 yum/apt repositories file for packages installicinga2::server_classic_ui
- icinga2 server classic ui default attributes fileicinga2::server_constants
- icinga2 server constants parameters fileicinga2::server_objects
- icinga2 objects default attributes fileicinga2::server_ido
- icinga2 ido db default attributes fileicinga2::server_web2
- icinga2 web2 ui default attributes file
Supported Icinga Version
This cookbook is being developed for Icinga2 - v2.2.x primarily on Amazon Platform (EPEL Release 6 Package).
Supported Icinga2 Install Types
Currently Icinga2 installation is supported ONLY via Repository Packages, as it is a recommended best practice.
Icinga2 Server Setup
To setup icinga2 server on a node, add recipe icinga2::server
which will install necessary packages and configuration files.
Icing2 with PNP4Nagios
Recipe icinga2::server_pnp
setup and configures PNP4Nagios
along with rrdtool
.
Simply add recipe icinga2::server_pnp
to icinga2 server run_list
to setup PNP4Nagios
along with rrdcached
.
For PNP4Nagios cookbook pnp4nagios
is used and for RRDTool cookbook rrdtool
is used.
Icinga2 Agent Client
NRPE Client recipe was removed from this cookbook in favor of nrpe
cookbook.
Icinga2 Agent setup will be added soon.
Icinga2 Web / Classic UI engine
Currently this cookbook only supports Apache
as Web engine and configuration is managed by cookbook apache2
.
Web engine is configurable by node attribute node['icinga2']['web_engine']
, defaults to apache
.
Icinga2 Classic UI
Icinga2 Classic UI is enabled by default and set as default UI.
However, Classic UI can be disabled by attribute node['icinga2']['classic_ui']['enable']
.
How to add users for icinga2 Classic UI
Icinga2 Classic UI users is controlled by node Hash attribute node['icinga2']['classic_ui']['users']
. This attribute accepts a Hash
of username => htpasswd(passwd)
, so that password is not available in plain text.
By default icingaadmin
user is added with password icingaadmin
:
default['icinga2']['classic_ui']['users'] = {
'icingaadmin' => '$apr1$MZtKRLAy$AV9OiJ.V/mI9g30bHn9ol1'
}
This can be overrided in wrapper cookbook or role or environment.
To add more users for icigna2 Classic UI auth, add new users to Hash attribute in the same wasy icingaadmin
user is added
default['icinga2']['classic_ui']['users']['user_name'] = '$apr1$MZtKRLAy$AV9OiJ.V/mI9g30bHn9ol1'
Icinga2 Classic UI Authorization
Icigna2 Classic UI User authorization is managed by below node Arrary attributes:
node['icinga2']['classic_ui']['authorized_for_system_information']
node['icinga2']['classic_ui']['authorized_for_configuration_information']
node['icinga2']['classic_ui']['authorized_for_full_command_resolution']
node['icinga2']['classic_ui']['authorized_for_system_commands']
node['icinga2']['classic_ui']['authorized_for_all_services']
node['icinga2']['classic_ui']['authorized_for_all_hosts']
node['icinga2']['classic_ui']['authorized_for_all_service_commands']
node['icinga2']['classic_ui']['authorized_for_all_host_commands']
By simply adding users to above attributes will provide necessary access to the UI.
How to add a guest user
To add a guest user without any admin privileges, first add a guest
user (with password guest
)
default['icinga2']['classic_ui']['users']['guest'] = '$apr1$cA/eVUgT$aIoWUPwV5uONJoYslb7lg0'
Then authorize guest
user to view Host/Service
status
node['icinga2']['classic_ui']['authorized_for_all_services'] = %w(icingaadmin guest)
node['icinga2']['classic_ui']['authorized_for_all_hosts'] = %w(icingaadmin guest)
How to add an admin user
To make a user admin
, add the user to below node attributes:
node['icinga2']['classic_ui']['authorized_for_system_information']
node['icinga2']['classic_ui']['authorized_for_configuration_information']
node['icinga2']['classic_ui']['authorized_for_full_command_resolution']
node['icinga2']['classic_ui']['authorized_for_system_commands']
node['icinga2']['classic_ui']['authorized_for_all_services']
node['icinga2']['classic_ui']['authorized_for_all_hosts']
node['icinga2']['classic_ui']['authorized_for_all_service_commands']
node['icinga2']['classic_ui']['authorized_for_all_host_commands']
Icinga Web2
Icingaweb2 recipe setup is work in progress.
Icinga2 Cluster Deployment
Icinga2 Distributes / HA cluster setup examples will be added soon.
Icinga2 Monitor a Chef Environment Nodes
This cookbook does not only provide management of Icinga2 server & objects, it also provides
automation around Chef environment.
Using LWRP environment
a whole environment nodes can be added to Host
objects with environment wide Host
object parameters.
There are certain functionalities added to LWRP environment
, like:
define icinga2
Host
parameters for an entire environmentauto create
HostGroup
object for an entire chef environmentauto create
HostGroup
object for node'sapplication
attribute to group nodes for an entire chef environmentapplication
typeauto create
HostGroup
object for node'scluster
attribute to group nodes for a chef environmentcluster
auto add chef node Cloud attributes as
Host
customvars
, currently only AWS EC2 attributes are supported, but is easy to extend the suport to other cloud providersauto create
HostGroup
list for a chef environment nodelimit a chef environment spreaded across multiple regions to icinga2 server region, e.g. in multi region ec2 production environment, one would want to setup an icinga2 server in region
us-east-1
just to monitorus-east-1
nodes, but not the production nodes of other regions, likeap-southeast-1
allow chef node to determine
host.address
fromnode['fqdn']
DNS resolution instead ofnode['ipaddress']
and either ignore chef node if failed to resolve DNS or fallback to usenode['ipaddress']
ashost.address
exclude a node by
run_list
role, not yet testedexclude a node by
run_list
role, not yet testedfilter chef node if match certain node attributes
override an environment and use an entire different
search_pattern
, this feature extends LWRPenvironment
functionality to select nodes by a user given search patternHost
object attributedisply_name
is set to chef node hostname
Simply create a LWRP resource for a chef environment, to start monitoring all nodes in that environment. More details can be found in examples.
Icinga2 Host Custom Vars
environment LWRP Host Vars
LWRP environment
resources sets Host custom vars for each node via node Hash
attribute -
node['icinga2']['client']['custom_vars']
. All defined vars
will be added to Host
object.
host LWRP Host Vars
When using icinga2_host
LWRP, node custom vars will not be added automatically. There will be no search performed as the Host
object could be different than a chef Node
.
To add Host
custom vars, use Hash attribute custom_vars
.
A resource attribute will be added to icinga2_host
LWRP to perform a search to fetch custom vars defined for a node, so that manual addition is not required.
icinga2 User Defined Objects / Configuration
A configuration directory is created under /etc/icinga2
for user to put configuration not default to icinga2
or LWRP.
Directory name is configurable using node attribute node['icinga2']['user_defined_objects_d']
.
This is just to keep user custom defined configuration, it is included in icinga2.conf
.
LWRP Examples
Different LWRP usage examples are added to examples
directory.
To configure icinga2 server, check examples/icinga2_server
directory. More examples will be added as we go.
LWRP 'assign where' and 'ignore where' statements
assign where (icinga) == assign_where (LWRP)
ignore where (icinga) == ignore_where (LWRP)
assign where
statements are defined as a LWRP resource Array
attribute -assign_where
. Each aray element is treated as a different assign where
statement and LWRP creates a separate statement.
e.g.
assign_where ['host.address',
'host.vars.nrpe && host.vars.enable_check',
'host.vars.application == "redis"'
]
Above LWRP resource will be applied to an Object
as shown below:
assign where host.address
assign where host.vars.nrpe && host.vars.enable_check
assign where host.vars.application == "redis"
Similarly, ignore where
statements are configured using LWRP resoruce Array
attribute ignore_where
.
icinga2 LWRP Resources
Currently icinga2 cookbook supports below Objects LWRP Resources:
- icinga2_apilistener
- icinga2_applynotification
- icinga2_applyservice
- icinga2_checkcommand
- icinga2_endpoint
- icinga2_envhostgroup
- icinga2_environment
- icinga2_eventcommand
- icinga2_externalcommandlistener
- icinga2_feature
- icinga2_gelfwriter
- icinga2_graphitewriter
- icinga2_host
- icinga2_hostgroup
- icinga2_idomysqlconnection
- icinga2_idopgsqlconnection
- icinga2_notification
- icinga2_notificationcommand
- icinga2_scheduleddowntime
- icinga2_service
- icinga2_servicegroup
- icinga2_sysloglogger
- icinga2_timeperiod
- icinga2_user
- icinga2_usergroup
- icinga2_zone
Few of LWRP attributes which are required to create an icinga2 Object are not declared :required => true
in LWRP in favour of creating icinga2 Object template.
Same LWRP resource used to create icinga2 Object
, can also be used to create icinga2 Template
as well.
icinga2 LWRP Resources Generated Object/Template File
LWRP Resource Object Config File Location
Icinga2 Object
created by LWRP are stored under a separate directory objects.d
. Directory name is configurable by node attribute node['icinga2']['objects_d']
.
This directory is created under icinga2 config directory node['icinga2']['conf_dir']
.
LWRP Resource Object/Template Config File Name Convention
A LWRP generated icinga2 Object's
are stored into a single file. It means each LWRP has its own conf file.
As few of LWRP can create an Object
and Template
, below conf file name convention is followed through out LWRP resources.
Object conf file : "#{LWRP_NAME}.conf".
Template conf file : "#{LWRP_NAME}_template.conf".
e.g.
LWRP `icinga2_host` object resources will create icinga2
`Host` objects conf file - /etc/icinga2/objects.d/host.conf
LWRP `icinga2_service` object resources will create icinga2
`Service` objects conf file - /etc/icinga2/objects.d/service.conf
LWRP `icinga2_service` tempalte resources will create icinga2
`Service` templates conf file - /etc/icinga2/objects.d/service_template.conf
LWRP `icinga2_applyservice` resources will create icinga2
`apply Service` conf file - /etc/icinga2/objects.d/applyservice.conf
and so on ..
All LWRP generated icinga2 object/template/apply conf files are kept in a single directory and managed separately.
Default icinga2 /etc/icinga2/{conf.d,*.conf}
As this cookbook supplies all necessary LWRP for icinga2 feature, object, template etc. it is a good practice and safe to say to use LWRP instead of managing configuration /etc/icinga2/conf.d
or other /etc/icinga2/*.conf
file.
Default configuration varies from environment to environment and hence LWRP does not manage default configuration.
Note: Default configuration file are not managed by this cookbook, apart from listed below:
LWRP icinga2_environment
As mentioned in a section above, instead of creating Host
objects for each chef node, using LWRP environment
Host
objects can easily be created for all chef nodes for a chef environment.
LWRP resource attributes are common for all the Host
. It may be required to define or override attribute for few specific Host
objects, but it is not yet incorporated or forseen any usage at this point which might change over time.
LWRP example
icinga2_environment 'SingaporeDevelopment' do
import node['icinga2']['server']['object']['host']['import']
environment 'development'
limit_region true
ignore_resolv_error true
enable_cluster_hostgroup true
enable_application_hostgroup true
cluster_attribute 'flock'
application_attribute 'application'
check_interval '1m'
retry_interval '10s'
max_check_attempts 3
action_url '/pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_'
end
Above LWRP resource will create Host
objects for a chef environment nodes for a given search_pattern
and other filter.
LWRP Options
- action (optional) - default :create, options: :create, :delete, :reload
- environment (required) - chef environment name
- search_pattern (optional) - chef search pattern for given environment
-
cluster_attribute (optional) - chef node cluster attribute to create hostgroup and
Host
vars -
application_attribute (optional) - chef noder application attribute to create hostgroup and
Host
vars -
enable_cluster_hostgroup (optional) - whether to create
HostGroup
objects for chef node cluster's -
enable_application_hostgroup (optional) - whether to create
HostGroup
objects for chef node application's -
enable_role_hostgroup (optional) - whether to create
HostGroup
objects for chef node run_list role -
use_fqdn_resolv (optional) - whether to use DNS FQDN resolved address for
Host
object attributeaddress
-
failover_fqdn_address (optional) - whether to use chef node attribute
node['ipaddress']
if failed to resolve node FQDN - ignore_resolv_error (optional) - whether to ignore node FQDN resolve error
-
ignore_node_error (optional) - whether to ignore node if failed to determine
node[]'chef_environment']
ornode['fqdn']
ornode['hostname']
<del>- exclude_recipes (optional) - exclude chef node ifrun_list
matches recipe, not yet tested </del> <del>- exclude_roles (optional) - exclude chef node ifrun_list
matches role, not yet tested </del> -
env_custom_vars (optional) - add
Host
obect custom vars to all chef node -
limit_region (optional) - whether to limit chef node to chef server region, currently tested for Amazon EC2, e.g. a icinga2 server located in region
us-east-1
will only collect nodes located inus-east-
` region - server_region (optional) - icinga2 server region can be overriden if cloud provider is not supported by the cookbook using this attribute
- add_cloud_custom_vars (optional) - whether to add cloud attributes, currently supports amazon ec2, e.g. instance id, vpc subnet etc.
-
env_filter_node_vars (optional) - filter or match chef nodes for a given
Hash
attribute values -
import (optional) - icinga
Host
object import template attribute -
check_command (optional) - icinga
Host
object attributecheck_command
-
max_check_attempts (optional) - icinga
Host
object attributemax_check_attempts
-
check_period (optional) - icinga
Host
object attributecheck_period
-
check_interval (optional) - icinga
Host
object attributecheck_interval
-
retry_interval (optional) - icinga
Host
object attributeretry_interval
-
enable_notifications (optional) - icinga
Host
object attributeenable_notifications
-
enable_active_checks (optional) - icinga
Host
object attributeenable_active_checks
-
enable_passive_checks (optional) - icinga
Host
object attributeenable_passive_checks
-
enable_passive_checks (optional) - icinga
Host
object attributeenable_passive_checks
-
enable_event_handler (optional) - icinga
Host
object attributeenable_event_handler
-
enable_flapping (optional) - icinga
Host
object attributeenable_flapping
-
enable_perfdata (optional) - icinga
Host
object attributeenable_perfdata
-
event_command (optional) - icinga
Host
object attributeevent_command
-
flapping_threshold (optional) - icinga
Host
object attributeflapping_threshold
-
volatile (optional) - icinga
Host
object attributevolatile
-
zone (optional) - icinga
Host
object attributezone
-
command_endpoint (optional) - icinga
Host
object attributecommand_endpoint
-
notes (optional) - icinga
Host
object attributenotes
-
notes_url (optional) - icinga
Host
object attributenotes_url
-
action_url (optional) - icinga
Host
object attributeaction_url
-
icon_image (optional) - icinga
Host
object attributeicon_image
-
icon_image_alt (optional) - icinga
Host
object attributeicon_image_alt
Note: Few of LWRP resource attributes has default value, please check LWRP resource until information is added here.
LWRP icinga2_envhostgroup
LWRP envhostgroup
creates an icinga Hostgroup
object for LWRP environment
host groups.
An environment
host groups are evaluated at compile time, hence it conflicts with LWRP hostgroup
resources. To avoid the conflict, LWRP envhostgroup
resources are created in a separate object file for an environemnt.
LWRP Environment HostGroup example
icinga2_envhostgroup 'envhostgroup' do
environment environment_name
groups %w(group)
end
Above LWRP resource will create HostGroup
for a chef environment.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
- environment (name_attribute) - chef environment name
- groups (optional) - host group names
Note: This LWRP resoruce is only meant for LWRP environment
and not to be used for custom resources.
LWRP icinga2_host
Unlike LWRP environment
, LWRP host
creates an icinga Host
object or template.
LWRP host
can be useful for servers not managed by Chef or to monitor Cloud Services like Amazon Elastic Cache or Amazon RDS etc.
LWRP Host Object example
icinga2_host 'redis-ec.abcdef.0001.apse1.cache.amazonaws.com' do
display_name 'Production Redis Server'
address 'redis-ec.abcdef.0001.apse1.cache.amazonaws.com'
custom_vars :check_tcp_ports => %w(6379), :application => 'redis', :environment => 'production', :cluster_name => 'prodredis0001'
end
Above LWRP resource will create an icinga Host
object.
LWRP Host Template example
icinga2_host 'generic-host' do
template true
max_check_attempts 5
check_interval '1m'
retry_interval '30s'
check_command 'hostalive'
end
Above LWRP resource will create an icinga Host
template - generic-host
.
LWRP Options
- action (optional) - default :create, options: :create, :delete, :reload
-
display_name (optional) - icinga
Host
object import template attribute -
import (optional) - icinga
Host
object import template attribute -
address (optional) - icinga
Host
object import template attribute -
address6 (optional) - icinga
Host
object import template attribute -
groups (optional) - icinga
Host
object import template attribute -
check_command (optional) - icinga
Host
object attributecheck_command
-
max_check_attempts (optional) - icinga
Host
object attributemax_check_attempts
-
check_period (optional) - icinga
Host
object attributecheck_period
-
check_interval (optional) - icinga
Host
object attributecheck_interval
-
retry_interval (optional) - icinga
Host
object attributeretry_interval
-
enable_notifications (optional) - icinga
Host
object attributeenable_notifications
-
enable_active_checks (optional) - icinga
Host
object attributeenable_active_checks
-
enable_passive_checks (optional) - icinga
Host
object attributeenable_passive_checks
-
enable_passive_checks (optional) - icinga
Host
object attributeenable_passive_checks
-
enable_event_handler (optional) - icinga
Host
object attributeenable_event_handler
-
enable_flapping (optional) - icinga
Host
object attributeenable_flapping
-
enable_perfdata (optional) - icinga
Host
object attributeenable_perfdata
-
event_command (optional) - icinga
Host
object attributeevent_command
-
flapping_threshold (optional) - icinga
Host
object attributeflapping_threshold
-
volatile (optional) - icinga
Host
object attributevolatile
-
zone (optional) - icinga
Host
object attributezone
-
command_endpoint (optional) - icinga
Host
object attributecommand_endpoint
-
notes (optional) - icinga
Host
object attributenotes
-
notes_url (optional) - icinga
Host
object attributenotes_url
-
action_url (optional) - icinga
Host
object attributeaction_url
-
icon_image (optional) - icinga
Host
object attributeicon_image
-
icon_image_alt (optional) - icinga
Host
object attributeicon_image_alt
-
custom_vars (optional) - icinga
Host
object attributevars
-
tempalte (optional) - whether to create a
Host
template
LWRP icinga2_hostgroup
LWRP hostgroup
creates an icinga HostGroup
object.
LWRP HostGroup example
icinga2_hostgroup 'hostgroup_name' do
disaply_name 'Host Group'
groups ['othergroup']
assign_where ['"hostgroup_name" in host.vars.hostgroups']
ignore_where ['"hostgroup_name" in host.vars.hostgroups']
end
Above LWRP resource will create an icinga HostGroup
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
display_name (optional) - icinga
HostGroup
attributedisplay_name
-
groups (optional) - icinga
HostGroup
attributegroups
-
assign_where (optional) - an array of
assign where
statements -
ignore_where (optional) - an array of
ignore where
statements
LWRP icinga2_service
LWRP service
creates an icinga Service
object or template.
LWRP Service Object example
icinga2_service 'redis-ec.abcdef.0001.apse1.cache.amazonaws.com_service_check' do
display_name 'Production Redis Service Check'
host_name 'redis-ec.abcdef.0001.apse1.cache.amazonaws.com'
check_command 'tcp'
custom_vars :tcp_port => 6379
end
Above LWRP resource will create an icinga Service
object for a host tcp port check.
LWRP Service Template example
icinga2_service 'generic-service' do
template true
max_check_attempts 5
check_interval '1m'
retry_interval '30s'
end
Above LWRP resource will create an icinga Service
template object for a generic-service
Service
.
LWRP Options
- action (optional) - default :create, options: :create, :delete, :reload
-
display_name (optional) - icinga
Service
object attributedisplay_name
-
import (optional) - icinga
Service
object attributeimport
-
host_name (optional) - icinga
Service
object attributehost_name
-
groups (optional) - icinga
Service
object attributegroups
-
check_command (optional) - icinga
Service
object attributecheck_command
-
max_check_attempts (optional) - icinga
Service
object attributemax_check_attempts
-
check_period (optional) - icinga
Service
object attributecheck_period
-
check_interval (optional) - icinga
Service
object attributecheck_interval
-
retry_interval (optional) - icinga
Service
object attributeretry_interval
-
enable_notifications (optional) - icinga
Service
object attributeenable_notifications
-
enable_active_checks (optional) - icinga
Service
object attributeenable_active_checks
-
enable_passive_checks (optional) - icinga
Service
object attributeenable_passive_checks
-
enable_passive_checks (optional) - icinga
Service
object attributeenable_passive_checks
-
enable_event_handler (optional) - icinga
Service
object attributeenable_event_handler
-
enable_flapping (optional) - icinga
Service
object attributeenable_flapping
-
enable_perfdata (optional) - icinga
Service
object attributeenable_perfdata
-
event_command (optional) - icinga
Service
object attributeevent_command
-
flapping_threshold (optional) - icinga
Service
object attributeflapping_threshold
-
volatile (optional) - icinga
Service
object attributevolatile
-
zone (optional) - icinga
Service
object attributezone
-
command_endpoint (optional) - icinga
Service
object attributecommand_endpoint
-
notes (optional) - icinga
Service
object attributenotes
-
notes_url (optional) - icinga
Service
object attributenotes_url
-
action_url (optional) - icinga
Service
object attributeaction_url
-
icon_image (optional) - icinga
Service
object attributeicon_image
-
icon_image_alt (optional) - icinga
Service
object attributeicon_image_alt
-
custom_vars (optional) - icinga
Service
object attributevars
-
tempalte (optional) - whether to create a
Service
template
LWRP icinga2_applyservice
LWRP service
creates an icinga Service
object or template.
LWRP Apply Service Object example
icinga2_applyservice 'nrpe_check_load' do
display_name 'CPU Average Load'
object_name 'nrpe_check_load'
import 'generic-service'
check_command 'nrpe'
custom_vars :nrpe_command => 'check_load'
assign_where ['host.vars.nrpe']
check_interval '1m'
retry_interval '15s'
max_check_attempts 3
action_url '/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$'
end
Above LWRP resource will apply an icinga Service
object to all Hosts
with custom vars host.vars.nrpe
.
LWRP Options
- action (optional) - default :create, options: :create, :delete, :reload
-
display_name (optional) - icinga
Service
object attributedisplay_name
-
import (optional) - icinga
Service
object attributeimport
-
host_name (optional) - icinga
Service
object attributehost_name
-
groups (optional) - icinga
Service
object attributegroups
-
check_command (optional) - icinga
Service
object attributecheck_command
-
max_check_attempts (optional) - icinga
Service
object attributemax_check_attempts
-
check_period (optional) - icinga
Service
object attributecheck_period
-
check_interval (optional) - icinga
Service
object attributecheck_interval
-
retry_interval (optional) - icinga
Service
object attributeretry_interval
-
enable_notifications (optional) - icinga
Service
object attributeenable_notifications
-
enable_active_checks (optional) - icinga
Service
object attributeenable_active_checks
-
enable_passive_checks (optional) - icinga
Service
object attributeenable_passive_checks
-
enable_passive_checks (optional) - icinga
Service
object attributeenable_passive_checks
-
enable_event_handler (optional) - icinga
Service
object attributeenable_event_handler
-
enable_flapping (optional) - icinga
Service
object attributeenable_flapping
-
enable_perfdata (optional) - icinga
Service
object attributeenable_perfdata
-
event_command (optional) - icinga
Service
object attributeevent_command
-
flapping_threshold (optional) - icinga
Service
object attributeflapping_threshold
-
volatile (optional) - icinga
Service
object attributevolatile
-
zone (optional) - icinga
Service
object attributezone
-
command_endpoint (optional) - icinga
Service
object attributecommand_endpoint
-
notes (optional) - icinga
Service
object attributenotes
-
notes_url (optional) - icinga
Service
object attributenotes_url
-
action_url (optional) - icinga
Service
object attributeaction_url
-
icon_image (optional) - icinga
Service
object attributeicon_image
-
icon_image_alt (optional) - icinga
Service
object attributeicon_image_alt
-
custom_vars (optional) - icinga
Service
object attributevars
-
assign_where (optional) - an array of
assign where
statements -
ignore_where (optional) - an array of
ignore where
statements
LWRP icinga2_servicegroup
LWRP servicegroup
creates an icinga ServiceGroup
object.
LWRP ServiceGroup example
icinga2_servicegroup 'servicegroup_name' do
disaply_name 'Service Group'
groups ['othergroup']
assign_where ['"servicegroup_name" in host.vars.servicegroups']
ignore_where ['"servicegroup_name" in host.vars.servicegroups']
end
Above LWRP resource will create an icinga ServiceGroup
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
display_name (optional) - icinga
ServiceGroup
attributedisplay_name
-
groups (optional) - icinga
ServiceGroup
attributegroups
-
assign_where (optional) - an array of
assign where
statements -
ignore_where (optional) - an array of
ignore where
statements
LWRP icinga2_feature
LWRP feature
enable or disable an icinga Feature
.
LWRP Feature enable example
icinga2_feature 'feature'
Above LWRP resource will enable an icinga Feature
.
LWRP Feature disable example
icinga2_feature 'feature' do
action :disable
end
Above LWRP resource will disable an icinga Feature
.
LWRP Options
- name(name_attribute) - icinga2 feature name
- action (optional) - default :enable, options: :enable, :disable
LWRP icinga2_user
LWRP user
creates an icinga User
object.
LWRP User Object example
icinga2_user 'user_name' do
import 'generic-user'
enable_notifications true
states %w(OK Warning Critical Unknown Up Down)
types %w(DowntimeStart DowntimeEnd DowntimeRemoved Custom Acknowledgement Problem Recovery FlappingStart FlappingEnd)
display_name 'User Info'
groups %w(usergroup)
email 'user@domain'
end
Above LWRP resource will create an icinga User
object.
LWRP User Template example
icinga2_user 'generic-user' do
template true
end
Above LWRP resource will create an icinga User
template.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
display_name (optional) - icinga
User
attributedisplay_name
-
import (optional) - icinga
User
attributeimport
-
groups (optional) - icinga
User
attributegroups
-
email (optional) - icinga
User
attributeemail
-
pager (optional) - icinga
User
attributepager
-
period (optional) - icinga
User
attributeperiod
-
states (optional) - icinga
User
attributestates
-
types (optional) - icinga
User
attributetypes
-
zone (optional) - icinga
User
attributezone
-
custom_vars (optional) - icinga
User
attributevars
-
enable_notifications (optional) - icinga
User
attributeenable_notifications
-
template (optional) - whether to create a
User
template
LWRP icinga2_usergroup
LWRP usergroup
creates an icinga UserGroup
object.
LWRP UserGroup example
icinga2_usergroup 'usergroup_name' do
disaply_name 'User Group'
groups ['usergroup']
zone 'zone_name'
end
Above LWRP resource will create an icinga UserGroup
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
display_name (optional) - icinga
UserGroup
attributedisplay_name
-
groups (optional) - icinga
UserGroup
attributegroups
-
zone (optional) - icinga
UserGroup
attributezone
LWRP icinga2_zone
LWRP zone
creates an icinga Zone
object.
LWRP Zone example
icinga2_zone 'zone' do
endpoints %w(endpoint)
parent 'parent zone'
end
Above LWRP resource will create an icinga Zone
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
endpoints (optional) - icinga
Zone
attributeendpoints
-
parent (optional) - icinga
Zone
attributeparent
LWRP icinga2_endpoint
LWRP endpoint
creates an icinga Endpoint
object.
LWRP Endpoint example
icinga2_endpoint 'endpoint' do
host 'host address'
port 'port'
log_duration 'log duration'
end
Above LWRP resource will create an icinga Endpoint
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
host (optional) - icinga
Endpoint
attributehost
-
port (optional) - icinga
Endpoint
attributeport
-
log_duration (optional) - icinga
Endpoint
attributelog_duration
LWRP icinga2_timeperiod
LWRP timeperiod
creates an icinga TimePeriod
object.
LWRP TimePeriod example
icinga2_timeperiod '24x7' do
import 'legacy-timeperiod'
display_name 'Icinga 2 24x7 TimePeriod'
ranges 'monday' => '00:00-24:00',
'tuesday' => '00:00-24:00',
'wednesday' => '00:00-24:00',
'thursday' => '00:00-24:00',
'friday' => '00:00-24:00',
'saturday' => '00:00-24:00',
'sunday' => '00:00-24:00'
end
Above LWRP resource will create an icinga TimePeriod
object.
LWRP TimePeriod template
icinga2_timeperiod 'legacy-timeperiod' do
template true
display_name 'legacy-timeperiod'
end
Above LWRP resource will create an icinga TimePeriod
template.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
display_name (optional) - icinga
TimePeriod
attributedisplay_name
-
import (optional) - icinga
TimePeriod
attributeimport
-
zone (optional) - icinga
TimePeriod
attributezone
-
ranges (optional) - icinga
TimePeriod
attributeranges
-
template (optional) - whether to create an icinga
TimePeriod
template
LWRP icinga2_eventcommand
LWRP eventcommand
creates an icinga EventCommand
object.
LWRP EventCommand example
icinga2_eventcommand 'eventcommand' do
command 'command name'
custom_vars :attribute => 'value'
end
Above LWRP resource will create an icinga EventCommand
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
import (optional) - icinga
EventCommand
attributeimport
-
command (optional) - icinga
EventCommand
attributecommand
-
env (optional) - icinga
EventCommand
attributeenv
-
timeout (optional) - icinga
EventCommand
attributetimeout
-
arguments (optional) - icinga
EventCommand
attributearguments
-
custom_vars (optional) - icinga
EventCommand
attributecustom_vars
LWRP icinga2_checkcommand
LWRP checkcommand
creates an icinga CheckCommand
object.
LWRP CheckCommand example
icinga2_checkcommand 'eventcommand' do
command 'command name'
env :attribute => 'value'
arguments :attribute => 'value'
custom_vars :attribute => 'value'
zone 'zone name'
end
Above LWRP resource will create an icinga CheckCommand
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
import (optional) - icinga
CheckCommand
attributeimport
-
command (optional) - icinga
CheckCommand
attributecommand
-
env (optional) - icinga
CheckCommand
attributeenv
-
timeout (optional) - icinga
CheckCommand
attributetimeout
-
zone (optional) - icinga
CheckCommand
attributezone
-
arguments (optional) - icinga
CheckCommand
attributearguments
-
custom_vars (optional) - icinga
CheckCommand
attributecustom_vars
LWRP icinga2_scheduleddowntime
LWRP scheduleddowntime
creates an icinga ScheduledDowntime
object.
LWRP ScheduledDowntime example
icinga2_scheduleddowntime 'downtime' do
host_name 'host name'
service_name 'service name'
author 'author'
comment 'comment'
duration 'duration'
end
Above LWRP resource will create an icinga ScheduledDowntime
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
host_name (optional) - icinga
ScheduledDowntime
attributehost_name
-
service_name (optional) - icinga
ScheduledDowntime
attributeservice_name
-
author (optional) - icinga
ScheduledDowntime
attributeauthor
-
comment (optional) - icinga
ScheduledDowntime
attributecomment
-
fixed (optional) - icinga
ScheduledDowntime
attributefixed
-
duration (optional) - icinga
ScheduledDowntime
attributeduration
-
zone (optional) - icinga
ScheduledDowntime
attributezone
-
ranges (optional) - icinga
ScheduledDowntime
attributeranges
-
template (optional) - whether to create an icinga
ScheduledDowntime
template
LWRP icinga2_externalcommandlistener
LWRP externalcommandlistener
creates an icinga ExternalCommandListener
object.
LWRP ExternalCommandListener example
icinga2_externalcommandlistener 'externalcommandlistener' do
library 'library'
command_path 'command path'
end
Above LWRP resource will create an icinga ExternalCommandListener
config object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
library (optional) - default 'compat', icinga
ExternalCommandListener
attributelibrary
-
command_path (optional) - icinga
ExternalCommandListener
attributecommand_path
LWRP icinga2_gelfwriter
LWRP gelfwriter
creates an icinga GelfWriter
object.
LWRP GelfWrite example
icinga2_gelfwriter 'gelfwriter' do
library 'library'
host 'host address'
port 'port'
source 'source'
end
Above LWRP resource will create an icinga GelfWriter
config object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
library (optional) - default 'perfdata', icinga
GelfWriter
attributelibrary
-
host (optional) - icinga
GelfWriter
attributehost
-
port (optional) - icinga
GelfWriter
attributeport
-
source (optional) - icinga
GelfWriter
attributesource
LWRP icinga2_graphitewriter
LWRP graphitewriter
creates an icinga GraphiteWriter
object.
LWRP GraphiteWriter example
icinga2_graphitewriter 'graphitewriter' do
library 'library'
host 'host address'
port 'port'
end
Above LWRP resource will create an icinga GraphiteWriter
config object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
library (optional) - default 'perfdata', icinga
GraphiteWriter
attributelibrary
-
host (optional) - icinga
GraphiteWriter
attributehost
-
port (optional) - icinga
GraphiteWriter
attributeport
-
host_name_template (optional) - icinga
GraphiteWriter
attributehost_name_template
-
service_name_template (optional) - icinga
GraphiteWriter
attributeservice_name_template
LWRP icinga2_idomysqlconnection
LWRP idomysqlconnection
creates an icinga IdoMySqlConnection
object.
LWRP IdoMySqlConnection example
icinga2_idomysqlconnection 'idomysqlconnection' do
library 'library'
host 'host address'
port 'port'
user 'user name'
password 'password'
database 'database name'
end
Above LWRP resource will create an icinga IdoMySqlConnection
config object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
library (optional) - default 'db_ido_mysql', icinga
IdoMySqlConnection
attributelibrary
-
host (optional) - icinga
IdoMySqlConnection
attributehost
-
port (optional) - icinga
IdoMySqlConnection
attributeport
-
user (optional) - icinga
IdoMySqlConnection
attributeuser
-
password (optional) - icinga
IdoMySqlConnection
attributepassword
-
database (optional) - icinga
IdoMySqlConnection
attributedatabase
-
table_prefix (optional) - icinga
IdoMySqlConnection
attributetable_prefix
-
instance_name (optional) - icinga
IdoMySqlConnection
attributeinstance_name
-
instance_description (optional) - icinga
IdoMySqlConnection
attributeinstance_description
-
enable_ha (optional) - icinga
IdoMySqlConnection
attributeenable_ha
-
failover_timeout (optional) - icinga
IdoMySqlConnection
attributefailover_timeout
-
enable_ha (optional) - icinga
IdoMySqlConnection
attributeenable_ha
-
cleanup (optional) - icinga
IdoMySqlConnection
attributecleanup
-
categories (optional) - icinga
IdoMySqlConnection
attributecategories
LWRP icinga2_idopgsqlconnection
LWRP idopgsqlconnection
creates an icinga IdoPgSqlConnection
object.
LWRP IdoPgSqlConnection example
icinga2_idopgsqlconnection 'idopgsqlconnection' do
library 'library'
host 'host address'
port 'port'
user 'user name'
password 'password'
database 'database name'
end
Above LWRP resource will create an icinga IdoPgSqlConnection
config object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
library (optional) - default 'db_ido_mysql', icinga
IdoPgSqlConnection
attributelibrary
-
host (optional) - icinga
IdoPgSqlConnection
attributehost
-
port (optional) - icinga
IdoPgSqlConnection
attributeport
-
user (optional) - icinga
IdoPgSqlConnection
attributeuser
-
password (optional) - icinga
IdoPgSqlConnection
attributepassword
-
database (optional) - icinga
IdoPgSqlConnection
attributedatabase
-
table_prefix (optional) - icinga
IdoPgSqlConnection
attributetable_prefix
-
instance_name (optional) - icinga
IdoPgSqlConnection
attributeinstance_name
-
instance_description (optional) - icinga
IdoPgSqlConnection
attributeinstance_description
-
enable_ha (optional) - icinga
IdoPgSqlConnection
attributeenable_ha
-
failover_timeout (optional) - icinga
IdoPgSqlConnection
attributefailover_timeout
-
enable_ha (optional) - icinga
IdoPgSqlConnection
attributeenable_ha
-
cleanup (optional) - icinga
IdoPgSqlConnection
attributecleanup
-
categories (optional) - icinga
IdoPgSqlConnection
attributecategories
LWRP icinga2_sysloglogger
LWRP sysloglogger
creates an icinga SyslogLogger
object.
LWRP SyslogLogger example
icinga2_sysloglogger 'sysloglogger' do
severity 'critical'
end
Above LWRP resource will create an icinga SyslogLogger
object.
LWRP Options
-
name(name_attribute) - icinga
SyslogLogger
name -
severity (optional) - icinga
SyslogLogger
attributeport
LWRP icinga2_notification
LWRP notification
creates an icinga Notification
object.
LWRP Notification Object example
icinga2_notification 'notification' do
import 'notification template'
host_name 'host'
service_name 'service'
users %w(user)
user_groups %w(usergroup)
interval 'interval'
period 'period'
states %w(OK Warning Critical Unknown Up Down)
types %w(Custom Acknowledgement Problem Recovery)
end
Above LWRP resource will create an icinga Notification
object.
LWRP Notification Template example
icinga2_notification 'notification' do
template true
period '24x7'
end
Above LWRP resource will create an icinga Notification
template.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
import (optional) - icinga
Notification
attributeimport
-
host_name (optional) - icinga
Notification
attributehost_name
-
service_name (optional) - icinga
Notification
attributeservice_name
-
users (optional) - icinga
Notification
attributeusers
-
user_groups (optional) - icinga
Notification
attributeuser_groups
-
times (optional) - icinga
Notification
attributetimes
-
command (optional) - icinga
Notification
attributecommand
-
interval (optional) - icinga
Notification
attributeinterval
-
period (optional) - icinga
Notification
attributeperiod
-
zone (optional) - icinga
Notification
attributezone
-
types (optional) - icinga
Notification
attributetypes
-
states (optional) - icinga
Notification
attributestates
-
custom_vars (optional) - icinga
Notification
attributevars
-
template (optional) - whether to create a
Notification
template
LWRP icinga2_applynotification
LWRP applynotification
creates an icinga apply Notification
object for Host
and Service
.
LWRP apply Notification Service Object example
icinga2_applynotification 'servicenotification' do
object_type 'Service'
command 'mail-service-notification'
users %w(user)
interval '1h'
assign_where ['host.address && host.vars.environment == "development"']
ignore_where ['host.vars.monitoring_disabled == true']
end
Above LWRP resource will apply Notification
to all Service
objects for provided assign where
statements and ignore for specified ignore where
statements.
LWRP apply Notification Host Object example
icinga2_applynotification 'hostnotification' do
object_type 'Host'
command 'mail-host-notification'
users %w(user)
interval '1h'
assign_where ['host.address && host.vars.environment == "development"']
ignore_where ['host.vars.monitoring_disabled == true']
end
Above LWRP resource will apply Notification
to all Host
objects for provided assign_where
statements and ignore for specified ignore_where
statements.
LWRP Options
-
object_type (required) - apply Notification to
Host
orService
, valid values are: Host Service - action (optional) - default :enable, options: :enable, :disable
-
import (optional) - icinga
Notification
attributeimport
-
users (optional) - icinga
Notification
attributeusers
-
user_groups (optional) - icinga
Notification
attributeuser_groups
-
times (optional) - icinga
Notification
attributetimes
-
command (optional) - icinga
Notification
attributecommand
-
interval (optional) - icinga
Notification
attributeinterval
-
period (optional) - icinga
Notification
attributeperiod
-
types (optional) - icinga
Notification
attributetypes
-
states (optional) - icinga
Notification
attributestates
-
assign_where (optional) - icinga
assign where
statements -
ignore_where (optional) - icinga
ignore where
statements
LWRP icinga2_notificationcommand
LWRP notificationcommand
creates an icinga NotificationCommand
object.
LWRP NotificationCommand example
icinga2_notificationcommand 'mail-service-notification' do
command ['SysconfDir + "/icinga2/scripts/mail-service-notification.sh"']
env 'NOTIFICATIONTYPE' => '$notification.type$', \
'SERVICEDESC' => '$service.name$',\
'HOSTALIAS' => '$host.display_name$',\
'HOSTADDRESS' => '$address$',\
'SERVICESTATE' => '$service.state$',\
'LONGDATETIME' => '$icinga.long_date_time$',\
'SERVICEOUTPUT' => '$service.output$',\
'NOTIFICATIONAUTHORNAME' => '$notification.author$',\
'NOTIFICATIONCOMMENT' => '$notification.comment$',\
'HOSTDISPLAYNAME' => '$host.display_name$',\
'SERVICEDISPLAYNAME' => '$service.display_name$',\
'USEREMAIL' => '$user.email$'
end
Above LWRP resource will create an icinga NotificationCommand
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
import (optional) - default plugin-notification-command, icinga
NotificationCommand
attributecert_path
-
command (optional) - icinga
NotificationCommand
attributecommand
-
env (optional) - icinga
NotificationCommand
attributeenv
-
timeout (optional) - icinga
NotificationCommand
attributetimeout
-
zone (optional) - icinga
NotificationCommand
attributezone
-
arguments (optional) - icinga
NotificationCommand
attributearguments
-
custom_vars (optional) - icinga
NotificationCommand
attributevars
LWRP icinga2_apilistener
LWRP apilistener
creates an icinga ApiListener
object.
LWRP ApiListener example
icinga2_apilistener 'master' do
cert_path 'SysconfDir + "/icinga2/pki/" + NodeName + ".crt"'
key_path 'SysconfDir + "/icinga2/pki/" + NodeName + ".key"'
ca_path 'SysconfDir + "/icinga2/pki/ca.crt"'
bind_host 'host address'
bind_port '5665'
ticket_salt 'TicketSalt'
end
Above LWRP resource will create an icinga ApiListener
object.
LWRP Options
- action (optional) - default :enable, options: :enable, :disable
-
cert_path (optional) - icinga
ApiListener
attributecert_path
-
key_path (optional) - icinga
ApiListener
attributekey_path
-
ca_path (optional) - icinga
ApiListener
attributeca_path
-
crl_path (optional) - icinga
ApiListener
attributecrl_path
-
bind_host (optional) - icinga
ApiListener
attributebind_host
-
bind_port (optional) - icinga
ApiListener
attributebind_port
-
ticket_salt (optional) - icinga
ApiListener
attributeticket_salt
-
accept_config (optional) - icinga
ApiListener
attributeaccept_config
-
accept_commands (optional) - icinga
ApiListener
attributeaccept_commands
LWRP icinga2_applydependency
To be added.
Cookbook Advanced Attributes
default['icinga2']['disable_conf_d']
(default:false
): disable icinga2conf.d
default configuration and use LWRP to manage icinga2 objects / templatesdefault['icinga2']['add_cloud_custom_vars']
(default:true
): add cloud node attributes, limited cloud provider support is availabledefault['icinga2']['enable_features_recipe']
(default:false
): manage icinga2 features via node attributenode['icinga2']['enable_features']
default['icinga2']['features_enabled_dir']
(default:/etc/icinga2/features-enabled
): icinga2 enabled features locationdefault['icinga2']['features_available_dir']
(default:/etc/icinga2/features-available
): icinga2 available features locationdefault['icinga2']['cluster_attribute']
(default:nil
): icinga2 node cluster attribute name to add node cluster attribute and value to node varsdefault['icinga2']['application_attribute']
(default:nil
): icinga2 node application attribute name to add node application attribute and value to node varsdefault['icinga2']['enable_cluster_hostgroup']
(default:true
): creates icinga2 HostGroup Objects for environment clustersdefault['icinga2']['enable_application_hostgroup']
(default:true
): creates icinga2 HostGroup Objects for environment application typesdefault['icinga2']['enable_role_hostgroup']
(default:false
): creates icinga2 HostGroup Objects for environment rolesdefault['icinga2']['limit_region']
(default:true
): whether to limit monitoring to icinga2 server region, e.g. for ec2 collect nodes belongs to same regiondefault['icinga2']['use_fqdn_resolv']
(default:false
): whether to determine nodeaddress
from fqdndefault['icinga2']['failover_fqdn_address']
(default:true
): whether to use ohai attributenode['ipaddress']
if node fqdn does not existsdefault['icinga2']['ignore_node_error']
(default:false
): whether to ignore node errors if node fqdn, hostname and chef_environment is missing while collecting for a chef environmentdefault['icinga2']['ignore_resolv_error']
(default:true
): whether to ignore node fqdn resolve errors while collecting for a chef environmentdefault['icinga2']['web_engine']
(default: `'apache'): icinga2 web server, currently supports only apachedefault['icinga2']['install_nagios_plugins']
(default:true
): install nagios plugins to icinga2 server and clientsdefault['icinga2']['features']
(default:[available features]
): list of icinga2 available featuresdefault['icinga2']['enable_features']
(default:[checker command compatlog mainlog notification statusdata perfdata]
): icinga2 enabled features
Cookbook Core Attributes
default['icinga2']['version']
(default:2.2.2-1
): icinga2 versiondefault['icinga2']['conf_dir']
(default:/etc/icinga2
): icinga2 configuration locationdefault['icinga2']['conf_d_dir']
(default:/etc/icinga2/conf.d
): icinga2 conf.d directory locationdefault['icinga2']['pki_dir']
(default:/etc/icinga2/pki
): icinga2 pki directory locationdefault['icinga2']['scripts_dir']
(default:/etc/icinga2/scripts
): icinga2 script directory locationdefault['icinga2']['zones_dir']
(default:/etc/icinga2/zones.d
): icinga2 zones.d directory locationdefault['icinga2']['databag']
(default: `'icinga2'): icinga2 databag name, currently not useddefault['icinga2']['objects_d']
(default:'objects.d
): cookbook created icinga2 Object/Templates resources directory namedefault['icinga2']['objects_dir']
(default:/etc/icinga2/objects.d
): cookbook created icinga2 Object/Templates resources directory locationdefault['icinga2']['run_dir']
(default:/var/run/icinga2
): icinga2 run directorydefault['icinga2']['run_cmd_dir']
(default:/var/run/icinga2/cmd
): icinga2 location for processicinga2.cmd
default['icinga2']['cache_dir']
(default:/var/cache/icinga2
): icinga2 cache directory locationdefault['icinga2']['spool_dir']
(default:/var/spool/icinga2
): icinga2 spool directory locationdefault['icinga2']['lib_dir']
(default:/var/lib/icinga2
): icinga2 lib directory locationdefault['icinga2']['log_dir']
(default:/var/log/icinga2
): icinga2 core process log directory locationdefault['icinga2']['cache_dir']
(default:/var/cache/icinga2
): icinga2 cache directory locationdefault['icinga2']['service_name']
(default:icinga2'
): icinga2 process name*default['icinga2']['service_config_file']
(default:/etc/default/icinga2
): icinga2 * process configuration filedefault['icinga2']['plugins_dir']
(default:/usr/lib/nagios/plugins
): icinga2 plugins directory locationdefault['icinga2']['custom_plugins_dir']
(default:/opt/icinga2_custom_plugins
): icinga2 custom plugins directorydefault['icinga2']['admin_user']
(default:icingaadmin
): icinga2 admin userdefault['icinga2']['user']
(default:icinga
): icinga2 userdefault['icinga2']['group']
(default:icinga
): icinga2 user groupdefault['icinga2']['cmdgroup']
(default:icingacmd
): icinga2 cmd user group
Cookbook Icinga2 Constants Attributes
default['icinga2']['server']['constants']['PluginDir']
(default:node['icinga2']['plugins_dir']
): icinga2 plugins directory locationdefault['icinga2']['server']['constants']['ManubulonPluginDir']
(default:node['icinga2']['plugins_dir']
): icinga2 plugins directory locationdefault['icinga2']['server']['constants']['TicketSalt']
(default:ch2ng3m3
): icinga2 default TicketSalt key
Cookbook Icinga2 Host Object default Attributes
default['icinga2']['server']['object']['host']['import']
(default:'generic-host
)default['icinga2']['server']['object']['host']['max_check_attempts']
(default:3
)default['icinga2']['server']['object']['host']['check_period']
(default:nil
)default['icinga2']['server']['object']['host']['check_interval']
(default:1800
)default['icinga2']['server']['object']['host']['retry_interval']
(default:60
)default['icinga2']['server']['object']['host']['enable_notifications']
(default:true
)default['icinga2']['server']['object']['host']['enable_active_checks']
(default:true
)default['icinga2']['server']['object']['host']['enable_passive_checks']
(default:false
)default['icinga2']['server']['object']['host']['enable_event_handler']
(default:true
)default['icinga2']['server']['object']['host']['enable_flapping']
(default:true
)default['icinga2']['server']['object']['host']['enable_perfdata']
(default:true
)default['icinga2']['server']['object']['host']['event_command']
(default:nil
)default['icinga2']['server']['object']['host']['flapping_threshold']
(default:nil
)default['icinga2']['server']['object']['host']['volatile']
(default:nil
)default['icinga2']['server']['object']['host']['check_command']
(default:hostalive
)default['icinga2']['server']['object']['host']['zone']
(default:nil
)default['icinga2']['server']['object']['host']['command_endpoint']
(default:nil
)default['icinga2']['server']['object']['host']['zone_attribute']
(default:icinga2_zone
)
Cookbook Ulimit Attributes
default[:icinga2][:limits][:memlock]
(default:unlimited
): Icinga2 service user memory limitdefault[:icinga2][:limits][:nofile]
(default:48000
): Icinga2 service user file limitdefault[:icinga2][:limits][:nproc]
(default:unlimited
): Icinga2 service user process limit
Cookbook Repository Attributes
default['icinga2']['yum']['description']
(default: `ICINGA Stable Release'):default['icinga2']['yum']['mirrorlist']
(default:nil
):default['icinga2']['yum']['gpgcheck']
(default:true
):default['icinga2']['yum']['enabled']
(default:true
):default['icinga2']['yum']['gpgkey']
(default:http://packages.icinga.org/icinga.key
):default['icinga2']['yum']['action']
(default::create
):default['icinga2']['yum']['baseurl']
(default: ``):default['icinga2']['apt']['repo']
(default:ICINGA Stable Release
):default['icinga2']['apt']['uri']
(default:http://ppa.launchpad.net/formorer/icinga/ubuntu
):default['icinga2']['apt']['distribution']
(default:node['lsb']['codename']
):default['icinga2']['apt']['keyserver']
(default:keyserver.ubuntu.com
):default['icinga2']['apt']['components']
(default:[main]
):default['icinga2']['apt']['deb_src']
(default:true
):default['icinga2']['apt']['repo_key']
(default:http://packages.icinga.org/icinga.key
):default['icinga2']['apt']['action']
(default::add
):
Cookbook Classic UI CGI Core Attributes
default['icinga2']['classic_ui']['version']
(default:2.2.2-1
): icinga2 classic-ui package versiondefault['icinga2']['classic_ui']['gui_version']
(default:1.12.0-0
): icinga2 gui package versiondefault['icinga2']['classic_ui']['web_root']
(default:/usr/share/icinga
): icinga2 web doc root directory locationdefault['icinga2']['classic_ui']['home_dir']
(default:/etc/icinga
): icinga2 classic ui configuration home directory locationdefault['icinga2']['classic_ui']['conf_dir']
(default:/etc/icinga
): icinga2 classic ui configuration directory locationdefault['icinga2']['classic_ui']['log_dir']
(default:/var/log/icinga
): icinga2 classic ui log directory locationdefault['icinga2']['classic_ui']['cgi_log_dir']
(default:/var/log/icinga/gui
): icinga2 gui log directory location
Cookbook Classic UI CGI User Access Attributes
default['icinga2']['classic_ui']['users']
(default:{ 'icingaadmin' => '$apr1$MZtKRLAy$AV9OiJ.V/mI9g30bHn9ol1' }
): Hash List of user => password (md5) for class ui accessdefault['icinga2']['classic_ui']['authorized_for_system_information']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for system informationdefault['icinga2']['classic_ui']['authorized_for_configuration_information']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for configuration informationdefault['icinga2']['classic_ui']['authorized_for_full_command_resolution']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for full command resolutiondefault['icinga2']['classic_ui']['authorized_for_system_commands']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for system commandsdefault['icinga2']['classic_ui']['authorized_for_all_services']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for all servicesdefault['icinga2']['classic_ui']['authorized_for_all_hosts']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for all hostsdefault['icinga2']['classic_ui']['authorized_for_all_service_commands']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for all service commandsdefault['icinga2']['classic_ui']['authorized_for_all_host_commands']
(default:[node['icinga2']['admin_user']]
): Array list of users authorized for all host commands
Cookbook Classic UI CGI Configuration Attributes
default['icinga2']['classic_ui']['cgi']['standalone_installation']
(default:1
)default['icinga2']['classic_ui']['cgi']['physical_html_path']
(default:/usr/share/icinga
)default['icinga2']['classic_ui']['cgi']['url_html_path']
(default:/icinga
)default['icinga2']['classic_ui']['cgi']['url_stylesheets_path']
(default:/icinga/stylesheets
)default['icinga2']['classic_ui']['cgi']['http_charset']
(default:utf-8
)default['icinga2']['classic_ui']['cgi']['refresh_rate']
(default:60
)default['icinga2']['classic_ui']['cgi']['refresh_type']
(default:1
)default['icinga2']['classic_ui']['cgi']['escape_html_tags']
(default:1
)default['icinga2']['classic_ui']['cgi']['result_limit']
(default:50
)default['icinga2']['classic_ui']['cgi']['show_tac_header']
(default:1
)default['icinga2']['classic_ui']['cgi']['use_pending_states']
(default:1
)default['icinga2']['classic_ui']['cgi']['first_day_of_week']
(default:0
)default['icinga2']['classic_ui']['cgi']['suppress_maintenance_downtime']
(default:0
)default['icinga2']['classic_ui']['cgi']['action_url_target']
(default:main
)default['icinga2']['classic_ui']['cgi']['notes_url_target']
(default:main
)default['icinga2']['classic_ui']['cgi']['use_authentication']
(default:1
)default['icinga2']['classic_ui']['cgi']['use_ssl_authentication']
(default:0
)default['icinga2']['classic_ui']['cgi']['lowercase_user_name']
(default:0
)default['icinga2']['classic_ui']['cgi']['authorized_for_system_information']
(default:node['icinga2']['classic_ui']['authorized_for_system_information'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_configuration_information']
(default:node['icinga2']['classic_ui']* ['authorized_for_configuration_information'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_full_command_resolution']
(default:node['icinga2']['classic_ui']['authorized_for_full_command_resolution'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_system_commands']
(default:node['icinga2']['classic_ui']['authorized_for_system_commands'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_all_services']
(default:node['icinga2']['classic_ui']['authorized_for_all_services'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_all_hosts']
(default:node['icinga2']['classic_ui']['authorized_for_all_hosts'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_all_service_commands']
(default:node['icinga2']['classic_ui']['authorized_for_all_service_commands'].join(',')
)default['icinga2']['classic_ui']['cgi']['authorized_for_all_host_commands']
(default:node['icinga2']['classic_ui']['authorized_for_all_host_commands'].join(',')
)default['icinga2']['classic_ui']['cgi']['show_all_services_host_is_authorized_for']
(default:1
)default['icinga2']['classic_ui']['cgi']['show_partial_hostgroups']
(default:0
)default['icinga2']['classic_ui']['cgi']['show_partial_servicegroups']
(default:0
)default['icinga2']['classic_ui']['cgi']['default_statusmap_layout']
(default:5
)default['icinga2']['classic_ui']['cgi']['status_show_long_plugin_output']
(default:0
)default['icinga2']['classic_ui']['cgi']['display_status_totals']
(default:0
)default['icinga2']['classic_ui']['cgi']['highlight_table_rows']
(default:1
)default['icinga2']['classic_ui']['cgi']['add_notif_num_hard']
(default:28
)default['icinga2']['classic_ui']['cgi']['add_notif_num_soft']
(default:0
)default['icinga2']['classic_ui']['cgi']['use_logging']
(default:0
)default['icinga2']['classic_ui']['cgi']['cgi_log_file']
(default:node['icinga2']['classic_ui']['cgi_log_dir']/icinga-cgi.log
)default['icinga2']['classic_ui']['cgi']['cgi_log_rotation_method']
(default:d
)default['icinga2']['classic_ui']['cgi']['cgi_log_archive_path']
(default:node['icinga2']['classic_ui']['cgi_log_dir']
)default['icinga2']['classic_ui']['cgi']['enforce_comments_on_actions']
(default:0
)default['icinga2']['classic_ui']['cgi']['send_ack_notifications']
(default:1
)default['icinga2']['classic_ui']['cgi']['persistent_ack_comments']
(default:0
)default['icinga2']['classic_ui']['cgi']['lock_author_names']
(default:1
)default['icinga2']['classic_ui']['cgi']['default_downtime_duration']
(default:7200
)default['icinga2']['classic_ui']['cgi']['set_expire_ack_by_default']
(default:0
)default['icinga2']['classic_ui']['cgi']['default_expiring_acknowledgement_duration']
(default:86_400
)default['icinga2']['classic_ui']['cgi']['default_expiring_disabled_notifications_duration']
(default:86_400
)default['icinga2']['classic_ui']['cgi']['tac_show_only_hard_state']
(default:0
)default['icinga2']['classic_ui']['cgi']['show_tac_header_pending']
(default:1
)default['icinga2']['classic_ui']['cgi']['exclude_customvar_name']
(default:PASSWORD,COMMUNITY
)default['icinga2']['classic_ui']['cgi']['exclude_customvar_value']
(default:secret
)default['icinga2']['classic_ui']['cgi']['extinfo_show_child_hosts']
(default: `)default['icinga2']['classic_ui']['cgi']['tab_friendly_titles']
(default:1
)default['icinga2']['classic_ui']['cgi']['object_cache_file']
(default:/var/cache/icinga2/objects.cache
)default['icinga2']['classic_ui']['cgi']['status_file']
(default:node['icinga2']['cache_dir']/status.dat
)default['icinga2']['classic_ui']['cgi']['resource_file']
(default:node['icinga2']['classic_ui']['conf_dir']/resource.cfg
)default['icinga2']['classic_ui']['cgi']['command_file']
(default:node['icinga2']['run_dir']/cmd/icinga2.cmd
)default['icinga2']['classic_ui']['cgi']['check_external_commands']
(default:1
)default['icinga2']['classic_ui']['cgi']['interval_length']
(default:60
)default['icinga2']['classic_ui']['cgi']['status_update_interval']
(default:10
)default['icinga2']['classic_ui']['cgi']['log_file']
(default:node['icinga2']['log_dir']/compat/icinga.log
)default['icinga2']['classic_ui']['cgi']['log_rotation_method']
(default:h
)default['icinga2']['classic_ui']['cgi']['log_archive_path']
(default:node['icinga2']['log_dir']/compat/archives
)default['icinga2']['classic_ui']['cgi']['date_format']
(default:us
)
Cookbook Dependencies
-
ulimit
cookbook -
apache2
cookbook -
yum
cookbook -
apt
cookbook -
pnp4nagios
cookbook
Contributing
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write your change
- Write tests for your change (if applicable)
- Run the tests (
rake
), ensuring they all pass - Write new resource/attribute description to
README.md
- Write description about changes to PR
- Submit a Pull Request using Github
Copyright & License
Authors:: Virender Khatri and Contributors
<pre>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
</pre>
Dependent cookbooks
apt >= 0.0.0 |
yum ~> 3.0 |
apache2 >= 0.0.0 |
ulimit >= 0.0.0 |
pnp4nagios >= 0.0.0 |
Contingent cookbooks
icinga2 CHANGELOG
This file is used to list changes made in each version of the icinga2 cookbook.
0.6.1
Virender Khatri - added travis
Virender Khatri - added user_defined_objects conf directory
Virender Khatri - added LWRP resource regex check for interval attributes
Virender Khatri - fixed LWRP template for gelfwriter graphitewriter idomysqlconnection
idopgsqlconnection sysloglogger syslogloggerVirender Khatri - added LWRP compatlogger livestatuslistener perfdatawriter
statusdatawriter checkercomponent checkresultreader filelogger
notificationcomponentVirender Khatri - updated README doc
0.5.4
Virender Khatri - added pnp4nagios ssi symlink for node graph preview
Virender Khatri - fixed library for mount disks host custom vars
Virender Khatri - fixed LWRP sysloglogger
Virender Khatri - added LWRP doc
0.5.0
Virender Khatri - added lwrp for icinga2 feature
Virender Khatri - removed default features
Virender Khatri - added default
NodeName
constantVirender Khatri - removed zones.conf in favor of LWRP
zone
Virender Khatri - delaying icinga2 service start in favor of LWRP resources objects
Virender Khatri - added missing zone Object to various environment / host LWRPs
Virender Khatri - corrected LWRP endpoint
Virender Khatri - added support for pnp4nagios
Virender Khatri - updated README documentation
0.4.2
Virender Khatri - removed nrpe client recipe
Virender Khatri - replaced icingaweb recipe from cookbook with icingaweb2
Virender Khatri - refactored recipes for packages
Virender Khatri - prepping for pnp4nagios support, added recipe
icinga2::server_pnp
Virender Khatri - disabled icingaweb2 by default
Virender Khatri - enable icinga2 classic ui by default
Virender Khatri - disabled pnp integration by defatul
Virender Khatri - renamed
conf.d
disable attribute todisable_conf_d
Virender Khatri - added
icinga2_features
recipe to manage icinga2 featuresVirender Khatri - removed
environment
lwrp attributeenv_notification_user_groups
Virender Khatri - bump icinga2 version to v2.2.2-1
Virender Khatri - preparing for
ubuntu
platform testing
0.3.0
Virender Khatri - allowing node custom_vars hostgroups Array declaration
Virender Khatri - corrected check_interval chec_period resource attribute type
Virender Khatri - renamed downtime lwrp to scheduleddowntime
Virender Khatri - added applistener lwrp
Virender Khatri - added endpoint lwrp
Virender Khatri - added gelfwrite lwrp
Virender Khatri - corrected lwrp attributes types
Virender Khatri - corrected icinga2 objects boolean attribute, nil value attribute will be ignored
Virender Khatri - fixed mail notification scripts permissions
0.2.1
- Virender Khatri - removed files under development for chef supermarket
0.2.0
Virender Khatri - added node cpu and memory to custom vars by default
Virender Khatri - fixed permission issue on /var/run/icinga2
Virender Khatri - fixed nrpe config for ubuntu
Virender Khatri - added templates for mail notification scripts
Virender Khatri - added externalcommandlistener lwrp
Virender Khatri - added graphitewriter lwrp
Virender Khatri - added idomysqlconnection lwrp
Virender Khatri - added idopgsqlconnection lwrp
Virender Khatri - added sysloglogger lwrp
Virender Khatri - renamed client recipe to client_nrpe in favor of icinga2 agent
0.1.5
- Virender Khatri - initial release of icinga2
Check the Markdown Syntax Guide for help with Markdown.
The Github Flavored Markdown page describes the differences between markdown on github and standard markdown.
Foodcritic Metric
0.6.1 passed this metric
0.6.1 passed this metric