A Software to monitor the health of an infrastructure is a vital component to a good system administrator.
After looking arround for open source software i decided to give Icinga2 a try.
Icinga2 is a fork of Nagios (it’s a good start) and looks much cooler 🙂 (IMO The cool factor is very important)
CentOS7 was the choice for the Operating System.
After reading the documentation in Icinga website and having some trouble i decided to add some crucial steps that i had to take to perform a successful installation.
All the steps described are performed as root user
First thing firts, after CentOS installation update your system:
# yum update
Now add the Icinga repository to your package management configuration
# rpm --import http://packages.icinga.org/icinga.key # curl -o /etc/yum.repos.d/ICINGA-release.repo http://packages.icinga.org/epel/ICINGA-release.repo # yum makecache
Install Icinga2
# yum install icinga2 # systemctl enable icinga2 # systemctl start icinga2
Congratulations Icinga2 is installed.
CheckPlugins
It’s time to install the checkplugins.
As Icinga2 is a Nagios fork we are going ot install the same plugins for it to work properly by installing the Monitoring Plugins.
# wget https://www.monitoring-plugins.org/download/monitoring-plugins-2.1.2.tar.gz # yum install gcc # gzip -dc monitoring-plugins-2.x.tar.gz | tar -xf - # cd monitoring-plugins-2.x # ./configure # make # make install
Vim editor
Icinga2 comes with some color schemes for vim that you can install by
# PREFIX=~/.vim # mkdir -p $PREFIX/{syntax,ftdetect} # cd /usr/share/doc/icinga2-common-2.4.1/syntax/ # cp vim/syntax/icinga2.vim $PREFIX/syntax/ # cp vim/ftdetect/icinga2.vim $PREFIX/ftdetect/
Lets change the installation directory of the plugins from /urs/lib64/* to /urs/local/libexec in the constants.conf file of icinga2. The file is in /etc/icinga2
# cd /etc/icinga2 # vim constants.conf
Creating a systemctl for Icinga2
# systemctl enable icinga2 # systemctl start icinga2
Icinga Web 2 interface
At this point Icinga2 is istalled and configured.
Icinga 2 can be used with Icinga Web 2 and a number of other web interfaces.
For now i am going to install Icinga Web 2.
Firts we are going to install MySQL
# yum install mariadb-server mariadb # systemctl enable mariadb # systemctl start mariadb # mysql_secure_installation
Now install install the icinga2-ido-mysql package
# yum install icinga2-ido-mysql
MySQL setup and configuration
# 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 -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Enable the IDO MySQL module
# icinga2 feature enable ido-mysql # systemctl restart icinga2
WebServer install
If you did not install the CenOS web server you need to install httpd
# yum install httpd # systemctl enable httpd # systemctl start httpd
Firewall
Add some rules to permit access to the web server
# firewall-cmd --add-service=http # firewall-cmd --permanent --add-service=http
Command Pipe
For the Icinga2 to receive commands from the Icinga Web 2 you need to enable the command pipe
# icinga2 feature enable command # systemctl restart icinga2
Icinga Web 2 interface installation
Setting up package repository
# rpm --import http://packages.icinga.org/icinga.key # curl -o /etc/yum.repos.d/ICINGA-release.repo http://packages.icinga.org/epel/ICINGA-release.repo # yum makecache
EPEL install
# yum install epel-release
PHP install
# yum install php php-mysql
Don’t forget to change the date.timezone in /etc/php.ini
Let’s install the web interface
# yum install icingaweb2 icingacli
And now lets prepare for the web setup
# icingacli setup token create
Run this command to mitigate an error at the web setup
chcon -R -t httpd_sys_rw_content_t /etc/icingaweb2/
Copy the token and access the site:
http://<server-ip>/icingaweb2/setup
past the token and continue the setup
If the website does not open restart the httpd by running:
# systemctl restart http
For the web interface to work (send commands to your icinga server) you need to disable SELinx in your system.
To do that just edit the file /etc/selinux/confing and change the enforcing to disabled.
Leave a Reply