Difference between revisions of "Icinga"

From Amahi Wiki
Jump to: navigation, search
Line 5: Line 5:
 
message = This is recommended only for advanced users, proceed with caution.}}
 
message = This is recommended only for advanced users, proceed with caution.}}
 
'''NOTE: ''' Understand that without a web interface to do the configuration of objects the learning curve is large to configure Icinga for the first time.
 
'''NOTE: ''' Understand that without a web interface to do the configuration of objects the learning curve is large to configure Icinga for the first time.
 +
 +
These instructions were modified from documentation already on the [http://docs.icinga.org/1.4.0/en/ Icinga Website].  They are geared toward installing Icinga v1.4.
 +
 +
These instructions are the combined effort documented in the following Icinga Documentation pages:
 +
* [http://docs.icinga.org/1.4.0/en/quickstart-icinga.html Icinga Quickstart]
 +
* [http://docs.icinga.org/1.4.0/en/quickstart-idoutils.html Icinga with IDOUtils Quickstart]
 +
* [http://docs.icinga.org/1.4.0/en/icinga-web-scratch.html Installation of the Icinga-Web Frontend]
 +
* [http://docs.icinga.org/1.4.0/en/icinga-api.html Installation and use of the Icinga API]
 +
 +
If you have any questions then please contact me.
 +
 +
-- [[User:Sag47|Sag47]] 22:06, 16 July 2011 (PDT)
  
 
= What is Icinga? =
 
= What is Icinga? =
Line 19: Line 31:
 
* Fedora 14
 
* Fedora 14
 
* Amahi set up and running
 
* Amahi set up and running
* and the following packages installed
+
* and update your HDA Server and install all of the prereqs for Icinga/Icinga-web
{{Code|yum groupinstall "Development Tools" "Legacy Software Development"}}
+
'''NOTE:''' If there is a kernel update then you should restart your machine after running yum update and start these instructions over.
  
== Installation ==
+
{{Code|
Follow the [http://docs.icinga.org/1.4.0/en/quickstart-icinga.html Quickstart Installation Guide for Icinga] to compile and install Icinga and common Nagios plugins.
+
yum check-update
 +
yum update -y
 +
yum groupinstall "Development Tools" "Legacy Software Development" -y
 +
yum install <nowiki>httpd httpd-devel gcc glibc glibc-common gd gd-devel libjpeg libjpeg-devel libpng libpng-devel mysql mysql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql net-snmp net-snmp-devel net-snmp-utils php php-cli php-pear php-xmlrpc php-xsl php-pdo php-gd php-ldap php-mysql php-mysql php-soap java-1.6.0-openjdk java-1.6.0-openjdk-devel zip unzip</nowiki> -y}}
  
Once you have Icinga running when you attempt to access the web interface you should get permission deniedThat is okay because we're going to fix that now.
+
== Create a Webapp ==
 +
Go to your HDA CP (HDA Control Panel) and go to Apps > Webapps and click New WebappName it "icinga" without quotes.
 +
Root path should be /var/hda/web-apps/icinga (which is automatically generated by Amahi).
  
Visit your hda at http://hda because now you have to set up a webapp. I know that this is in reverse order and that it should be compiled for the webapp directory but I'm still new to Amahi and not new to other things.  So more detailed and correct instructions will come later.
+
Create /var/hda/web-apps/icinga/html/index.html and give it the following contents.
 +
{{Text|Text=
 +
<pre><nowiki><html>
 +
<head>
 +
<title>Icinga Monitoring Server</title>
 +
<meta HTTP-EQUIV="REFRESH" content="0; url=/icinga/">
 +
</head>
 +
<body>
 +
</body>
 +
</html></nowiki></pre>}}
  
Anyway, go to http://hda/setup?sub=webapps&tab=app and create a new webapp and call it icinga.
+
'''NOTE:''' Icinga will install to /usr/local/icinga.  Icinga Web will install to /usr/local/icinga-web
 +
 
 +
== Download required source tarballs ==
 +
Download the following packages from the [http://sourceforge.net/projects/icinga/files/ Icinga Project Page].
 +
* icinga/icinga-1.4.2.tar.gz or latest 1.4.x
 +
* icinga-web/icinga-web-1.4.1.tar.gz or latest 1.4.x
 +
* icinga-mobile/icinga-mobile-0.1.0.zip or latest
 +
Download the following packages from the [http://sourceforge.net/projects/nagiosplug/files/ Nagios Plugin Project Page].
 +
* nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz or latest
 +
Download the [https://git.icinga.org/index?p=icinga-api.git;a=snapshot;h=refs/heads/master;sf=tgz latest Icinga API] from git snapshot as seen in the [http://docs.icinga.org/1.4.0/en/icinga-api.html Icinga API] documentation.
 +
 
 +
Move all source tarballs to /usr/src/ on your HDA server.
 +
 
 +
== Compile and install Icinga with IDOUtils ==
 +
Create an icinga user, icinga-cmd group, and add the apache user and icinga user to the icinga-cmd group.
 +
{{Code|
 +
useradd -m icinga
 +
groupadd icinga-cmd
 +
usermod -a -G icinga-cmd icinga
 +
usermod -a -G icinga-cmd apache}}
 +
 
 +
Now lets do some compiling.
 +
{{Code|
 +
cd /usr/src/
 +
tar -xzf icinga-1.4.2.tar.gz
 +
cd icinga-1.4.2
 +
./configure <nowiki>--with-command-group=icinga-cmd --enable-idoutils --enable-event-broker</nowiki>
 +
make all
 +
make fullinstall
 +
}}
 +
Edit the ''/usr/local/icinga/etc/objects/contacts.cfg'' config file with your favorite editor and change the email address associated with the icingaadmin contact definition to the address you'd like to use for receiving alerts.
 +
{{Code|
 +
vim /usr/local/icinga/etc/objects/contacts.cfg
 +
cp /usr/local/icinga/etc/ido2db.cfg-sample /usr/local/icinga/etc/ido2db.cfg
 +
cp /usr/local/icinga/etc/idomod.cfg-sample /usr/local/icinga/etc/idomod.cfg
 +
cp /usr/local/icinga/etc/modules/idoutils.cfg-sample /usr/local/icinga/etc/modules/idoutils.cfg}}
 +
 
 +
Create the icinga db/user/pass for IDOUtils to use and import the mysql database (you should still be in ''/usr/src/icinga-1.4.2'' working directory).
 +
{{Code|hda-create-db-and-user icinga
 +
mysql -u icinga -picinga icinga < module/idoutils/db/mysql/mysql.sql}}
 +
 
 +
Configure the password for the icinga directory.
 +
{{Code|
 +
htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin}}
 +
 
 +
Configure the Apache config located in ''/etc/httpd/conf.d/''
  
Now it's time to go into the terminal.  All commands will be run as root and lines that start with # are comments.
 
 
{{Code|ls /etc/httpd/conf.d/ <nowiki>|</nowiki> grep icinga
 
{{Code|ls /etc/httpd/conf.d/ <nowiki>|</nowiki> grep icinga
#you should see two files.  Something like 1007-icinga.conf and icinga.conf
+
#you should see two files.  Something like 1002-icinga.conf and icinga.conf
cat /etc/httpd/conf.d/icinga.conf >> /etc/httpd/conf.d/1007-icinga.conf
+
cat /etc/httpd/conf.d/icinga.conf >> /etc/httpd/conf.d/1002-icinga.conf
#Now edit /etc/httpd/conf.d/1007-icinga.conf
+
#Now edit /etc/httpd/conf.d/1002-icinga.conf
vim /etc/httpd/conf.d/1007-icinga.conf
+
vim /etc/httpd/conf.d/1002-icinga.conf
 
#and move </VirtualHost> from the middle of the file to the end.
 
#and move </VirtualHost> from the middle of the file to the end.
#be sure to confirm that the contents of icinga.conf are within 1007-icinga.conf before removing it
+
#be sure to confirm that the contents of icinga.conf are within 1002-icinga.conf before removing it
rm /etc/httpd/conf.d/icinga.conf
+
rm -f /etc/httpd/conf.d/icinga.conf}}
}}
+
 
Now you should have a 1007-icinga.conf file similar to the following (not exact)
+
Start icinga, idoutils and restart the apache server.
{{Text|Text=<pre><nowiki><VirtualHost *:80>
+
{{Code|service icinga start
 +
service ido2db start
 +
service httpd restart}}
 +
 
 +
Visit http://icinga and make sure that it is currently working.
 +
 
 +
'''Note:''' http://icinga should redirect to http://icinga/icinga and your localhost (which is the Amahi HDA) will show up as down.
 +
 
 +
== Install Nagios Plugins ==
 +
Time to compile again!
 +
{{Code|cd /usr/src/
 +
tar -xzf nagios-plugins-1.4.15.tar.gz
 +
cd nagios-plugins-1.4.15
 +
./configure <nowiki>--prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/icinga --with-nagios-user=icinga --with-nagios-group=icinga</nowiki>
 +
make
 +
make install
 +
service icinga restart}}
 +
Now visit http://icinga/ and click on Service Detail in the menu on the left under Status.  After about 5 mins everything should slowly start turning green.
  
ServerName icinga
+
== Install the latest Icinga API ==
ServerAlias icinga.home
+
Don't worry, there's nothing to compile here.  But you still have to configure and install the Icinga API.
 +
{{Code|cd /usr/src/
 +
tar -xzf icinga-api-refs-heads-master.tar.gz
 +
cd icinga-api
 +
./configure <nowiki>--datarootdir=/usr/local/icinga/share --sysconfdir=/usr/local/icinga/etc --with-command-user=icinga-cmd --with-command-group=icinga-cmd --with-icinga-user=icinga --with-icinga-group=icinga --with-web-user=apache --with-web-group=apache</nowiki>
 +
make install}}
  
DocumentRoot /var/hda/web-apps/icinga/html
+
== Install the Icinga Web 2.0 Interface ==
 +
Create the Icinga Web db/user/pass.
 +
{{Code|hda-create-db-and-user icinga_web}}
 +
Configure and install the new web interface.
 +
{{Code|cd /usr/src/
 +
tar -xzf icinga-web-1.4.1.tar.gz
 +
cd icinga-web-1.4.1
 +
./configure <nowiki>--with-web-user=apache --with-web-group=apache --with-web-apache-path=/etc/httpd/conf.d</nowiki>
 +
make install
 +
make install-apache-config
 +
make db-initialize
 +
#Choose y for every question asked by make db-initialize}}
 +
Now we need to do the same thing with the virtual server as we did originally with the Icinga install so that it shows up for our Virtual Host.
 +
{{Code|ls /etc/httpd/conf.d/ <nowiki>|</nowiki> grep icinga
 +
#you should see two files.  Something like 1002-icinga.conf and icinga-web.conf
 +
cat /etc/httpd/conf.d/icinga-web.conf >> /etc/httpd/conf.d/1002-icinga.conf
 +
#Now edit /etc/httpd/conf.d/1002-icinga.conf
 +
vim /etc/httpd/conf.d/1002-icinga.conf
 +
#and move </VirtualHost> from the middle of the file to the end.
 +
#be sure to confirm that the contents of icinga-web.conf are within 1002-icinga.conf before removing it
 +
rm -f /etc/httpd/conf.d/icinga-web.conf*}}
 +
Restart icinga, idoutils, and apache.
 +
{{Code|service icinga restart
 +
service httpd restart}}
 +
Go to the webpath (http://icinga/icinga-web/) and check if the webinterface starts without exceptions (database connections web and api). You can login with user 'root' and password 'password'.
  
<Directory "/var/hda/web-apps/icinga/html">
+
== Install the Icinga Mobile Interface ==
Options Indexes FollowSymLinks +ExecCGI
+
Time for more source work!
AddHandler fcgid-script .fcg
+
{{Code|cd /usr/src/
AllowOverride AuthConfig
+
#if you want the latest then run git clone http://git.icinga.org/icinga-mobile.git
Order allow,deny
+
unzip icinga-mobile-0.1.0.zip
Allow from all
+
cd icinga-mobile
+
autoconf
</Directory>
+
./configure <nowiki>--with-web-user=apache --with-web-group=apache --with-web-apache-path=/etc/httpd/conf.d</nowiki>
 +
make compile
 +
make install
 +
make install-apache-config}}
  
ErrorLog /var/hda/web-apps/Icinga/logs/error_log
+
Now we need to do the same thing with the virtual server as we did originally with the Icinga install so that it shows up for our Virtual Host.
  CustomLog /var/hda/web-apps/Icinga/logs/access_log combined env=!dontlog
+
{{Code|ls /etc/httpd/conf.d/ <nowiki>|</nowiki> grep icinga
 +
#you should see two files. Something like 1002-icinga.conf and icinga-mobile.conf
 +
cat /etc/httpd/conf.d/icinga-mobile.conf >> /etc/httpd/conf.d/1002-icinga.conf
 +
#Now edit /etc/httpd/conf.d/1002-icinga.conf
 +
vim /etc/httpd/conf.d/1002-icinga.conf
 +
#and move </VirtualHost> from the middle of the file to the end.
 +
#be sure to confirm that the contents of icinga-mobile.conf are within 1002-icinga.conf before removing it
 +
rm -f /etc/httpd/conf.d/icinga-mobile.conf*}}
 +
Restart icinga, idoutils, and apache.
 +
{{Code|service httpd restart}}
  
#this is the beginning of the part from icinga.conf
+
Now go to http://icinga/icinga-web and log in as root.  Click on Admin > Users and Add new user.  Give it the following settings.
ScriptAlias /icinga/cgi-bin "/usr/local/icinga/sbin"
+
* User name: mobile
<Directory "/usr/local/icinga/sbin">
+
* Auth via: auth_key
  Options ExecCGI
+
* password: whateveryouwant (different the the Api authkey)
  AllowOverride None
+
* Authkey for Api (optional): mobileaccess
  Order allow,deny
+
* Make sure that the moble user is part of these groups: appkit_user, icinga_user
  Allow from all
+
* The rest of the settings you can fill in what ever you want.
  AuthName "Icinga Access"
 
  AuthType Basic
 
  AuthUserFile /usr/local/icinga/etc/htpasswd.users
 
  Require valid-user
 
</Directory>
 
Alias /icinga "/usr/local/icinga/share/"
 
<Directory "/usr/local/icinga/share/">
 
  Options None
 
  AllowOverride None
 
  Order allow,deny
 
  Allow from all
 
  AuthName "Icinga Access"
 
  AuthType Basic
 
  AuthUserFile /usr/local/icinga/etc/htpasswd.users
 
  Require valid-user
 
</Directory>
 
</VirtualHost></nowiki></pre>}}
 
  
NOTE: The Icinga instructions should be rewritten so that it conforms to the icinga app path for Amahi standards.
+
Now on your iPhone or Android phone visit http://icinga/icinga-mobile.  After it says request failed click on config.  Change the Icinga Web URL to reflect your server name.  For instance my server is icinga.home so your URL should be http://icinga.home/icinga-web.  Make the Auth key "mobileaccess" without quotes.
 +
=== Known Issues ===
 +
* You have to make the server for icinga-web the exact same as what you access icinga-mobile on the config page of Icinga Mobile.  For security reasons cross domain AJAX requests are denied.  Example if you're accessing http://xyz/icinga-mobile then Icinga Web URL must be http://xyz/icinga-web.
 +
* Icinga Mobile works neither with the desktop or mobile version of Firefox.
 +
* You may have to visit your fully qualified domain name on your mobile phone to access Icinga.  For instance going to http://icinga.home/icinga-mobile instead of http://icinga/icinga-mobile because the mobile browsers will attempt to search it like icinga is a keyword for a search engine.
  
= Go to Icinga =
+
= Overview and further Amahi integration =
Now visit Icinga at
+
To get a better understanding of how Icinga works [http://www.youtube.com/watch?v=jLqhXvGTazI view this video]. So basically you have the Icinga core which runs locally on the machine.  Then you access the core using the Classic Web Interface, Icinga Web 2.0, and Icinga Mobile.
{{Link|http://icinga/icinga}}
 
You can add a simple html redirect to /var/hda/web-apps/icinga/html/index.html to automatically redirect you so that you only have to visit http://icinga/.
 
  
== TODO: ==
+
== Add Icinga servers to the Admin CP ==
When I update the instructions I'll write compiling instructions to:
+
You will want to add two servers to your HDA Admin Control Panel.  One for Icinga and one for IDOUtils.
* Install icinga to /var/hda/web-apps/icinga/html/icinga.  
+
{{Code|<nowiki>echo 'Server.create(:name => "icinga", :comment => "Icinga")' | (cd /var/hda/platform/html && ./script/console production)</nowiki>}}
* Create a ScriptAlias to /cgi-bin instead of /icinga/cgi-bin
 
* Create an Alias to / instead of /icinga so that a user only need to visit http://icinga/
 
  
That's all for now...
+
{{Code|<nowiki>echo 'Server.create(:name => "ido2db", :comment => "IDOUtils")' | (cd /var/hda/platform/html && ./script/console production)</nowiki>}}
  
[[User:Sag47|Sag47]] 21:37, 10 June 2011 (PDT)
+
Now go to http://hda and visit Setup > Settings > Servers and you will see Icinga and IDOUtils showing up at the bottom.
  
[[Category:Apps]]
+
== Smarter index.html ==
 +
Wouldn't it be awesome if when you visit http://icinga that it would default to the classic interface if JavaScript is disabled, default to web 2.0 interface if Javascript is enabled, or default to the mobile interface if you're visiting from a mobile phone?  Well you can if you configure your server right. 
 +
# Browse to ''/var/hda/web-apps/icinga/html/''.
 +
# Visit my [http://sourceforge.net/projects/webtechtools/files/Javascript%20Browser%20Detect/ sourceforge project] and download the latest browser_detect.js_XXXX.
 +
# Unzip browser_detect.js to ''/var/hda/web-apps/icinga/html/''
 +
# Create /var/hda/web-apps/icinga/html/index.html with the following contents.
 +
{{Text|Text=
 +
<pre><nowiki><html>
 +
<head>
 +
<title>Icinga Monitoring Server</title>
 +
<meta HTTP-EQUIV="REFRESH" content="1; url=/icinga/">
 +
<script type="text/javascript" src="browser_detect.js"></script>
 +
<script type="text/javascript">
 +
window.top.location.href=(isMobile)?"/icinga-mobile/":"/icinga-web";
 +
</script>
 +
</head>
 +
<body>
 +
</body>
 +
</html></nowiki></pre>}}

Revision as of 05:06, 17 July 2011

Warning.png WARNING
This is recommended only for advanced users, proceed with caution.


NOTE: Understand that without a web interface to do the configuration of objects the learning curve is large to configure Icinga for the first time.

These instructions were modified from documentation already on the Icinga Website. They are geared toward installing Icinga v1.4.

These instructions are the combined effort documented in the following Icinga Documentation pages:

If you have any questions then please contact me.

-- Sag47 22:06, 16 July 2011 (PDT)

What is Icinga?

Icinga is a fork of Nagios. It is network monitoring software designed to monitor the overall status of your network through a polling system. This way when computers go down you know before anyone else because it will show up in Icinga.

In my Amahi HDA, I use Icinga to monitor: file share servers, network printers, router, internet modem, different internet websites. The reason why I monitor my router, internet mode and internet websites is because when my internet goes down I want to know if it's my router that is the problem or my ISP.

Icinga will also track statistics so you can measure how much downtime your computers have (or downtime of the internet) so you have exact statistics of your network monitored in realtime.

Now on to the good stuff.

How to install Icinga

Prerequisites

  • Fedora 14
  • Amahi set up and running
  • and update your HDA Server and install all of the prereqs for Icinga/Icinga-web

NOTE: If there is a kernel update then you should restart your machine after running yum update and start these instructions over.

bash code
​ yum check-update yum update -y yum groupinstall "Development Tools" "Legacy Software Development" -y yum install httpd httpd-devel gcc glibc glibc-common gd gd-devel libjpeg libjpeg-devel libpng libpng-devel mysql mysql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql net-snmp net-snmp-devel net-snmp-utils php php-cli php-pear php-xmlrpc php-xsl php-pdo php-gd php-ldap php-mysql php-mysql php-soap java-1.6.0-openjdk java-1.6.0-openjdk-devel zip unzip -y​


Create a Webapp

Go to your HDA CP (HDA Control Panel) and go to Apps > Webapps and click New Webapp. Name it "icinga" without quotes. Root path should be /var/hda/web-apps/icinga (which is automatically generated by Amahi).

Create /var/hda/web-apps/icinga/html/index.html and give it the following contents.

Text
​'"`UNIQ--pre-00000002-QINU`"'​

NOTE: Icinga will install to /usr/local/icinga. Icinga Web will install to /usr/local/icinga-web

Download required source tarballs

Download the following packages from the Icinga Project Page.

  • icinga/icinga-1.4.2.tar.gz or latest 1.4.x
  • icinga-web/icinga-web-1.4.1.tar.gz or latest 1.4.x
  • icinga-mobile/icinga-mobile-0.1.0.zip or latest

Download the following packages from the Nagios Plugin Project Page.

  • nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz or latest

Download the latest Icinga API from git snapshot as seen in the Icinga API documentation.

Move all source tarballs to /usr/src/ on your HDA server.

Compile and install Icinga with IDOUtils

Create an icinga user, icinga-cmd group, and add the apache user and icinga user to the icinga-cmd group.

bash code
​ useradd -m icinga groupadd icinga-cmd usermod -a -G icinga-cmd icinga usermod -a -G icinga-cmd apache​


Now lets do some compiling.

bash code
cd /usr/src/ tar -xzf icinga-1.4.2.tar.gz cd icinga-1.4.2 ./configure --with-command-group=icinga-cmd --enable-idoutils --enable-event-broker make all make fullinstall ​

Edit the /usr/local/icinga/etc/objects/contacts.cfg config file with your favorite editor and change the email address associated with the icingaadmin contact definition to the address you'd like to use for receiving alerts.

bash code
​ vim /usr/local/icinga/etc/objects/contacts.cfg cp /usr/local/icinga/etc/ido2db.cfg-sample /usr/local/icinga/etc/ido2db.cfg cp /usr/local/icinga/etc/idomod.cfg-sample /usr/local/icinga/etc/idomod.cfg cp /usr/local/icinga/etc/modules/idoutils.cfg-sample /usr/local/icinga/etc/modules/idoutils.cfg​


Create the icinga db/user/pass for IDOUtils to use and import the mysql database (you should still be in /usr/src/icinga-1.4.2 working directory).

bash code
​hda-create-db-and-user icinga mysql -u icinga -picinga icinga < module/idoutils/db/mysql/mysql.sql​


Configure the password for the icinga directory.

bash code
​ htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin​


Configure the Apache config located in /etc/httpd/conf.d/

bash code
​ls /etc/httpd/conf.d/ | grep icinga #you should see two files. Something like 1002-icinga.conf and icinga.conf cat /etc/httpd/conf.d/icinga.conf >> /etc/httpd/conf.d/1002-icinga.conf #Now edit /etc/httpd/conf.d/1002-icinga.conf vim /etc/httpd/conf.d/1002-icinga.conf #and move </VirtualHost> from the middle of the file to the end. #be sure to confirm that the contents of icinga.conf are within 1002-icinga.conf before removing it rm -f /etc/httpd/conf.d/icinga.conf​


Start icinga, idoutils and restart the apache server.

bash code
​service icinga start service ido2db start service httpd restart​


Visit http://icinga and make sure that it is currently working.

Note: http://icinga should redirect to http://icinga/icinga and your localhost (which is the Amahi HDA) will show up as down.

Install Nagios Plugins

Time to compile again!

bash code
​cd /usr/src/ tar -xzf nagios-plugins-1.4.15.tar.gz cd nagios-plugins-1.4.15 ./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/icinga --with-nagios-user=icinga --with-nagios-group=icinga make make install service icinga restart​

Now visit http://icinga/ and click on Service Detail in the menu on the left under Status. After about 5 mins everything should slowly start turning green.

Install the latest Icinga API

Don't worry, there's nothing to compile here. But you still have to configure and install the Icinga API.

bash code
​cd /usr/src/ tar -xzf icinga-api-refs-heads-master.tar.gz cd icinga-api ./configure --datarootdir=/usr/local/icinga/share --sysconfdir=/usr/local/icinga/etc --with-command-user=icinga-cmd --with-command-group=icinga-cmd --with-icinga-user=icinga --with-icinga-group=icinga --with-web-user=apache --with-web-group=apache make install​


Install the Icinga Web 2.0 Interface

Create the Icinga Web db/user/pass.

bash code
​hda-create-db-and-user icinga_web​

Configure and install the new web interface.

bash code
​cd /usr/src/ tar -xzf icinga-web-1.4.1.tar.gz cd icinga-web-1.4.1 ./configure --with-web-user=apache --with-web-group=apache --with-web-apache-path=/etc/httpd/conf.d make install make install-apache-config make db-initialize #Choose y for every question asked by make db-initialize​

Now we need to do the same thing with the virtual server as we did originally with the Icinga install so that it shows up for our Virtual Host.

bash code
​ls /etc/httpd/conf.d/ | grep icinga #you should see two files. Something like 1002-icinga.conf and icinga-web.conf cat /etc/httpd/conf.d/icinga-web.conf >> /etc/httpd/conf.d/1002-icinga.conf #Now edit /etc/httpd/conf.d/1002-icinga.conf vim /etc/httpd/conf.d/1002-icinga.conf #and move </VirtualHost> from the middle of the file to the end. #be sure to confirm that the contents of icinga-web.conf are within 1002-icinga.conf before removing it rm -f /etc/httpd/conf.d/icinga-web.conf*​

Restart icinga, idoutils, and apache.

bash code
​service icinga restart service httpd restart​

Go to the webpath (http://icinga/icinga-web/) and check if the webinterface starts without exceptions (database connections web and api). You can login with user 'root' and password 'password'.

Install the Icinga Mobile Interface

Time for more source work!

bash code
​cd /usr/src/ #if you want the latest then run git clone http://git.icinga.org/icinga-mobile.git unzip icinga-mobile-0.1.0.zip cd icinga-mobile autoconf ./configure --with-web-user=apache --with-web-group=apache --with-web-apache-path=/etc/httpd/conf.d make compile make install make install-apache-config​


Now we need to do the same thing with the virtual server as we did originally with the Icinga install so that it shows up for our Virtual Host.

bash code
​ls /etc/httpd/conf.d/ | grep icinga #you should see two files. Something like 1002-icinga.conf and icinga-mobile.conf cat /etc/httpd/conf.d/icinga-mobile.conf >> /etc/httpd/conf.d/1002-icinga.conf #Now edit /etc/httpd/conf.d/1002-icinga.conf vim /etc/httpd/conf.d/1002-icinga.conf #and move </VirtualHost> from the middle of the file to the end. #be sure to confirm that the contents of icinga-mobile.conf are within 1002-icinga.conf before removing it rm -f /etc/httpd/conf.d/icinga-mobile.conf*​

Restart icinga, idoutils, and apache.

bash code
​service httpd restart​


Now go to http://icinga/icinga-web and log in as root. Click on Admin > Users and Add new user. Give it the following settings.

  • User name: mobile
  • Auth via: auth_key
  • password: whateveryouwant (different the the Api authkey)
  • Authkey for Api (optional): mobileaccess
  • Make sure that the moble user is part of these groups: appkit_user, icinga_user
  • The rest of the settings you can fill in what ever you want.

Now on your iPhone or Android phone visit http://icinga/icinga-mobile. After it says request failed click on config. Change the Icinga Web URL to reflect your server name. For instance my server is icinga.home so your URL should be http://icinga.home/icinga-web. Make the Auth key "mobileaccess" without quotes.

Known Issues

  • You have to make the server for icinga-web the exact same as what you access icinga-mobile on the config page of Icinga Mobile. For security reasons cross domain AJAX requests are denied. Example if you're accessing http://xyz/icinga-mobile then Icinga Web URL must be http://xyz/icinga-web.
  • Icinga Mobile works neither with the desktop or mobile version of Firefox.
  • You may have to visit your fully qualified domain name on your mobile phone to access Icinga. For instance going to http://icinga.home/icinga-mobile instead of http://icinga/icinga-mobile because the mobile browsers will attempt to search it like icinga is a keyword for a search engine.

Overview and further Amahi integration

To get a better understanding of how Icinga works view this video. So basically you have the Icinga core which runs locally on the machine. Then you access the core using the Classic Web Interface, Icinga Web 2.0, and Icinga Mobile.

Add Icinga servers to the Admin CP

You will want to add two servers to your HDA Admin Control Panel. One for Icinga and one for IDOUtils.

bash code
​echo 'Server.create(:name =&gt; "icinga", :comment =&gt; "Icinga")' | (cd /var/hda/platform/html && ./script/console production)


bash code
​echo 'Server.create(:name =&gt; "ido2db", :comment =&gt; "IDOUtils")' | (cd /var/hda/platform/html && ./script/console production)


Now go to http://hda and visit Setup > Settings > Servers and you will see Icinga and IDOUtils showing up at the bottom.

Smarter index.html

Wouldn't it be awesome if when you visit http://icinga that it would default to the classic interface if JavaScript is disabled, default to web 2.0 interface if Javascript is enabled, or default to the mobile interface if you're visiting from a mobile phone? Well you can if you configure your server right.

  1. Browse to /var/hda/web-apps/icinga/html/.
  2. Visit my sourceforge project and download the latest browser_detect.js_XXXX.
  3. Unzip browser_detect.js to /var/hda/web-apps/icinga/html/
  4. Create /var/hda/web-apps/icinga/html/index.html with the following contents.
Text
​'"`UNIQ--pre-00000020-QINU`"'​