Difference between revisions of "Icinga"

From HackerNet
Jump to: navigation, search
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Icinga är ett monitoreringssystem som kollar tillgänglighet på servrar och tjänster. Det är tänkt som en nyskriven och förbättrad variant av nagios. Icinga är open source.
+
{{inteklar}}
 +
 
 +
Icinga är ett forkat project av Nagios det betyder att Icinga är bakåtkompatibel med nästan alla Nagios plugins och add-ons skrivna för Nagios.
 +
 
 +
Icinga skapades för att fixa brister i Nagios utveckling och för att lägga till nya funktioner som ett moderna web 2.0 interface, fler stöd för databaser(Oracle, PostgreSQL och MySQL) och ett REST API. Dom släpper också patcher oftare och snabbare än vad Nagios gjorde.
 +
 
 +
==Arkitektur==
 +
[[File:Icinga_Architecture_v1.5.png|200px|Arkitekturen|thumb]]
 +
Icinga är uppdelat i tre olika delar.
 +
 
 +
'''Core''' sköter all övervakning sparar alla resultat och data på IDO DBn. Den skickar också ut en alert om något har hänt.
 +
 
 +
'''Icinga Data Out Database''' (IDODB) fungerar som lagringsyta för all övervakningsdata som add-ons eller webinterfacet kan hämta.
 +
 
 +
'''Icinga's user interface''' som hämtar data från IDODBn och visar upp resultatet. Används också för att skicka kommandon mot Core.
 +
 
 +
==Förberedelse==
 +
Lägg till lite repon för att få senaste versionen.
 +
===Repository===
 +
====Debian====
 +
'''Icinga Debian repo'''
 +
wget -O - http://packages.icinga.org/icinga.key | apt-key add -
 +
echo deb http://packages.icinga.org/debian icinga-jessie main >> /etc/apt/sources.list
 +
echo deb-src http://packages.icinga.org/debian icinga-jessie main >> /etc/apt/sources.list
 +
apt-get update
 +
 
 +
'''Debian backports repo'''
 +
echo deb http://ftp.se.debian.org/debian/ jessie-backports main >> /etc/apt/sources.list
 +
apt-get update
 +
 
 +
'''Debmon repo'''
 +
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
 +
echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list
 +
apt-get update
 +
 
 +
====Ubuntu====
 +
'''Icinga Ubuntu repo''''
 +
wget -O - http://packages.icinga.org/icinga.key | apt-key add -
 +
echo deb http://packages.icinga.org/ubuntu icinga-trusty main >> /etc/apt/sources.list
 +
echo deb-src http://packages.icinga.org/ubuntu icinga-trusty main >> /etc/apt/sources.list
 +
apt-get update
 +
 
 +
'''Icinga PPA repo'''
 +
add-apt-repository ppa:formorer/icinga
 +
apt-get update
  
 
==Installation==
 
==Installation==
  sudo apt-get -y install software-properties-common && sudo add-apt-repository ppa:formorer/icinga
+
===Core===
sudo apt update && sudo apt install icinga icinga-doc icinga-idoutils mysql-server libdbd-mysql mysql-client
+
För att installera Icinga2 core skriv,
sudo usermod -a -G nagios www-data
+
  apt-get install icinga2
sudo nano /etc/default/icinga
 
IDO2DB=yes
 
sudo service ido2db start
 
sudo cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg
 
sudo service icinga restart
 
sudo chmod u+s `which ping`
 
'''http://host/icinga''', icingaadmin
 
  
==Konfiguration==
+
Utan plugins vet inte Icinga hur den ska kolla en tjänst. Enklast är att tanka hem en färdig bundle med plugins.
Icinga kan övervaka med agenter eller kolla "öppna" tjänster.
+
apt-get install nagios-plugins
 +
 
 +
===Icinga Data Out Database===
 +
Guiden utgår ifrån att du kommer köra en lokal MySQL databas.
 +
 
 +
Installera MySQL
 +
