Difference between revisions of "Icinga"

From HackerNet
Jump to: navigation, search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
#### WIP
+
{{inteklar}}
  
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.
+
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 install software-properties-common && sudo add-apt-repository ppa:formorer/icinga
+
===Core===
  sudo apt-get update && sudo apt-get install icinga2 mysql-server mysql-client git && sudo apt-get install icinga2-ido-mysql
+
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
 
  mysql -u root -p
  sudo icinga2 feature enable livestatus && sudo service icinga2 restart
+
  CREATE DATABASE icinga;
  sudo usermod -a -G nagios www-data
+
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
sudo icinga2 feature enable compatlog && sudo icinga2 feature enable ido-mysql && sudo icinga2 feature enable command
+
 
sudo service icinga2 restart
+
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.
git clone git://git.icinga.org/icingaweb2.git && sudo mv icingaweb2 /usr/share/icingaweb
+
  apt-get install icinga2-ido-mysql
  cd /usr/share/icingaweb && sudo tasksel install lamp-server
+
 
 +
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
  
./bin/icingacli setup config webserver apache --document-root /usr/share/icingaweb/public
+
Skapa sedan en setup token med,
  sudo service apache2 restart && sudo a2enmod rewrite && sudo service apache2 restart
+
  icingacli setup token create
sudo mkdir /etc/icingaweb2 && sudo chmod 777 -R /etc/icingaweb2
 
sudo su www-data --shell=/bin/bash -c "mkdir -m 2770 /etc/icingaweb2; head -c 12 /dev/urandom | base64 | tee /etc/icingaweb2/setup.token; chmod 0660 /etc/icingaweb2/setup.token;";
 
sudo apt-get install php5-ldap && sudo service apache2 restart && sudo apt-get -y install php5-intl && sudo apt-get -y install php5-gd php5-imagick && sudo service apache2 restart
 
  
'''http://host/icinga-web''', icingaadmin
+
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.
  
==Konfiguration==
+
=====Git=====
Icinga kan övervaka med agenter eller kolla "öppna" tjänster.
+
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].
 +
 
 +
===Features===
 +
Kolla vilka features som är enablat.
 +
icinga2 feature list
  
'''Utan agent'''
+
===systemctl/init===
sudo nano /etc/icinga/objects/hackernet.cfg
 
define host {
 
        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 status icinga2
 +
/etc/init.d/icinga2 status
 +
{| class="wikitable"
 +
|+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.
 +
|}
  
På klient:
 
sudo apt install nagios-plugins nagios-nrpe-server
 
sudo nano /etc/nagios/nrpe.cfg
 
server_address=client_IP
 
allowed_hosts=ICINGA_IP
 
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda
 
sudo service nagios-nrpe-server restart
 
På icinga:
 
sudo nano /etc/icinga/objects/yourhost.cfg
 
define host {
 
        use                    generic-host
 
        host_name              wordpress-1
 
        alias                  My first wordpress server
 
        address                10.128.xxx.xxx
 
        }
 
Ping:
 
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==
  
==Plugins==
+
{| class="wikitable"
sudo apt-get install nagios-plugins
+
!|Path!!Description
[[Category:Guider]]
+
|-
 +
|/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.