1 # Getting Started <a id="getting-started"></a>
3 This tutorial is a step-by-step introduction to installing [Icinga 2](02-getting-started.md#setting-up-icinga2)
4 and [Icinga Web 2](02-getting-started.md#setting-up-icingaweb2).
5 It assumes that you are familiar with the operating system you're using to install Icinga 2.
7 ## Setting up Icinga 2 <a id="setting-up-icinga2"></a>
9 First off you have to install Icinga 2. The preferred way of doing this
10 is to use the official package repositories depending on which operating system
11 and distribution you are running.
13 Distribution | Repository
14 ------------------------|---------------------------
15 Debian | [Icinga Repository](https://packages.icinga.com/debian/)
16 Ubuntu | [Icinga Repository](https://packages.icinga.com/ubuntu/)
17 RHEL/CentOS | [Icinga Repository](https://packages.icinga.com/epel/)
18 openSUSE | [Icinga Repository](https://packages.icinga.com/openSUSE/)
19 SLES | [Icinga Repository](https://packages.icinga.com/SUSE/)
20 Gentoo | [Upstream](https://packages.gentoo.org/package/net-analyzer/icinga2)
21 FreeBSD | [Upstream](https://www.freshports.org/net-mgmt/icinga2)
22 OpenBSD | [Upstream](http://ports.su/net/icinga/core2,-main)
23 ArchLinux | [Upstream](https://aur.archlinux.org/packages/icinga2)
24 Alpine Linux | [Upstream](https://pkgs.alpinelinux.org/package/edge/community/x86_64/icinga2)
26 Packages for distributions other than the ones listed above may also be
27 available. Please contact your distribution packagers.
29 ### Package Repositories <a id="package-repositories"></a>
31 You need to add the Icinga repository to your package management configuration.
32 Below is a list with examples for the various distributions.
36 # wget -O - https://packages.icinga.com/icinga.key | apt-key add -
37 # echo 'deb https://packages.icinga.com/debian icinga-stretch main' >/etc/apt/sources.list.d/icinga.list
42 # wget -O - https://packages.icinga.com/icinga.key | apt-key add -
43 # echo 'deb https://packages.icinga.com/ubuntu icinga-xenial main' >/etc/apt/sources.list.d/icinga.list
48 yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
52 yum install https://packages.icinga.com/epel/icinga-rpm-release-6-latest.noarch.rpm
56 dnf install https://packages.icinga.com/fedora/icinga-rpm-release-26-latest.noarch.rpm
60 dnf install https://packages.icinga.com/fedora/icinga-rpm-release-25-latest.noarch.rpm
64 # zypper ar https://packages.icinga.com/SUSE/ICINGA-release-11.repo
69 # zypper ar https://packages.icinga.com/SUSE/ICINGA-release.repo
74 # zypper ar https://packages.icinga.com/openSUSE/ICINGA-release.repo
80 # echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
83 #### RHEL/CentOS EPEL Repository <a id="package-repositories-rhel-epel"></a>
85 The packages for RHEL/CentOS depend on other packages which are distributed
86 as part of the [EPEL repository](https://fedoraproject.org/wiki/EPEL).
90 yum install epel-release
92 If you are using RHEL you need enable the `optional` repository and then install
93 the [EPEL rpm package](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F).
95 #### SLES Security Repository <a id="package-repositories-sles-security"></a>
97 The packages for SLES 11 depend on the `openssl1` package which is distributed
98 as part of the [SLES 11 Security Module](https://www.suse.com/communities/conversations/introducing-the-suse-linux-enterprise-11-security-module/).
100 #### SLES 12 SDK <a id="package-sles-sdk"></a>
102 Icinga 2 requires the `libboost_chrono1_54_0` package from the `SLES 12 SDK` repository. Refer to the SUSE Enterprise
103 Linux documentation for further information.
105 #### Alpine Linux Notes <a id="package-repositories-alpine-notes"></a>
107 The example provided suppose that you are running Alpine edge, which is the -dev branch and is a rolling release.
108 If you are using a stable version please "pin" the edge repository on the latest Icinga 2 package version.
109 In order to correctly manage your repository, please follow
110 [these instructions](https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management)
112 ### Installing Icinga 2 <a id="installing-icinga2"></a>
114 You can install Icinga 2 by using your distribution's package manager
115 to install the `icinga2` package.
119 # apt-get install icinga2
123 # yum install icinga2
124 # chkconfig icinga2 on
125 # service icinga2 start
127 RHEL/CentOS 7 and Fedora:
129 # yum install icinga2
130 # systemctl enable icinga2
131 # systemctl start icinga2
135 # zypper install icinga2
139 # pkg install icinga2
146 ### Enabled Features during Installation <a id="installation-enabled-features"></a>
148 The default installation will enable three features required for a basic
149 Icinga 2 installation:
151 * `checker` for executing checks
152 * `notification` for sending notifications
153 * `mainlog` for writing the `icinga2.log` file
155 You can verify that by calling `icinga2 feature list`
156 [CLI command](11-cli-commands.md#cli-command-feature) to see which features are
157 enabled and disabled.
159 # icinga2 feature list
160 Disabled features: api command compatlog debuglog gelf graphite icingastatus ido-mysql ido-pgsql influxdb livestatus opentsdb perfdata statusdata syslog
161 Enabled features: checker mainlog notification
164 ### Installation Paths <a id="installation-paths"></a>
166 By default Icinga 2 uses the following files and directories:
169 ----------------------------------------------|------------------------------------
170 /etc/icinga2 | Contains Icinga 2 configuration files.
171 /usr/lib/systemd/system/icinga2.service | The Icinga 2 Systemd service file on systems using Systemd.
172 /etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit or OpenRC
173 /usr/sbin/icinga2 | Shell wrapper for the Icinga 2 binary.
174 /usr/lib\*/icinga2 | Libraries and the Icinga 2 binary (use `find /usr -type f -name icinga2` to locate the binary path).
175 /usr/share/doc/icinga2 | Documentation files that come with Icinga 2.
176 /usr/share/icinga2/include | The Icinga Template Library and plugin command configuration.
177 /var/run/icinga2 | PID file.
178 /var/run/icinga2/cmd | Command pipe and Livestatus socket.
179 /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files
180 /var/spool/icinga2 | Used for performance data spool files.
181 /var/lib/icinga2 | Icinga 2 state file, cluster log, local CA and configuration files (cluster, api).
182 /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature.
184 FreeBSD uses slightly different paths:
186 By default Icinga 2 uses the following files and directories:
189 ------------------------------------|------------------------------------
190 /usr/local/etc/icinga2 | Contains Icinga 2 configuration files.
191 /usr/local/etc/rc.d/icinga2 | The Icinga 2 init script.
192 /usr/local/sbin/icinga2 | Shell wrapper for the Icinga 2 binary.
193 /usr/local/lib/icinga2 | Libraries and the Icinga 2 binary.
194 /usr/local/share/doc/icinga2 | Documentation files that come with Icinga 2.
195 /usr/local/share/icinga2/include | The Icinga Template Library and plugin command configuration.
196 /var/run/icinga2 | PID file.
197 /var/run/icinga2/cmd | Command pipe and Livestatus socket.
198 /var/cache/icinga2 | status.dat/objects.cache, icinga2.debug files
199 /var/spool/icinga2 | Used for performance data spool files.
200 /var/lib/icinga2 | Icinga 2 state file, cluster log, local CA and configuration files (cluster, api).
201 /var/log/icinga2 | Log file location and compat/ directory for the CompatLogger feature.
203 ## Setting up Check Plugins <a id="setting-up-check-plugins"></a>
205 Without plugins Icinga 2 does not know how to check external services. The
206 [Monitoring Plugins Project](https://www.monitoring-plugins.org/) provides
207 an extensive set of plugins which can be used with Icinga 2 to check whether
208 services are working properly.
210 These plugins are required to make the [example configuration](04-configuring-icinga-2.md#configuring-icinga2-overview)
213 For your convenience here is a list of package names for some of the more
214 popular operating systems/distributions:
216 OS/Distribution | Package Name | Repository | Installation Path
217 -----------------------|--------------------|---------------------------|----------------------------
218 RHEL/CentOS | nagios-plugins-all | [EPEL](https://fedoraproject.org/wiki/EPEL) | /usr/lib/nagios/plugins or /usr/lib64/nagios/plugins
219 SLES/OpenSUSE | monitoring-plugins | [server:monitoring](https://build.opensuse.org/project/repositories/server:monitoring) | /usr/lib/nagios/plugins
220 Debian/Ubuntu | monitoring-plugins | - | /usr/lib/nagios/plugins
221 FreeBSD | monitoring-plugins | - | /usr/local/libexec/nagios
222 Alpine Linux | monitoring-plugins | - | /usr/lib/monitoring-plugins
223 OS X | nagios-plugins | [MacPorts](https://www.macports.org), [Homebrew](https://brew.sh) | /opt/local/libexec or /usr/local/sbin
225 The recommended way of installing these standard plugins is to use your
226 distribution's package manager.
230 # apt-get install monitoring-plugins
234 # yum install nagios-plugins-all
236 The packages for RHEL/CentOS depend on other packages which are distributed
237 as part of the [EPEL repository](https://fedoraproject.org/wiki/EPEL). Please
238 make sure to enable this repository by following
239 [these instructions](https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F).
243 # dnf install nagios-plugins-all
247 # zypper install monitoring-plugins
249 The packages for SLES/OpenSUSE depend on other packages which are distributed
250 as part of the [server:monitoring repository](https://build.opensuse.org/project/repositories/server:monitoring).
251 Please make sure to enable this repository beforehand.
255 # pkg install monitoring-plugins
259 # apk add monitoring-plugins
261 Note: For Alpine you don't need to explicitly add the `monitoring-plugins` package since it is a dependency of
262 `icinga2` and is pulled automatically.
264 Depending on which directory your plugins are installed into you may need to
265 update the global `PluginDir` constant in your [Icinga 2 configuration](04-configuring-icinga-2.md#constants-conf).
266 This constant is used by the check command definitions contained in the Icinga Template Library
267 to determine where to find the plugin binaries.
271 > Please refer to the [service monitoring](05-service-monitoring.md#service-monitoring-plugins) chapter for details about how to integrate
272 > additional check plugins into your Icinga 2 setup.
274 ## Running Icinga 2 <a id="running-icinga2"></a>
276 ### Init Script <a id="init-script"></a>
278 Icinga 2's init script is installed in `/etc/init.d/icinga2` (`/usr/local/etc/rc.d/icinga2` on FreeBSD) by default:
280 # /etc/init.d/icinga2
281 Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
283 The init script supports the following actions:
285 Command | Description
286 --------------------|------------------------
287 start | The `start` action starts the Icinga 2 daemon.
288 stop | The `stop` action stops the Icinga 2 daemon.
289 restart | The `restart` action is a shortcut for running the `stop` action followed by `start`.
290 reload | The `reload` action sends the `HUP` signal to Icinga 2 which causes it to restart. Unlike the `restart` action `reload` does not wait until Icinga 2 has restarted.
291 checkconfig | The `checkconfig` action checks if the `/etc/icinga2/icinga2.conf` configuration file contains any errors.
292 status | The `status` action checks if Icinga 2 is running.
294 By default the Icinga 2 daemon is running as `icinga` user and group
295 using the init script. Using Debian packages the user and group are set to
296 `nagios` for historical reasons.
298 ### systemd Service <a id="systemd-service"></a>
300 Some distributions (e.g. Fedora, openSUSE and RHEL/CentOS 7) use systemd. The
301 Icinga 2 packages automatically install the necessary systemd unit files.
303 The Icinga 2 systemd service can be (re-)started, reloaded, stopped and also
304 queried for its current status.
306 # systemctl status icinga2
307 icinga2.service - Icinga host/service/network monitoring system
308 Loaded: loaded (/usr/lib/systemd/system/icinga2.service; disabled)
309 Active: active (running) since Mi 2014-07-23 13:39:38 CEST; 15s ago
310 Process: 21692 ExecStart=/usr/sbin/icinga2 -c ${ICINGA2_CONFIG_FILE} -d -e ${ICINGA2_ERROR_LOG} -u ${ICINGA2_USER} -g ${ICINGA2_GROUP} (code=exited, status=0/SUCCESS)
311 Process: 21674 ExecStartPre=/usr/sbin/icinga2-prepare-dirs /etc/sysconfig/icinga2 (code=exited, status=0/SUCCESS)
312 Main PID: 21727 (icinga2)
313 CGroup: /system.slice/icinga2.service
314 21727 /usr/sbin/icinga2 -c /etc/icinga2/icinga2.conf -d -e /var/log/icinga2/error.log -u icinga -g icinga --no-stack-rlimit
316 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 309 Service(s).
317 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 1 User(s).
318 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 15 Notification(s).
319 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 4 ScheduledDowntime(s).
320 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 1 UserGroup(s).
321 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 1 IcingaApplication(s).
322 Jul 23 13:39:38 nbmif icinga2[21692]: [2014-07-23 13:39:38 +0200] information/ConfigItem: Checked 8 Dependency(s).
323 Jul 23 13:39:38 nbmif systemd[1]: Started Icinga host/service/network monitoring system.
325 The `systemctl` command supports the following actions:
327 Command | Description
328 --------------------|------------------------
329 start | The `start` action starts the Icinga 2 daemon.
330 stop | The `stop` action stops the Icinga 2 daemon.
331 restart | The `restart` action is a shortcut for running the `stop` action followed by `start`.
332 reload | The `reload` action sends the `HUP` signal to Icinga 2 which causes it to restart. Unlike the `restart` action `reload` does not wait until Icinga 2 has restarted.
333 status | The `status` action checks if Icinga 2 is running.
334 enable | The `enable` action enables the service being started at system boot time (similar to `chkconfig`)
338 # systemctl enable icinga2
340 # systemctl restart icinga2
341 Job for icinga2.service failed. See 'systemctl status icinga2.service' and 'journalctl -xn' for details.
343 If you're stuck with configuration errors, you can manually invoke the
344 [configuration validation](11-cli-commands.md#config-validation).
348 On FreeBSD you need to enable icinga2 in your rc.conf
350 # sysrc icinga2_enable=yes
352 # service icinga2 restart
354 ## Configuration Syntax Highlighting <a id="configuration-syntax-highlighting"></a>
356 Icinga 2 ships configuration examples for syntax highlighting using the `vim` and `nano` editors.
357 The RHEL and SUSE package `icinga2-common` installs these files into `/usr/share/doc/icinga2-common-[x.x.x]/syntax`
358 (where `[x.x.x]` is the version number, e.g. `2.4.3` or `2.4.4`). Sources provide these files in `tools/syntax`.
359 On Debian systems the `icinga2-common` package provides only the Nano configuration file (`/usr/share/nano/icinga2.nanorc`);
360 to obtain the Vim configuration, please install the extra package `vim-icinga2`. The files are located in `/usr/share/vim/addons`.
362 ### Configuration Syntax Highlighting using Vim <a id="configuration-syntax-highlighting-vim"></a>
364 Install the package `vim-icinga2` with your distribution's package manager.
368 # apt-get install vim-icinga2 vim-addon-manager
369 # vim-addon-manager -w install icinga2
370 Info: installing removed addon 'icinga2' to /var/lib/vim/addons
374 # yum install vim-icinga2
378 # zypper install vim-icinga2
382 # apk add icinga2-vim
384 Ensure that syntax highlighting is enabled e.g. by editing the user's `vimrc`
392 # vim /etc/icinga2/conf.d/templates.conf
394 ![Vim with syntax highlighting](images/getting-started/vim-syntax.png "Vim with Icinga 2 syntax highlighting")
397 ### Configuration Syntax Highlighting using Nano <a id="configuration-syntax-highlighting-nano"></a>
399 Install the package `nano-icinga2` with your distribution's package manager.
403 **Note:** The syntax files are installed with the `icinga2-common` package already.
407 # yum install nano-icinga2
411 # zypper install nano-icinga2
413 Copy the `/etc/nanorc` sample file to your home directory.
415 $ cp /etc/nanorc ~/.nanorc
417 Include the `icinga2.nanorc` file.
422 include "/usr/share/nano/icinga2.nanorc"
426 $ nano /etc/icinga2/conf.d/templates.conf
428 ![Nano with syntax highlighting](images/getting-started/nano-syntax.png "Nano with Icinga 2 syntax highlighting")
430 ## Setting up Icinga Web 2 <a id="setting-up-icingaweb2"></a>
432 Icinga 2 can be used with Icinga Web 2 and a number of other web interfaces.
433 This chapter explains how to set up Icinga Web 2.
435 The DB IDO (Database Icinga Data Output) modules for Icinga 2 take care of
436 exporting all configuration and status information into a database. The IDO
437 database is used by a number of projects including
438 [Icinga Web 2](02-getting-started.md#setting-up-icingaweb2), Icinga Reporting
441 There is a separate module for each database backend. At present support for
442 both MySQL and PostgreSQL is implemented.
444 Please choose whether to install [MySQL](02-getting-started.md#configuring-db-ido-mysql) or
445 [PostgreSQL](02-getting-started.md#configuring-db-ido-postgresql).
447 ### Configuring DB IDO MySQL <a id="configuring-db-ido-mysql"></a>
449 #### Installing MySQL database server <a id="installing-database-mysql-server"></a>
453 # apt-get install mysql-server mysql-client
454 # mysql_secure_installation
458 # yum install mysql-server mysql
459 # chkconfig mysqld on
460 # service mysqld start
461 # mysql_secure_installation
463 RHEL/CentOS 7 and Fedora:
465 # yum install mariadb-server mariadb
466 # systemctl enable mariadb
467 # systemctl start mariadb
468 # mysql_secure_installation
472 # zypper install mysql mysql-client
473 # chkconfig mysqld on
474 # service mysqld start
478 # pkg install mysql56-server
479 # sysrc mysql_enable=yes
480 # service mysql-server restart
481 # mysql_secure_installation
486 # rc-service mariadb setup
487 # rc-update add mariadb default
488 # rc-service mariadb start
490 #### Installing the IDO modules for MySQL <a id="installing-database-mysql-modules"></a>
492 The next step is to install the `icinga2-ido-mysql` package using your
493 distribution's package manager.
497 # apt-get install icinga2-ido-mysql
501 # yum install icinga2-ido-mysql
505 # zypper install icinga2-ido-mysql
509 On FreeBSD the IDO modules for MySQL are included with the icinga2 package
510 and located at /usr/local/share/icinga2-ido-mysql/schema/mysql.sql
514 On Alpine Linux the IDO modules for MySQL are included with the `icinga2` package
515 and located at /usr/share/icinga2-ido-mysql/schema/mysql.sql
519 > The Debian/Ubuntu packages provide a database configuration wizard by
520 > default. You can skip the automated setup and install/upgrade the
521 > database manually if you prefer that.
523 #### Setting up the MySQL database <a id="setting-up-mysql-db"></a>
525 Set up a MySQL database for Icinga 2:
529 mysql> CREATE DATABASE icinga;
530 mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
533 ![setting up the database on CentOS 7](images/getting-started/mariadb-centos7.png "Setting up the database on CentOS 7")
535 After creating the database you can import the Icinga 2 IDO schema using the
538 # mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
541 #### Enabling the IDO MySQL module <a id="enabling-ido-mysql"></a>
543 The package provides a new configuration file that is installed in
544 `/etc/icinga2/features-available/ido-mysql.conf`. You will need to
545 update the database credentials in this file.
547 All available attributes are explained in the
548 [IdoMysqlConnection object](09-object-types.md#objecttype-idomysqlconnection)
551 You can enable the `ido-mysql` feature configuration file using
552 `icinga2 feature enable`:
554 # icinga2 feature enable ido-mysql
555 Module 'ido-mysql' was enabled.
556 Make sure to restart Icinga 2 for these changes to take effect.
558 After enabling the ido-mysql feature you have to restart Icinga 2:
560 RHEL/CentOS 7/Fedora, SLES 12, Debian Jessie/Stretch, Ubuntu Xenial:
562 # systemctl restart icinga2
564 Debian/Ubuntu, RHEL/CentOS 6 and SUSE 11:
566 # service icinga2 restart
570 # service icinga2 restart
574 # rc-service icinga2 restart
576 Continue with the [webserver setup](02-getting-started.md#icinga2-user-interface-webserver).
578 ### Configuring DB IDO PostgreSQL <a id="configuring-db-ido-postgresql"></a>
580 #### Installing PostgreSQL database server <a id="installing-database-postgresql-server"></a>
584 # apt-get install postgresql
588 # yum install postgresql-server postgresql
589 # chkconfig postgresql on
590 # service postgresql start
594 # yum install postgresql-server postgresql
595 # postgresql-setup initdb
596 # systemctl enable postgresql
597 # systemctl start postgresql
601 # zypper install postgresql postgresql-server
602 # chkconfig postgresql on
603 # service postgresql start
607 # pkg install postgresql93-server
608 # sysrc postgresql_enable=yes
609 # service postgresql start
614 # rc-update add postgresql default
615 # rc-service postgresql setup
616 # rc-service postgresql start
618 #### Installing the IDO modules for PostgreSQL <a id="installing-database-postgresql-modules"></a>
620 The next step is to install the `icinga2-ido-pgsql` package using your
621 distribution's package manager.
625 # apt-get install icinga2-ido-pgsql
629 # yum install icinga2-ido-pgsql
633 # zypper install icinga2-ido-pgsql
637 On FreeBSD the IDO modules for PostgreSQL are included with the icinga2 package
638 and located at /usr/local/share/icinga2-ido-pgsql/schema/pgsql.sql
642 On Alpine Linux the IDO modules for PostgreSQL are included with the `icinga2` package
643 and located at /usr/share/icinga2-ido-pgsql/schema/pgsql.sql
647 > Upstream Debian packages provide a database configuration wizard by default.
648 > You can skip the automated setup and install/upgrade the database manually
649 > if you prefer that.
651 #### Setting up the PostgreSQL database
653 Set up a PostgreSQL database for Icinga 2:
656 # sudo -u postgres psql -c "CREATE ROLE icinga WITH LOGIN PASSWORD 'icinga'"
657 # sudo -u postgres createdb -O icinga -E UTF8 icinga
658 # sudo -u postgres createlang plpgsql icinga
662 > When using PostgreSQL 9.x you can omit the `createlang` command.
663 > Also it is assumed here that your locale is set to utf-8, you may run into
664 > problems otherwise.
666 Locate your pg\_hba.conf (Debian: `/etc/postgresql/*/main/pg_hba.conf`,
667 RHEL/SUSE: `/var/lib/pgsql/data/pg_hba.conf`), add the icinga user with md5
668 authentication method and restart the postgresql server.
671 local icinga icinga md5
672 host icinga icinga 127.0.0.1/32 md5
673 host icinga icinga ::1/128 md5
675 # "local" is for Unix domain socket connections only
677 # IPv4 local connections:
678 host all all 127.0.0.1/32 ident
679 # IPv6 local connections:
680 host all all ::1/128 ident
682 # service postgresql restart
685 After creating the database and permissions you can import the Icinga 2 IDO
686 schema using the following command:
688 # export PGPASSWORD=icinga
689 # psql -U icinga -d icinga < /usr/share/icinga2-ido-pgsql/schema/pgsql.sql
691 ![importing the Icinga 2 IDO schema](images/getting-started/postgr-import-ido.png "Importing the Icinga 2 IDO schema on Debian Jessie")
694 #### Enabling the IDO PostgreSQL module <a id="enabling-ido-postgresql"></a>
696 The package provides a new configuration file that is installed in
697 `/etc/icinga2/features-available/ido-pgsql.conf`. You will need to update
698 the database credentials in this file.
700 All available attributes are explained in the
701 [IdoPgsqlConnection object](09-object-types.md#objecttype-idopgsqlconnection)
704 You can enable the `ido-pgsql` feature configuration file using
705 `icinga2 feature enable`:
707 # icinga2 feature enable ido-pgsql
708 Module 'ido-pgsql' was enabled.
709 Make sure to restart Icinga 2 for these changes to take effect.
711 After enabling the ido-pgsql feature you have to restart Icinga 2:
713 RHEL/CentOS 7/Fedora, SLES 12, Debian Jessie/Stretch, Ubuntu Xenial:
715 # systemctl restart icinga2
717 Debian/Ubuntu, RHEL/CentOS 6, SUSE and FreeBSD:
719 # service icinga2 restart
723 # service icinga2 restart
727 # rc-service icinga2 restart
729 Continue with the [webserver setup](02-getting-started.md#icinga2-user-interface-webserver).
731 ### Webserver <a id="icinga2-user-interface-webserver"></a>
735 # apt-get install apache2
741 # service httpd start
743 RHEL/CentOS 7, Fedora:
746 # systemctl enable httpd
747 # systemctl start httpd
751 # zypper install apache2
753 # service apache2 start
755 FreeBSD (nginx, but you could also use the apache24 package):
757 # pkg install nginx php56-gettext php56-ldap php56-openssl php56-mysql php56-pdo_mysql php56-pgsql php56-pdo_pgsql php56-sockets php56-gd pecl-imagick pecl-intl
758 # sysrc php_fpm_enable=yes
759 # sysrc nginx_enable=yes
760 # sed -i '' "s/listen\ =\ 127.0.0.1:9000/listen\ =\ \/var\/run\/php5-fpm.sock/" /usr/local/etc/php-fpm.conf
761 # sed -i '' "s/;listen.owner/listen.owner/" /usr/local/etc/php-fpm.conf
762 # sed -i '' "s/;listen.group/listen.group/" /usr/local/etc/php-fpm.conf
763 # sed -i '' "s/;listen.mode/listen.mode/" /usr/local/etc/php-fpm.conf
764 # service php-fpm start
765 # service nginx start
769 # apk add apache2 php7-apache2
770 # sed -i -e "s/^#LoadModule rewrite_module/LoadModule rewrite_module/" /etc/apache2/httpd.conf
771 # rc-update add apache2 default
772 # rc-service apache2 start
774 ### Firewall Rules <a id="icinga2-user-interface-firewall-rules"></a>
778 # iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
779 # service iptables save
781 RHEL/CentOS 7 specific:
783 # firewall-cmd --add-service=http
784 # firewall-cmd --permanent --add-service=http
787 Please consult the [FreeBSD Handbook](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls.html) how to configure one of FreeBSD's firewalls.
790 ### Setting Up Icinga 2 REST API <a id="setting-up-rest-api"></a>
792 Icinga Web 2 and other web interfaces require the [REST API](12-icinga2-api.md#icinga2-api-setup)
793 to send actions (reschedule check, etc.) and query object details.
795 You can run the CLI command `icinga2 api setup` to enable the
796 `api` [feature](11-cli-commands.md#enable-features) and set up
797 certificates as well as a new API user `root` with an auto-generated password in the
798 `/etc/icinga2/conf.d/api-users.conf` configuration file:
802 Edit the `api-users.conf` file and add a new ApiUser object. Specify the [permissions](12-icinga2-api.md#icinga2-api-permissions)
803 attribute with minimal permissions required by Icinga Web 2.
805 # vim /etc/icinga2/conf.d/api-users.conf
807 object ApiUser "icingaweb2" {
808 password = "Wijsn8Z9eRs5E25d"
809 permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
812 Make sure to restart Icinga 2 to activate the configuration.
814 RHEL/CentOS 7/Fedora, SLES 12, Debian Jessie/Stretch, Ubuntu Xenial:
816 # systemctl restart icinga2
818 Debian/Ubuntu, RHEL/CentOS 6 and SUSE:
820 # service icinga2 restart
824 # service icinga2 restart
828 # rc-service icinga2 restart
830 ### Installing Icinga Web 2 <a id="installing-icingaweb2"></a>
832 Please consult the [installation documentation](https://github.com/Icinga/icingaweb2/blob/master/doc/02-Installation.md)
833 for further instructions on how to install Icinga Web 2.
835 The Icinga 2 API can be defined as [command transport](https://github.com/Icinga/icingaweb2/blob/master/modules/monitoring/doc/commandtransports.md)
836 in Icinga Web 2 >= 2.4.
838 ## Addons <a id="install-addons"></a>
840 A number of additional features are available in the form of addons. A list of
841 popular addons is available in the
842 [Addons and Plugins](13-addons.md#addons) chapter.
844 ## Backup <a id="install-backup"></a>
846 Ensure to include the following in your backups:
848 * Configuration files in `/etc/icinga2`
849 * Runtime files in `/var/lib/icinga2` (the master's CA is stored here as well)
850 * Optional: IDO database backup