2012-09-14 10:42:21 +02:00
|
|
|
Installing Icinga 2
|
|
|
|
===================
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Please note that the current version of Icinga 2 isn't much more than a tech
|
|
|
|
demo. Expect some rough edges when installing and running Icinga 2.
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
For the "finished" version we're planning to release packages for the most
|
|
|
|
common Linux distributions as well as for Windows - or at least co-operate
|
|
|
|
with the package maintainers.
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-10-22 13:14:25 +02:00
|
|
|
Please check the documentation in the doc/ directory for a current list
|
|
|
|
of available packages.
|
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Build Requirements
|
|
|
|
------------------
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
The following requirements need to be fulfilled in order to build the
|
2012-09-18 12:38:08 +02:00
|
|
|
application using a dist tarball (package names for RHEL and Debian in
|
2013-09-25 15:47:39 +02:00
|
|
|
parentheses):
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-11-03 13:45:26 +01:00
|
|
|
* cmake
|
2012-09-18 12:38:08 +02:00
|
|
|
* GNU make (make)
|
2012-09-14 10:42:21 +02:00
|
|
|
* C++ compiler (gcc-c++ on RHEL, build-essential on Debian)
|
|
|
|
* OpenSSL library and header files (openssl-devel on RHEL, libssl-dev
|
|
|
|
on Debian)
|
|
|
|
* Boost library and header files (boost-devel on RHEL, libboost-all-dev
|
|
|
|
on Debian)
|
2013-11-03 13:45:26 +01:00
|
|
|
* GNU bison (bison)
|
2013-12-18 12:54:49 +01:00
|
|
|
* GNU flex (flex) >= 2.5.35
|
2014-04-14 03:02:33 +02:00
|
|
|
* recommended: libexecinfo on FreeBSD
|
2012-09-18 12:38:08 +02:00
|
|
|
* optional: Doxygen (doxygen)
|
2013-09-27 14:54:49 +02:00
|
|
|
* optional: MySQL (mysql-devel on RHEL, libmysqlclient-dev on Debian)
|
|
|
|
* optional: Python (python-devel on RHEL, python-dev on Debian)
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-12-18 12:54:49 +01:00
|
|
|
Note: RHEL5 ships an ancient flex version. Updated packages are available for
|
|
|
|
example from the repoforge buildtools repository.
|
|
|
|
|
|
|
|
http://mirror.hs-esslingen.de/repoforge/redhat/el5/en/{i386,x86_64}/buildtools/
|
|
|
|
|
2013-09-27 19:41:08 +02:00
|
|
|
User Requirements
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
By default Icinga will run as user 'icinga' and group 'icinga'. Additionally the
|
2013-10-02 09:50:26 +02:00
|
|
|
external command pipe and livestatus features require a dedicated command group
|
|
|
|
'icingacmd'. You can choose your own user/group names and pass them to the
|
|
|
|
configure script using the --with-icinga-user, --with-icinga-group,
|
|
|
|
--with-icingacmd-user and --with-icingacmd-group options.
|
2013-09-27 19:41:08 +02:00
|
|
|
|
|
|
|
# groupadd icinga
|
|
|
|
# groupadd icingacmd
|
2014-04-03 08:18:28 +02:00
|
|
|
# useradd -c "icinga" -s /sbin/nologin -G icingacmd -g icinga icinga
|
2013-09-27 19:41:08 +02:00
|
|
|
|
2013-10-02 09:50:26 +02:00
|
|
|
Add the web server user to the icingacmd group in order to grant it write
|
|
|
|
permissions to the external command pipe and livestatus socket:
|
2013-09-27 19:41:08 +02:00
|
|
|
|
|
|
|
# usermod -a -G icingacmd www-data
|
|
|
|
|
2013-10-02 09:50:26 +02:00
|
|
|
Make sure to replace "www-data" with the name of the user your web server
|
|
|
|
is running as.
|
2013-09-27 19:41:08 +02:00
|
|
|
|
2014-04-14 09:44:35 +02:00
|
|
|
Building Release Tarballs
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
In order to build a release tarball you should first check out the Git repository
|
|
|
|
in a new directory. If you're using an existing check-out you should make sure
|
|
|
|
that there are no local modifications:
|
|
|
|
|
|
|
|
$ git status
|
|
|
|
|
|
|
|
The CPack tool will package _all_ files in the source directory.
|
|
|
|
|
|
|
|
Next you'll have to create a separate build directory that is not inside
|
|
|
|
the source directory. If you fail to do this CPack will try to include the
|
|
|
|
build directory in the tarball.
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
$ mkdir icinga2-release && cd icinga2-release
|
|
|
|
$ cmake ../icinga2 -DCPACK_SOURCE_GENERATE=TGZ -DCPACK_SOURCE_PACKAGE_FILE_NAME=icinga2-0.0.10
|
|
|
|
$ make package_source
|
|
|
|
|
|
|
|
Update the package name to reflect the version of the tarball you're creating.
|
|
|
|
|
|
|
|
Finally you should verify that the tarball only contains the files it should contain:
|
|
|
|
|
|
|
|
$ tar ztf icinga2-0.0.10.tar.gz | less
|
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Building Icinga 2
|
|
|
|
-----------------
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Once you have installed all the necessary build requirements you can build
|
|
|
|
Icinga 2 using the following commands:
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-11-03 13:45:26 +01:00
|
|
|
$ mkdir build && cd build
|
|
|
|
$ cmake ..
|
2012-09-14 10:42:21 +02:00
|
|
|
$ make
|
|
|
|
$ make install
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-11-03 13:45:26 +01:00
|
|
|
You can specify an alternative installation prefix using -DCMAKE_INSTALL_PREFIX:
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-11-03 13:45:26 +01:00
|
|
|
$ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/icinga2
|
2012-09-17 14:54:17 +02:00
|
|
|
|
2013-11-26 08:45:13 +01:00
|
|
|
In addition to CMAKE_INSTALL_PREFIX the following Icinga-specific cmake
|
|
|
|
variables are supported:
|
|
|
|
|
|
|
|
- ICINGA2_USER: The user Icinga 2 should run as; defaults to "icinga"
|
|
|
|
- ICINGA2_GROUP: The group Icinga 2 should run as; defaults to "icinga"
|
|
|
|
- ICINGA2_COMMAND_USER: The command user Icinga 2 should use; defaults to "icinga"
|
|
|
|
- ICINGA2_COMMAND_GROUP: The command group Icinga 2 should use; default to "icingacmd"
|
|
|
|
- CMAKE_INSTALL_SYSCONFDIR: The configuration directory; defaults to CMAKE_INSTALL_PREFIX/etc
|
|
|
|
- CMAKE_INSTALL_LOCALSTATEDIR: The state directory; defaults to CMAKE_INSTALL_PREFIX/var
|
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Running Icinga 2
|
|
|
|
----------------
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Icinga 2 comes with a single binary that takes care of loading all the relevant
|
|
|
|
components (e.g. for check execution, notifications, etc.):
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2013-10-22 13:14:25 +02:00
|
|
|
# /usr/bin/icinga2
|
|
|
|
[2013-10-22 13:06:22 +0200] <Main Thread> information/icinga-app: Icinga application loader (version: 0.0.3, git branch master, commit 07d9a59f + changes)
|
|
|
|
[2013-10-22 13:06:22 +0200] <Main Thread> information/base: Adding library search dir: /usr/lib/icinga2
|
|
|
|
[2013-10-22 13:06:22 +0200] <Main Thread> information/base: Loading library 'libicinga.la'
|
|
|
|
[2013-10-22 13:06:22 +0200] <Main Thread> information/config: Adding include search dir: /usr/share/icinga2
|
|
|
|
[2013-10-22 13:06:22 +0200] <Main Thread> critical/icinga-app: You need to specify at least one config file (using the --config option).
|
|
|
|
|
|
|
|
Icinga 2 can be started as daemon using the provided init script:
|
|
|
|
|
|
|
|
# /etc/init.d/icinga2
|
|
|
|
Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
|
2012-03-30 07:39:12 +02:00
|
|
|
|
2012-09-14 10:42:21 +02:00
|
|
|
Icinga 2 reads a single configuration file which is used to specify all
|
|
|
|
configuration settings (global settings, hosts, services, etc.). The
|
2013-10-22 13:14:25 +02:00
|
|
|
configuration format is explained in detail in the doc/ directory.
|
2012-09-17 14:54:17 +02:00
|
|
|
|
2013-10-02 09:50:26 +02:00
|
|
|
By default "make install" installs example configuration files in
|
|
|
|
/usr/local/etc/icinga2 unless you have specified a different prefix or
|
|
|
|
sysconfdir.
|
2014-03-21 18:22:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
Package Builds
|
|
|
|
--------------
|
|
|
|
|
|
|
|
In order to create a snapshot tarball, create a new release directory outside
|
|
|
|
the source tree and run cmake and make. Replace <version> with the correct
|
|
|
|
string.
|
|
|
|
|
|
|
|
$ cd ..
|
|
|
|
$ mkdir icinga2-release && cd icinga2-release
|
|
|
|
$ cmake ../icinga2 -DCPACK_SOURCE_GENERATE=TGZ -DCPACK_SOURCE_PACKAGE_FILE_NAME=icinga2-<version>
|
|
|
|
$ make package_source
|