]> granicus.if.org Git - icinga2/blob - INSTALL
Fix another exception issue with FreeBSD.
[icinga2] / INSTALL
1 Installing Icinga 2
2 ===================
3
4 Please note that the current version of Icinga 2 isn't much more than a tech
5 demo. Expect some rough edges when installing and running Icinga 2.
6
7 For the "finished" version we're planning to release packages for the most
8 common Linux distributions as well as for Windows - or at least co-operate
9 with the package maintainers.
10
11 Please check the documentation in the doc/ directory for a current list
12 of available packages.
13
14 Build Requirements
15 ------------------
16
17 The following requirements need to be fulfilled in order to build the
18 application using a dist tarball (package names for RHEL and Debian in
19 parentheses):
20
21 * cmake
22 * GNU make (make)
23 * C++ compiler (gcc-c++ on RHEL, build-essential on Debian)
24 * OpenSSL library and header files (openssl-devel on RHEL, libssl-dev
25                                     on Debian)
26 * Boost library and header files (boost-devel on RHEL, libboost-all-dev
27                                   on Debian)
28 * GNU bison (bison)
29 * GNU flex (flex) >= 2.5.35
30 * recommended: libexecinfo on FreeBSD
31 * optional: Doxygen (doxygen)
32 * optional: MySQL (mysql-devel on RHEL, libmysqlclient-dev on Debian)
33 * optional: Python (python-devel on RHEL, python-dev on Debian)
34
35 Note: RHEL5 ships an ancient flex version. Updated packages are available for
36 example from the repoforge buildtools repository.
37
38 http://mirror.hs-esslingen.de/repoforge/redhat/el5/en/{i386,x86_64}/buildtools/
39
40
41 User Requirements
42 -----------------
43
44 By default Icinga will run as user 'icinga' and group 'icinga'. Additionally the
45 external command pipe and livestatus features require a dedicated command group
46 'icingacmd'. You can choose your own user/group names and pass them to the
47 configure script using the --with-icinga-user, --with-icinga-group,
48 --with-icingacmd-user and --with-icingacmd-group options.
49
50 # groupadd icinga
51 # groupadd icingacmd
52 # useradd -c "icinga" -s /sbin/nologin -G icingacmd -g icinga icinga
53
54 Add the web server user to the icingacmd group in order to grant it write
55 permissions to the external command pipe and livestatus socket:
56
57 # usermod -a -G icingacmd www-data
58
59 Make sure to replace "www-data" with the name of the user your web server
60 is running as.
61
62 Building Icinga 2
63 -----------------
64
65 Once you have installed all the necessary build requirements you can build
66 Icinga 2 using the following commands:
67
68 $ mkdir build && cd build
69 $ cmake ..
70 $ make
71 $ make install
72
73 You can specify an alternative installation prefix using -DCMAKE_INSTALL_PREFIX:
74
75 $ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/icinga2
76
77 In addition to CMAKE_INSTALL_PREFIX the following Icinga-specific cmake
78 variables are supported:
79
80 - ICINGA2_USER: The user Icinga 2 should run as; defaults to "icinga"
81 - ICINGA2_GROUP: The group Icinga 2 should run as; defaults to "icinga"
82 - ICINGA2_COMMAND_USER: The command user Icinga 2 should use; defaults to "icinga"
83 - ICINGA2_COMMAND_GROUP: The command group Icinga 2 should use; default to "icingacmd"
84 - CMAKE_INSTALL_SYSCONFDIR: The configuration directory; defaults to CMAKE_INSTALL_PREFIX/etc
85 - CMAKE_INSTALL_LOCALSTATEDIR: The state directory; defaults to CMAKE_INSTALL_PREFIX/var
86
87 Running Icinga 2
88 ----------------
89
90 Icinga 2 comes with a single binary that takes care of loading all the relevant
91 components (e.g. for check execution, notifications, etc.):
92
93 # /usr/bin/icinga2
94 [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)
95 [2013-10-22 13:06:22 +0200] <Main Thread> information/base: Adding library search dir: /usr/lib/icinga2
96 [2013-10-22 13:06:22 +0200] <Main Thread> information/base: Loading library 'libicinga.la'
97 [2013-10-22 13:06:22 +0200] <Main Thread> information/config: Adding include search dir: /usr/share/icinga2
98 [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).
99
100 Icinga 2 can be started as daemon using the provided init script:
101
102 # /etc/init.d/icinga2
103 Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
104
105 Icinga 2 reads a single configuration file which is used to specify all
106 configuration settings (global settings, hosts, services, etc.). The
107 configuration format is explained in detail in the doc/ directory.
108
109 By default "make install" installs example configuration files in
110 /usr/local/etc/icinga2 unless you have specified a different prefix or
111 sysconfdir.
112
113
114 Package Builds
115 --------------
116
117 In order to create a snapshot tarball, create a new release directory outside
118 the source tree and run cmake and make. Replace <version> with the correct
119 string.
120
121 $ cd ..
122 $ mkdir icinga2-release && cd icinga2-release
123 $ cmake ../icinga2 -DCPACK_SOURCE_GENERATE=TGZ -DCPACK_SOURCE_PACKAGE_FILE_NAME=icinga2-<version>
124 $ make package_source