apt-get install mysql-server mysql-client
 +
 
 +
Logga in och skapa en databas samt en användare med rättigheter.
 +
mysql -u root -p
 +
CREATE DATABASE icinga;
 +
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
 +
 
 +
Lägg sedan till MySQL ido paketet. Paketet har en wizard som du kan använda eller skippa och göra det manuellt om du vill.
 +
apt-get install icinga2-ido-mysql
 +
 
 +
Om du vill få upp wizarden igen skriv <code>dpkg-reconfigure icinga2-ido-mysql</code>
 +
 
 +
För att ansluta manuellt använd conf filen <code>/etc/icinga2/features-available/ido-mysql.conf</code> [http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/object-types#objecttype-idomysqlconnection Exempel conf MySQL]
 +
 
 +
Importera MySQL schemat.
 +
mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
 +
 
 +
Enabla featuren ido-mysql
 +
icinga2 feature enable ido-mysql
 +
 
 +
Starta om icinga2 för att det ska gälla.
 +
service icinga2 restart
 +
 
 +
 
 +
===Icinga's user interface===
 +
Icinga erbjuder tre st web interface, Icinga Web 2, Icinga Web och Classic UI.
 +
 
 +
Guiden utgår ifrån att du har färdig [[LAMP]] server. Vill du LDAP/AD koppla inlogget krävs PHP LDAP library.
 +
 
 +
====Icinga Web 2====
 +
Det finns två sätt att installera Web 2. Första med hjälp av repot eller andra med git.
 +
Över repot sker många steg automatiskt men du får kanske inte senaste versionen.
 +
Med GIT får du senaste versionen men får göra fler steg själv.
 +
 
 +
=====Repo=====
 +
apt-get install icingaweb2 icingacli
 +
 
 +
Skapa sedan en setup token med,
 +
icingacli setup token create
 +
 
 +
För att visa den ifall du skulle glömma av den skriv,
 +
icingacli setup token show
 +
 
 +
Surfa sedan till http://ip/icingaweb2/setup för att följa wizarden.
 +
 
 +
=====Git=====
 +
Börja med att klona repot.
 +
git clone git://git.icinga.org/icingaweb2.git
 +
 
 +
Flytta sedan repot och gå till dess plats.
 +
mv icingaweb2 /usr/share/icingaweb2 && cd /usr/share/icingaweb2
 +
 
 +
Skapa en konfigurationsfil till Apache eller Nginx.
 +
 
 +
'''Apache'''
 +
./bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public > /etc/apache2/sites-available/icingaweb2
 +
a2ensite icingaweb2
 +
service apache2 restart
 +
 
 +
'''Nginx'''
 +
./bin/icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public
 +
 
 +
Både webusern och cli usern måste ha tillgång till conf och loggar. Permissions sköter man med en special grupp.
 +
addgroup --system icingaweb2 && usermod -a -G icingaweb2 www-data
 +
 
 +
Skapa ett configuration directory. Default är <code>/etc/icingaweb2</code>
 +
./bin/icingacli setup config directory
 +
 
 +
Skapa en setup token med kommandot.
 +
./bin/icingacli setup config directory
 +
 
 +
Visa setup token ifall du glömmer bort den.
 +
./bin/icingacli setup token show
 +
 
 +
Surfa sedan till http://<ip>/icingaweb2/setup för att följa wizarden.
 +
 
 +
==Kommandon==
 +
Icinga har en hög olika [http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/cli-commands#cli-command-feature CLI kommandon].
  
'''Utan agent'''
+
===Features===
sudo nano /etc/icinga/objects/hackernet.cfg
+
Kolla vilka features som är enablat.
define host {
+
  icinga2 feature list
        use                    generic-host
 
        host_name              www.hackernet.se
 
        alias                  The Best Web Server
 
        address                212.107.156.238
 
}
 
 
define service {
 
        use                    generic-service
 
        host_name              www.hackernet.se
 
        service_description    HTTP
 
        check_command          check_http
 
}
 
  sudo service icinga reload
 
  
'''Övervakning med agent.'''
+
===systemctl/init===
  
På klient:
+
  systemctl status icinga2
  sudo apt install nagios-plugins nagios-nrpe-server
+
  /etc/init.d/icinga2 status
  sudo nano /etc/nagios/nrpe.cfg
+
{| class="wikitable"
server_address=client_IP
+
|+Kommando beskrivning
allowed_hosts=ICINGA_IP
+
|-
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
+
|start||The start action starts the Icinga 2 daemon.
sudo service nagios-nrpe-server restart
+
|-
På icinga:
+
|stop||The stop action stops the Icinga 2 daemon.
sudo nano /etc/icinga/objects/yourhost.cfg
+
|-
define host {
+
|restart||The restart action is a shortcut for running the stop action followed by start.
        use                    generic-host
+
|-
        host_name              wordpress-1
+
|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.
        alias                  My first wordpress server
+
|-
        address                10.128.xxx.xxx
+
|checkconfig||The checkconfig action checks if the /etc/icinga2/icinga2.conf configuration file contains any errors.
        }
+
|-
Ping:
+
|status||The status action checks if Icinga 2 is running.
define service {
+
|}
        use                            generic-service
 
        host_name                      wordpress-1
 
        service_description            PING
 
        check_command                  check_ping!100.0,20%!500.0,60%
 
        }
 
SSH
 
define service {
 
        use                            generic-service
 
        host_name                      wordpress-1
 
        service_description            SSH
 
        check_command                  check_ssh
 
        notifications_enabled          0
 
        }
 
Load:
 
define service {
 
        use                            generic-service
 
        host_name                      wordpress-1
 
        service_description            Current Load
 
        check_command                  check_load!5.0!4.0!3.0!10.0!6.0!4.0
 
        }
 
Current Users:
 
define service {
 
        use                            generic-service
 
        host_name                      wordpress-1
 
        service_description            Current Users
 
        check_command                  check_users!20!50
 
        }
 
Disk Space:
 
define service {
 
        use                            generic-service
 
        host_name                      wordpress-1
 
        service_description            Disk Space
 
        check_command                  check_all_disks!20%!10%
 
        }
 
  
sudo service icinga reload
 
  
 +
==Konfiguration==
  
[[Category:Guider]]
+
{| class="wikitable"
 +
!|Path!!Description
 +
|-
 +
|/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.
 +
|}

Latest revision as of 11:43, 20 August 2015

caption

Icinga är ett forkat project av Nagios det betyder att Icinga är bakåtkompatibel med nästan alla Nagios plugins och add-ons skrivna för Nagios.

Icinga skapades för att fixa brister i Nagios utveckling och för att lägga till nya funktioner som ett moderna web 2.0 interface, fler stöd för databaser(Oracle, PostgreSQL och MySQL) och ett REST API. Dom släpper också patcher oftare och snabbare än vad Nagios gjorde.

Arkitektur

Arkitekturen

Icinga är uppdelat i tre olika delar.

Core sköter all övervakning sparar alla resultat och data på IDO DBn. Den skickar också ut en alert om något har hänt.

Icinga Data Out Database (IDODB) fungerar som lagringsyta för all övervakningsdata som add-ons eller webinterfacet kan hämta.

Icinga's user interface som hämtar data från IDODBn och visar upp resultatet. Används också för att skicka kommandon mot Core.

Förberedelse

Lägg till lite repon för att få senaste versionen.

Repository

Debian

Icinga Debian repo

wget -O - http://packages.icinga.org/icinga.key | apt-key add -
echo deb http://packages.icinga.org/debian icinga-jessie main >> /etc/apt/sources.list 
echo deb-src http://packages.icinga.org/debian icinga-jessie main >> /etc/apt/sources.list
apt-get update

Debian backports repo

echo deb http://ftp.se.debian.org/debian/ jessie-backports main >> /etc/apt/sources.list
apt-get update

Debmon repo

wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list
apt-get update

Ubuntu

Icinga Ubuntu repo'

wget -O - http://packages.icinga.org/icinga.key | apt-key add -
echo deb http://packages.icinga.org/ubuntu icinga-trusty main >> /etc/apt/sources.list
echo deb-src http://packages.icinga.org/ubuntu icinga-trusty main >> /etc/apt/sources.list
apt-get update

Icinga PPA repo

add-apt-repository ppa:formorer/icinga
apt-get update

Installation

Core

För att installera Icinga2 core skriv,

apt-get install icinga2

Utan plugins vet inte Icinga hur den ska kolla en tjänst. Enklast är att tanka hem en färdig bundle med plugins.

apt-get install nagios-plugins

Icinga Data Out Database

Guiden utgår ifrån att du kommer köra en lokal MySQL databas.

Installera MySQL

apt-get install mysql-server mysql-client

Logga in och skapa en databas samt en användare med rättigheter.

mysql -u root -p
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';

Lägg sedan till MySQL ido paketet. Paketet har en wizard som du kan använda eller skippa och göra det manuellt om du vill.

apt-get install icinga2-ido-mysql

Om du vill få upp wizarden igen skriv dpkg-reconfigure icinga2-ido-mysql

För att ansluta manuellt använd conf filen /etc/icinga2/features-available/ido-mysql.conf Exempel conf MySQL

Importera MySQL schemat.

mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Enabla featuren ido-mysql

icinga2 feature enable ido-mysql

Starta om icinga2 för att det ska gälla.

service icinga2 restart


Icinga's user interface

Icinga erbjuder tre st web interface, Icinga Web 2, Icinga Web och Classic UI.

Guiden utgår ifrån att du har färdig LAMP server. Vill du LDAP/AD koppla inlogget krävs PHP LDAP library.

Icinga Web 2

Det finns två sätt att installera Web 2. Första med hjälp av repot eller andra med git. Över repot sker många steg automatiskt men du får kanske inte senaste versionen. Med GIT får du senaste versionen men får göra fler steg själv.

Repo
apt-get install icingaweb2 icingacli

Skapa sedan en setup token med,

icingacli setup token create

För att visa den ifall du skulle glömma av den skriv,

icingacli setup token show

Surfa sedan till http://ip/icingaweb2/setup för att följa wizarden.

Git

Börja med att klona repot.

git clone git://git.icinga.org/icingaweb2.git

Flytta sedan repot och gå till dess plats.

mv icingaweb2 /usr/share/icingaweb2 && cd /usr/share/icingaweb2

Skapa en konfigurationsfil till Apache eller Nginx.

Apache

./bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public > /etc/apache2/sites-available/icingaweb2
a2ensite icingaweb2
service apache2 restart

Nginx

./bin/icingacli setup config webserver nginx --document-root /usr/share/icingaweb2/public

Både webusern och cli usern måste ha tillgång till conf och loggar. Permissions sköter man med en special grupp.

addgroup --system icingaweb2 && usermod -a -G icingaweb2 www-data

Skapa ett configuration directory. Default är /etc/icingaweb2

./bin/icingacli setup config directory

Skapa en setup token med kommandot.

./bin/icingacli setup config directory

Visa setup token ifall du glömmer bort den.

./bin/icingacli setup token show

Surfa sedan till http://<ip>/icingaweb2/setup för att följa wizarden.

Kommandon

Icinga har en hög olika CLI kommandon.

Features

Kolla vilka features som är enablat.

icinga2 feature list

systemctl/init

systemctl status icinga2
/etc/init.d/icinga2 status
Kommando beskrivning
start The start action starts the Icinga 2 daemon.
stop The stop action stops the Icinga 2 daemon.
restart The restart action is a shortcut for running the stop action followed by start.
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.
checkconfig The checkconfig action checks if the /etc/icinga2/icinga2.conf configuration file contains any errors.
status The status action checks if Icinga 2 is running.


Konfiguration

Path Description
/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.