¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Installing Icinga 2
You can install Icinga 2 by using your distribution's package manager to install the icinga2 package.
# apt-get install icinga2
Enabled Features during Installation
The default installation will enable three features required for a basic Icinga 2 installation:
- checker for executing checks
- notification for sending notifications
- mainlog for writing the icinga2.log file
You can verify that by calling icinga2 feature list CLI command to see which features are enabled and disabled.
# icinga2 feature list Disabled features: api command compatlog debuglog graphite icingastatus ido-mysql ido-pgsql livestatus notification perfdata statusdata syslog Enabled features: checker mainlog notification
Installation Paths
By default Icinga 2 uses the following files and directories:
/etc/icinga2 Contains Icinga 2 configuration files. /etc/init.d/icinga2 The Icinga 2 init script. /usr/sbin/icinga2 The Icinga 2 binary. /usr/share/doc/icinga2 Documentation files that come with Icinga 2. /usr/share/icinga2/include The Icinga Template Library and plugin command configuration. /var/run/icinga2 PID file. /var/run/icinga2/cmd Command pipe and Livestatus socket. /var/cache/icinga2 status.dat/objects.cache, icinga2.debug files /var/spool/icinga2 Used for performance data spool files. /var/lib/icinga2 Icinga 2 state file, cluster log, local CA and configuration files. /var/log/icinga2 Log file location and compat/ directory for the CompatLogger feature.
Running Icinga 2
Init Script
Icinga 2's init script is installed in /etc/init.d/icinga2 by default:
# /etc/init.d/icinga2 Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
Configuration Syntax Highlighting
Icinga 2 ships configuration examples for syntax highlighting using the vim and nano editors.Debian package icinga2-common install these files into /usr/share/icinga2-common/syntax. Sources provide these files in tools/syntax.
Configuration Syntax Highlighting using Nano Copy the /etc/nanorc sample file to your home directory. Create the /etc/nano directory and copy the provided in /usr/share/icinga2-common/syntax/ icinga2.nanorc into it.
$ cp /etc/nanorc ~/.nanorc # mkdir -p /etc/nano # cp icinga2.nanorc /etc/nano/
Then include the icinga2.nanorc file in your ~/.nanorc by adding the following line:
$ nano ~/.nanorc ## Icinga 2 include "/etc/nano/icinga2.nanorc"
Test it:
$ nano /etc/icinga2/conf.d/templates.conf
Setting up Icinga Web 2
Icinga 2 can be used with Icinga Web 2 and a number of other web interfaces. This chapter explains how to set up Icinga Web 2.
The DB IDO (Database Icinga Data Output) modules for Icinga 2 take care of exporting all configuration and status information into a database. The IDO database is used by a number of projects including Icinga Web 2, Icinga Reporting or Icinga Web 1.x.
There is a separate module for each database backend. At present support for both MySQL and PostgreSQL is implemented.
Configuring DB IDO MySQL and Installing MySQL database server
# apt-get install mysql-server mysql-client
Installing the IDO modules for MySQL
The next step is to install the icinga2-ido-mysql package using your distribution's package manager.
# apt-get install icinga2-ido-mysql
Note
The Debian/Ubuntu packages provide a database configuration wizard by default. You can skip the automated setup and install/upgrade the database manually if you prefer that.
Setting up the MySQL database
Set up a MySQL database for Icinga 2:
# mysql -u root -p mysql> CREATE DATABASE icinga; GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga'; mysql> exit
After creating the database you can import the Icinga 2 IDO schema using the following command:
# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
The mysql.sql not contain the table structure to store users and preferences, so inside the database icinga have to create that structure.
CREATE TABLE `icingaweb_group`( `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `parent` varchar(64) COLLATE utf8_unicode_ci NULL DEFAULT NULL, `ctime` timestamp NULL DEFAULT NULL, `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `icingaweb_group_membership`( `group_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `username` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `ctime` timestamp NULL DEFAULT NULL, `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`group_name`,`username`), CONSTRAINT `fk_icingaweb_group_membership_icingaweb_group` FOREIGN KEY (`group_name`) REFERENCES `icingaweb_group` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `icingaweb_user`( `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `active` tinyint(1) NOT NULL, `password_hash` varbinary(255) NOT NULL, `ctime` timestamp NULL DEFAULT NULL, `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `icingaweb_user_preference`( `username` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `section` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `value` varchar(255) NOT NULL, `ctime` timestamp NULL DEFAULT NULL, `mtime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`username`,`section`,`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Enabling the IDO MySQL module
The package provides a new configuration file that is installed in /etc/icinga2/features-available/ido-mysql.conf. You will need to update the database credentials in this file.
You can enable the ido-mysql feature configuration file using icinga2 feature enable:
# icinga2 feature enable ido-mysql Module 'ido-mysql' was enabled. Make sure to restart Icinga 2 for these changes to take effect. # service icinga2 restart
Webserver
# apt-get install apache2
Setting Up External Command Pipe
# icinga2 feature enable command # service icinga2 restart
By default the command pipe file is owned by the group icingacmd with read/write permissions. Add your webserver's user to the group icingacmd to enable sending commands to Icinga 2 through your web interface:
# usermod -a -G icingacmd www-data