Please check the documentation in the [doc/](doc/) directory for a current list
of available packages and detailed installation instructions.
+The online documentation is available at [docs.icinga.com](https://docs.icinga.com)
+and will guide you step by step.
+
There are a number of known caveats when installing from source such as
incorrect directory and file permissions. So even if you're planning to
not use the official packages it is advisable to build your own Debian
or RPM packages.
+# Builds
+
+This information is intended for developers and packagers.
+
## Build Requirements
The following requirements need to be fulfilled in order to build the
* enable the `checker`, `notification` and `mainlog` feature by default
* run 'icinga2 api setup' in order to enable the `api` feature and generate SSL certificates for the node
-
## Running Icinga 2
Icinga 2 comes with a single binary that takes care of loading all the relevant
components (e.g. for check execution, notifications, etc.):
- # /usr/sbin/icinga2 daemon
- [2015-03-12 13:25:56 +0100] information/cli: Icinga application loader (version: v2.3.0-20-ga4d3713; debug)
- [2015-03-12 13:25:56 +0100] information/cli: Loading application type: icinga/IcingaApplication
- [2015-03-12 13:25:56 +0100] information/Utility: Loading library 'libicinga.dylib'
- [2015-03-12 13:25:56 +0100] information/ConfigCompiler: Compiling config file: /Users/gunnar/i2/etc/icinga2/icinga2.conf
- [2015-03-12 13:25:56 +0100] information/ConfigCompiler: Compiling config file: /Users/gunnar/i2/etc/icinga2/constants.conf
+ # icinga2 daemon
+ [2016-12-08 16:44:24 +0100] information/cli: Icinga application loader (version: v2.5.4-231-gb10a6b7; debug)
+ [2016-12-08 16:44:24 +0100] information/cli: Loading configuration file(s).
+ [2016-12-08 16:44:25 +0100] information/ConfigItem: Committing config item(s).
...
Icinga 2 can be started as a daemon using the provided init script:
# Icinga 2
+![Icinga Logo](https://www.icinga.org/wp-content/uploads/2014/06/icinga_logo.png)
+
+#### Table of Contents
+
+1. [About](About)
+2. [Installation](Installation)
+3. [Documentation](Documentation)
+4. [Support](Support)
+5. [Development and Contributions](Development)
+
## About
Icinga 2 is an open source monitoring system which checks the availability of your
More details online at [www.icinga.org](https://www.icinga.org/icinga/icinga-2/)
and inside the [documentation](doc/1-about.md).
+## License
+
+Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU
+General Public License Version 2, you will find a copy of this license in the
+LICENSE file included in the source package.
+
## Installation
Read the [INSTALL.md](INSTALL.md) file for more information about how to install it.
## Documentation
The documentation is located in the [doc/](doc/) directory. The latest documentation
-is also available on https://docs.icinga.org
+is also available on https://docs.icinga.com
## Support
-Check the project website at https://www.icinga.org for status updates and
-https://support.icinga.org if you want to contact us.
+Check the project website at https://www.icinga.com for status updates. Join the
+[community channels](https://www.icinga.com/community/get-involved/) for questions
+or ask an Icinga partner for [professional support](https://www.icinga.com/services/support/).
+
+## Development
+
+The Git repository is located on [GitHub](https://github.com/Icinga/icinga2).
+
+Icinga 2 is written in C++ and can be built on Linux/Unix and Windows.
+Read more about development builds in the [INSTALL.md](INSTALL.md) file.
+
+### Contributing
+
+There are many ways to contribute to Icinga -- whether it be sending patches,
+testing, reporting bugs, or reviewing and updating the documentation. Every
+contribution is appreciated!
+
+Read the [contributing section](https://www.icinga.com/community/get-involved/) and
+get familiar with the code.
+
+Pull requests on [GitHub](https://github.com/Icinga/icinga2) are preferred.
+
+### Testing
+
+Basic unit test coverage is provided by running `make test` during package builds.
+Read the [INSTALL.md](INSTALL.md) file for more information about development builds.
+
+Snapshot packages from the laster development branch are available inside the
+[package repository](http://packages.icinga.org).
+
+You can help test-drive the latest Icinga 2 snapshot packages inside the
+[Icinga 2 Vagrant boxes](https://github.com/icinga/icinga-vagrant).
+
## <a id="support"></a> Support
-Support for Icinga 2 is available in a number of ways. Please have a look at
-the [support overview page](https://support.icinga.org).
+Check the project website at https://www.icinga.com for status updates. Join the
+[community channels](https://www.icinga.com/community/get-involved/) for questions
+or ask an Icinga partner for [professional support](https://www.icinga.com/services/support/).
## <a id="contribute"></a> Contribute
testing, reporting bugs, or reviewing and updating the documentation. Every
contribution is appreciated!
-Please get in touch with the Icinga team at https://www.icinga.org/community/.
+Read the [contributing section](https://www.icinga.com/community/get-involved/) and
+get familiar with the code.
-If you want to help update this documentation, please read
-[this howto](https://wiki.icinga.org/display/community/Update+the+Icinga+2+documentation).
+Pull requests on [GitHub](https://github.com/Icinga/icinga2) are preferred.
### <a id="development-info"></a> Icinga 2 Development
-You can follow Icinga 2's development closely by checking
-out these resources:
+The Git repository is located on [GitHub](https://github.com/Icinga/icinga2).
-* [Development Bug Tracker](https://dev.icinga.org/projects/i2): [How to report a bug?](https://www.icinga.org/icinga/faq/)
-* Git Repositories: [main mirror on icinga.org](https://git.icinga.org/?p=icinga2.git;a=summary) [release mirror at github.com](https://github.com/Icinga/icinga2)
-* [Git Checkins Mailinglist](https://lists.icinga.org/mailman/listinfo/icinga-checkins)
-* [Development](https://lists.icinga.org/mailman/listinfo/icinga-devel) and [Users](https://lists.icinga.org/mailman/listinfo/icinga-users) Mailinglists
-* [#icinga-devel on irc.freenode.net](http://webchat.freenode.net/?channels=icinga-devel) including a Git Commit Bot
-
-For general support questions, please refer to the [community support channels](https://support.icinga.org).
-
-### <a id="how-to-report-bug-feature-requests"></a> How to Report a Bug or Feature Request
-
-More details in the [Icinga FAQ](https://www.icinga.org/icinga/faq/).
-
-* [Register](https://accounts.icinga.org/register) an Icinga account.
-* Create a new issue at the [Icinga 2 Development Tracker](https://dev.icinga.org/projects/i2).
-* When reporting a bug, please include the details described in the [Troubleshooting](15-troubleshooting.md#troubleshooting-information-required) chapter (version, configs, logs, etc.).
+Icinga 2 is written in C++ and can be built on Linux/Unix and Windows.
+Read more about development builds in the [INSTALL.md](https://github.com/Icinga/icinga2/blob/master/INSTALL.md)
+file.
## <a id="whats-new"></a> What's New
### <a id="plugin-check-command-nrpe"></a> nrpe
-The `check_nrpe` plugin can be used to query an [NRPE](http://docs.icinga.org/latest/en/nrpe.html)
+The `check_nrpe` plugin can be used to query an [NRPE](http://docs.icinga.com/latest/en/nrpe.html)
server or [NSClient++](https://www.nsclient.org). **Note**: This plugin
is considered insecure/deprecated.
#### <a id="plugin-contrib-icingacli-businessprocess"></a> Business Process
-This subcommand is provided by the [business process module](https://exchange.icinga.org/icinga/Business+Process) and executed as `icingacli-businessprocess`. The module is hosted by the Icinga project on its [project homepage](https://dev.icinga.org/projects/icingaweb2-module-businessprocess).
+This subcommand is provided by the [business process module](https://exchange.icinga.com/icinga/Business+Process) and executed as `icingacli-businessprocess`. The module is hosted by the Icinga project on its [project homepage](https://dev.icinga.com/projects/icingaweb2-module-businessprocess).
Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
#### <a id="plugin-contrib-command-iftraffic"></a> iftraffic
-The plugin [check_iftraffic](https://exchange.icinga.org/exchange/iftraffic)
+The plugin [check_iftraffic](https://exchange.icinga.com/exchange/iftraffic)
checks the utilization of a given interface name using the SNMP protocol.
Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
#### <a id="plugin-contrib-command-iftraffic64"></a> iftraffic64
-The plugin [check_iftraffic64](https://exchange.icinga.org/exchange/iftraffic64)
+The plugin [check_iftraffic64](https://exchange.icinga.com/exchange/iftraffic64)
checks the utilization of a given interface name using the SNMP protocol.
Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
#### <a id="plugin-contrib-command-squid"></a> squid
-Plugin for monitoring [Squid](https://exchange.icinga.org/exchange/check_squid).
+Plugin for monitoring [Squid](https://exchange.icinga.com/exchange/check_squid).
Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
Example filtered by `Service` objects with the name `ping*`:
# icinga2 object list --type Service --name *ping*
- Object 'icinga.org!ping4' of type 'Service':
- * __name = 'icinga.org!ping4'
+ Object 'icinga.com!ping4' of type 'Service':
+ * __name = 'icinga.com!ping4'
* check_command = 'ping4'
% = modified in '/etc/icinga2/conf.d/services.conf', lines 17:3-17:25
* check_interval = 60
% = modified in '/etc/icinga2/conf.d/templates.conf', lines 28:3-28:21
- * host_name = 'icinga.org'
+ * host_name = 'icinga.com'
% = modified in '/etc/icinga2/conf.d/services.conf', lines 14:1-14:21
* max_check_attempts = 3
% = modified in '/etc/icinga2/conf.d/templates.conf', lines 27:3-27:24
* [curl](http://curl.haxx.se) or any other HTTP client really
* [Icinga 2 console (CLI command)](12-icinga2-api.md#icinga2-api-clients-cli-console)
* [Icinga Studio](12-icinga2-api.md#icinga2-api-clients-icinga-studio)
-* [Icinga Web 2 Director](https://dev.icinga.org/projects/icingaweb2-modules)
+* [Icinga Web 2 Director](https://www.icinga.com/products/icinga-web-2-modules/)
Demo cases:
Set `perfdata_spool_dir = /var/spool/icinga2/perfdata` and restart the `npcd` daemon.
There's also an Icinga Web 2 module for direct PNP graph integration
-available at [Icinga Exchange](https://exchange.icinga.org/icinga/PNP).
+available at [Icinga Exchange](https://exchange.icinga.com/icinga/PNP).
More information on [action_url as attribute](13-addons.md#addons-graphing-pnp-action-url)
and [graph template names](13-addons.md#addons-graphing-pnp-custom-templates).
### <a id="addons-visualization-reporting"></a> Icinga Reporting
By enabling the [DB IDO](14-features.md#db-ido) feature you can use the
-[Icinga Reporting package](https://wiki.icinga.org/display/howtos/Setting+up+Icinga+with+Reporting).
+[Icinga Reporting package](https://docs.icinga.com/latest/en/reporting.html).
### <a id="addons-visualization-nagvis"></a> NagVis
* Configure the logstash `nagios` output to send passive traps to Icinga 2 using the external command pipe.
* Execute a plugin to check Graylog alert streams.
-More details can be found in [this blog post](https://www.icinga.org/2014/12/02/team-icinga-at-osmc-2014/).
+More details can be found in [this blog post](https://www.icinga.com/2014/12/02/team-icinga-at-osmc-2014/).
## <a id="notification-scripts-interfaces"></a> Notification Scripts and Interfaces
* Ticket systems
* etc.
-Additionally external services can be [integrated with Icinga 2](https://www.icinga.org/icinga/integration/):
+Additionally external services can be [integrated with Icinga 2](https://www.icinga.com/products/integrations/):
-* [Pagerduty](https://www.icinga.org/partners/pagerduty/)
-* [VictorOps](https://www.icinga.org/partners/victorops/)
-* [StackStorm](https://www.icinga.org/partners/stackstorm/)
+* [Pagerduty](https://www.icinga.com/partners/pagerduty/)
+* [VictorOps](https://www.icinga.com/partners/victorops/)
+* [StackStorm](https://www.icinga.com/partners/stackstorm/)
-More information can be found on the [Icinga Website](https://www.icinga.org/)
-and the [Icinga Wiki](https://wiki.icinga.org/display/howtos/Home).
+More information can be found on the [Icinga Website](https://www.icinga.com/).
## <a id="configuration-tools"></a> Configuration Management Tools
If you require your favourite configuration tool to export the Icinga 2 configuration, please get in
touch with their developers. The Icinga project does not provide a configuration web interface
-yet. Follow the [Icinga Blog](https://www.icinga.org/blog/) for updates on this topic.
+yet. Follow the [Icinga Blog](https://www.icinga.com/blog/) for updates on this topic.
If you're looking for puppet manifests, chef cookbooks, ansible recipes, etc. -- we're happy
-to integrate them upstream, so please get in touch with the [Icinga team](https://www.icinga.org/community/get-involved/).
+to integrate them upstream, so please get in touch with the [Icinga team](https://www.icinga.com/community/get-involved/).
These tools are currently in development and require feedback and tests:
A list of currently supported external commands can be found [here](23-appendix.md#external-commands-list-detail).
Detailed information on the commands and their required parameters can be found
-on the [Icinga 1.x documentation](http://docs.icinga.org/latest/en/extcommands2.html).
+on the [Icinga 1.x documentation](http://docs.icinga.com/latest/en/extcommands2.html).
## <a id="performance-data"></a> Performance Data
(gdb) handle SIGPIPE nostop noprint pass
(gdb) r
-If you're opening an issue at [https://dev.icinga.org], make sure
-to attach as much detail as possible.
+If you create a [bug report](https://www.icinga.com/community/get-involved/),
+make sure to attach as much detail as possible.
### <a id="development-debug-gdb-backtrace-running"></a> GDB Backtrace from Running Process
After that clone the icinga2 git repository.
- # git clone git://git.icinga.org/icinga2.git
+ # git clone https://github.com/icinga/icinga2
To create and install the policy package run the installation script which also labels the resources. (The script assumes Icinga 2 was started once after system startup, the labeling of the port will only happen once and fail later on.)
For now Icinga 2 is running in a permissive domain and adds also some rules for other necessary services so no problems should occure at all. But you can help to enhance the policy by testing Icinga 2 running confined by SELinux.
-When filing a bug report please add the following information additionally to the [normal ones](https://www.icinga.org/icinga/faq/):
+Please add the following information to [bug reports](https://www.icinga.com/community/get-involved/):
+
+* Versions, configuration snippets, etc.
* Output of `semodule -l | grep -e icinga2 -e nagios -e apache`
* Output of `ps -eZ | grep icinga2`
* Output of `semanage port -l | grep icinga2`
provided separately.
There is no output length restriction as known from Icinga 1.x using an
-[8KB static buffer](http://docs.icinga.org/latest/en/pluginapi.html#outputlengthrestrictions).
+[8KB static buffer](http://docs.icinga.com/latest/en/pluginapi.html#outputlengthrestrictions).
The `StatusDataWriter`, `IdoMysqlConnection` and `LivestatusListener` types
split the raw output into `output` (first line) and `long_output` (remaining
## <a id="external-commands-list-detail"></a> External Commands List
-Additional details can be found in the [Icinga 1.x Documentation](http://docs.icinga.org/latest/en/extcommands2.html)
+Additional details can be found in the [Icinga 1.x Documentation](http://docs.icinga.com/latest/en/extcommands2.html)
Command name | Parameters | Description
------------------------------------------|-----------------------------------|--------------------------
### <a id="schema-db-ido"></a> DB IDO Schema
There is a detailed documentation for the Icinga IDOUtils 1.x
-database schema available on [http://docs.icinga.org/latest/en/db_model.html]
+database schema available on [http://docs.icinga.com/latest/en/db_model.html]
#### <a id="schema-db-ido-extensions"></a> DB IDO Schema Extensions
-This example makes use of the [check_iftraffic](https://exchange.icinga.org/exchange/iftraffic) plugin.
+This example makes use of the [check_iftraffic](https://exchange.icinga.com/exchange/iftraffic) plugin.
The `CheckCommand` definition can be found in the
[contributed plugin check commands](10-icinga-template-library.md#plugin-contrib-command-iftraffic)
-- make sure to include them in your [icinga2 configuration file](4-configuring-icinga-2.md#icinga2-conf).
TODO
If you happen to have further questions, do not hesitate to join the
-[community support channels](https://support.icinga.org)
+[community support channels](https://www.icinga.com/community/get-involved/)
and ask community members for their experience and best practices.
## <a id="configuring-icinga2-overview"></a> Configuration Overview
### <a id="service-monitoring-plugins"></a> Plugins
-All existing Nagios or Icinga 1.x plugins work with Icinga 2. Here's a
-list of popular community sites which host check plugins:
-
-* [Icinga Exchange](https://exchange.icinga.org)
-* [Icinga Wiki](https://wiki.icinga.org)
+All existing Nagios or Icinga 1.x plugins work with Icinga 2. Community
+plugins can be found for example on [Icinga Exchange](https://exchange.icinga.com).
The recommended way of setting up these plugins is to copy them to a common directory
and create a new global constant, e.g. `CustomPluginDir` in your [constants.conf](4-configuring-icinga-2.md#constants-conf)
[Monitoring Basics](3-monitoring-basics.md#monitoring-basics) chapter.
If you have created your own `CheckCommand` definition, please kindly
-[send it upstream](https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions).
+[send it upstream](https://www.icinga.com/community/get-involved/).
### <a id="service-monitoring-plugin-api"></a> Plugin API
> Ensure to test your plugin properly with special cases before putting it
> into production!
-Once you've finished your plugin please upload/sync it to [Icinga Exchange](https://exchange.icinga.org/new).
+Once you've finished your plugin please upload/sync it to [Icinga Exchange](https://exchange.icinga.com/new).
Thanks in advance!
## <a id="service-monitoring-overview"></a> Service Monitoring Overview
The following examples should give you an idea on how to build your own
distributed monitoring environment. We've seen them all in production
-environments and received feedback from our [community](https://www.icinga.org/community/get-help/)
-and [partner support](https://www.icinga.org/services/support/) channels:
+environments and received feedback from our [community](https://www.icinga.com/community/get-involved/)
+and [partner support](https://www.icinga.com/services/support/) channels:
* Single master with clients.
* HA master with clients as command endpoint.
## <a id="distributed-monitoring-best-practice"></a> Best Practice
We've put together a collection of configuration examples from community feedback.
-If you like to share your tips and tricks with us, please join the [community channels](https://www.icinga.org/community/get-help/)!
+If you like to share your tips and tricks with us, please join the [community channels](https://www.icinga.com/community/get-involved/)!
### <a id="distributed-monitoring-global-zone-config-sync"></a> Global Zone for Config Sync
If you prefer an alternate method, we still recommend leaving all the Icinga 2 features intact (e.g. `icinga2 feature enable api`).
You should also use well known and documented default configuration file locations (e.g. `zones.conf`).
-This will tremendously help when someone is trying to help in the [community channels](https://www.icinga.org/community/get-help/).
+This will tremendously help when someone is trying to help in the [community channels](https://www.icinga.com/community/get-involved/).
### <a id="distributed-monitoring-automation-windows-silent"></a> Silent Windows Setup
}
-Additional examples can be found [within the icinga documentation](http://docs.icinga.org/latest/en/objectdefinitions.html#objectdefinitions-timeperiod).
+Additional examples can be found [here](8-advanced-topics.md#timeperiods).
Configuration Attributes: