Icinga

Installation Icinga web frontend

Since there is no installer available yet, it's not very easy to install the web frontend for the first time.

Here is an example config. If you don't want to use the provided values (directories, database, etc.) you have to modify the code a little bit. Let's go:

  1. Move git clone to /var/www/icinga-web (in this example). Please note that the path to the web directory depends on the distribution you use:

     # mv icinga-web /var/www
  2. Check out the Icinga API and move it to /var/www/lib/icinga-api:

     # git clone git://git.icinga.org/icinga-api.git/
     # mv icinga-api /var/www/icinga-web/lib/
  3. Change owner of web directory to http user:

    Fedora / RedHat / CentOS

     # chown -R apache:apache /var/www/icinga-web

    Ubuntu / Debian / openSuSE

     # chown -R www-data:www-data /var/www/icinga-web
  4. Create database and set grants:

     # mysql -u root -p
     mysql> CREATE DATABASE icinga_web;
     mysql> GRANT ALL ON 'icinga_web.*' TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
     mysql> FLUSH PRIVILEGES;
     quit
  5. Import database from the following files:

     # mysql -u root -p icinga_web < /var/www/icinga-web/etc/database/rescue_schema.sql
     # mysql -u root -p icinga_web < /var/www/icinga-web/etc/database/rescue_data.sql
  6. Edit /var/www/icinga-web/app/config/databases.xml and set database credentials (block should begin at line 7):

        <database name="appkit_default" class="AgaviDoctrineDatabase">
           <ae:parameter name="dsn">mysql://icinga_web:icinga_web@127.0.0.1:3306/icinga_web</ae:parameter>
           <ae:parameter name="username">icinga_web</ae:parameter>
           <ae:parameter name="password">icinga_web</ae:parameter>
           <ae:parameter name="charset">utf8</ae:parameter>
           <ae:parameter name="manager_attributes">
                
              <ae:parameter name="MODEL_LOADING">CONSERVATIVE</ae:parameter>
           </ae:parameter>
           <ae:parameter name="load_models">%de.icinga.appkit.doctrine_model_path%</ae:parameter>
        </database>
  7. Edit /var/www/icinga-web/app/config/icinga.xml and set database credentials to give access to ido-db (block should begin at line 163):

     <parameter name="IcingaData">
         <parameter name="class">IcingaData</parameter>
         <parameter name="api_file">%core.root_dir%/lib/icinga-api/IcingaApi.php</parameter>
         <parameter name="api_type">IcingaApi::CONNECTION_IDO</parameter>
         <parameter name="config_type">mysql</parameter>
         <parameter name="config_host">127.0.0.1</parameter>
    
         <parameter name="config_port">3306</parameter>
         <parameter name="config_database">icinga</parameter>
    
         <parameter name="config_user">icinga</parameter>
         <parameter name="config_password">icinga</parameter>
               
         <parameter name="config_table_prefix">icinga_</parameter>
     </parameter>
    [Note] Note
    Please keep in mind that you have to install IDOUtils before (according to the “Icinga with IDOUtils Quickstart” )
  8. Set up a virtual host:

     <VirtualHost *:80>
    
        ServerName icinga-web
    
        DocumentRoot /var/www/icinga-web/pub/
    
        DirectoryIndex index.php
    
        <Directory /var/www/icinga-web/pub/>
           Options -MultiViews -Indexes +FollowSymLinks
           AllowOverride none
           Order allow,deny
           Allow from all
    
           <IfModule mod_rewrite.c>
              RewriteEngine On
              RewriteBase /
    
              # If the requested URL does not exist (it's likely an agavi route),
              # pass it as path info to index.php, the Agavi dispatch script.
              RewriteRule ^$ index.php?/ [QSA,L]
              RewriteCond %{REQUEST_FILENAME} !-f
              RewriteCond %{REQUEST_FILENAME} !-d
              RewriteRule (.*) index.php?/$1 [QSA,L]
           </IfModule>
    
        </Directory>
    
        # deny something!
        <Location />
           Options -MultiViews -Indexes +FollowSymLinks
           Order allow,deny
           Allow from all
        </Location>
    
        # JS frameworks
        Alias /js/yui               /var/www/icinga-web/lib/yui
        Alias /js/swfobject         /var/www/icinga-web/lib/swfobject
        Alias /js/mootools          /var/www/icinga-web/lib/mootools
        Alias /js/jquery            /var/www/icinga-web/lib/jquery
        Alias /js/appkit            /var/www/icinga-web/lib/appkit/js
        Alias /js/gc-prettify       /var/www/icinga-web/lib/gc-prettify
        Alias /js/firebug           /var/www/icinga-web/lib/firebug
        Alias /js/ext3              /var/www/icinga-web/lib/ext3
    
        # Flash frameworks
        Alias /flash/flexchart      /var/www/icinga-web/lib/flexchart
    
        <IfDefine APACHE2>
           AcceptPathInfo On
        </IfDefine>
    
     </VirtualHost>
  9. Clear cache

     # rm /var/www/icinga-web/app/cache/config/*.php
  10. Reload your web server config

    Fedora/RedHat/CentOS

     # service httpd reload

    Ubuntu / openSuSE

     # /etc/init.d/apache2 reload

That's it.