Mainos / Advertisement:

Icinga2

Kohteesta Taisto
Versio hetkellä 28. kesäkuuta 2016 kello 18.21 – tehnyt Minh (keskustelu | muokkaukset) (→‎Masterin sennus)
Siirry navigaatioon Siirry hakuun

Icinga2 on Nagios tapainen OpenSource monitorintiohjelma. Icinga2 sisältää paljon uusia ominaisuuksia ja paremman webympäristön ja valmiin mahdollisuus esimerkiksi Graphite pluginiin.

Järjestelmän vaatimukset täältä: https://wiki.icinga.org/display/howtos/System+Requirements

Icinga vaatii lisäksi verkosta portin 80, 443 (HTTP) ja 5665 että ovat auki palomuurista Icingaan.

Masterin sennus

Asenna vaaditut paketit

 sudo apt-get install apache2 php5 php5-json php5-gd php5-imagick php5-mysql php5-intl mysql-server mysql-client mailutils

Paketit Ubuntu 16.04 ja uudemmille käyttöjärjestelmille

 sudo apt-get install apache2 php7.0 php-json php7.0-gd php-imagick php7.0-mysql php7.0-intl mysql-server mysql-client mailutils

Lisää APT key

 wget -O - http://packages.icinga.org/icinga.key | apt-key add -


Lisää source.listiin:

Ubuntu: http://packages.icinga.org/ubuntu/

Debian: http://packages.icinga.org/debian/

Asenna sitten Icinga paketti

 sudo aptitude update
 sudo aptitude install icinga2 icingaweb2

Asenna IDO MySQL moduuli

 sudo apt-get install icinga2-ido-mysql
 icinga2 feature enable ido-mysql

Käynnistä Icinga2 uudelleen kun moduuli on otettu käyttöön

 service icinga2 restart 

Muuta oikeudet /etc/icingaweb2 hakemistoon

 chown www-data:www-data -R /etc/icingaweb2
 usermod -a -G icingaweb2 www-data 

Konfiguroi webympäristö

 addgroup --system icingaweb2

Luo tietokanta icinga2:lle seuraavasti:

  • Tietokanta webpuolelle
  • Tietokanta icinga2ido:lle. Tähän tulee järjestelmän generoima tunnus sekä luo oma jonka voit syöttää icinga2:sen asennusohjelmassa.
# 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';

Importtaa tietokanta

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

Konfiguroi PHP:lla aikavyöhyke muuttamalla /etc/php5/apache2/php.ini tai /etc/php/7.0/apache2/php.ini tiedostosta:

 date.timezone = “Europe/Helsinki”

Jatka asennusta webympäristössä, http://palvelimen-ip/icingaweb2

Konfigurointi

Masteri monitoroinnin konfigurointi

Käynnistä konfigurointi wizardi

 icinga2 node wizard

Toimi asennus wizardin mukaisesti

Welcome to the Icinga 2 Setup Wizard!

We'll guide you through all required configuration details.

Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: n
Starting the Master setup routine...
Please specifiy the common name (CN) [icinga.example.org]: 
information/base: Writing private key to '/var/lib/icinga2/ca/ca.key'.
information/base: Writing X509 certificate to '/var/lib/icinga2/ca/ca.crt'.
information/cli: Initializing serial file in '/var/lib/icinga2/ca/serial.txt'.
information/cli: Generating new CSR in '/etc/icinga2/pki/icinga.example.org.csr'.
information/base: Writing private key to '/etc/icinga2/pki/icinga.example.org.key'.
information/base: Writing certificate signing request to '/etc/icinga2/pki/icinga.example.org.csr'.
information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/icinga.example.org.crt'.
information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
Please specify the API bind host/port (optional):
Bind Host []: 
Bind Port []: 
information/cli: Enabling the APIlistener feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Please edit the constants.conf file '/etc/icinga2/constants.conf' and set a secure 'TicketSalt' constant.
Done.

Now restart your Icinga 2 daemon to finish the installation!

Käynnistä icinga2 uudelleen

 sudo service icinga2 restart

Ilmoitusasetukset

Icinga tukee Nagioksen tavoin sähköposti-ilmoituksia ja voit konfiguroida kohde osoitteen. Sähköposti-ilmoitukset lähetetään mailutils paketin avulla, varmistathan että sinulla on tämä asennettu.

 sudo nano /etc/icinga2/conf.d/users.conf

Muuta tiedostosta sähköposti-osoite vastaamaan omaasi.

object User "icingaadmin" {
  import "generic-user"

  display_name = "Icinga 2 Admin"
  groups = [ "icingaadmins" ]

  email = "root@localhost"
}

Custom Pluginien lisääminen

Lataa pluginit aina clientin ja masterin nagios-plugin hakemistoon ensin. Oletuksena hakemiston sijainti on /usr/lib/nagios/plugins .

Lisää /etc/icinga2/conf/commands.conf tiedostoon rivit joka määrittää pluginin. Alla esimerkkin' check_diskstat plugin. Lisää tämä alla oleva masterille sekä clienteille.

object CheckCommand "check_diskstat" {
        import "plugin-check-command"
        command = [ PluginDir + "/check_diskstat" ] //constants.conf -> const PluginDir
        arguments = {
                "-d" = "$diskstat_name$"
                "-W" = "$diskstat_warn$"
                "-C" = "$diskstat_crit$"

        }
}

ja tämän jälkeen /etc/icinga2/conf/services.conf tiedostoon miten tämä jaetaan hosteille. Tässä esimerkissä 'assing' kaikeille etä hosteille sekä niissä tulee olla Linux. Tämä määritetään vain masterille.


apply Service "diskstat" {
        import "generic-service"
        check_command = "check_diskstat"
        command_endpoint = host.vars.remote_client

        assign where host.vars.remote_client && host.vars.os == "Linux"
}

Varmista että kaikki on nyt oikein ja käynnistä Icinga2 uudelleen

 sudo service icinga2 restart

Debug nyt jos tuli virhettä tai ei näy oikein Icingassa.


Client asennus ja konfigurointi

Linux

Lisää APT key

 wget -O - http://packages.icinga.org/icinga.key | apt-key add -


Lisää source.listiin:

Ubuntu: http://packages.icinga.org/ubuntu/

Debian: http://packages.icinga.org/debian/

Asenna

 aptitude update && aptitude install icinga2
  • master on icinga master palvelin jonne data tallennetaan. Tätä osoite on icinga.example.org ja IP: 172.16.1.10
  • clienttinä on client1.example.org ja IP: 172.16.1.9

Luo palvelimella avain asiakkaan CN:n eli domain nimellä

 icinga2 pki ticket --cn 'client1.example.org'

Kopioi tulostuva tikettinumero talteen.

  • Asenna siis ekaksi icinga2 paketti clientille
  • Aja clientilla seuraavaksi komento jolla yhdistät clientin masteriin.
 icinga2 node wizard

Noden asennusvelho kyselee tiettyjä asetuksia ja vastaa seuraavasti


Welcome to the Icinga 2 Setup Wizard!

We'll guide you through all required configuration details.



Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: y
Starting the Node setup routine...
Please specifiy the common name (CN) [client1.example.org]:
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): icinga.example.org
Do you want to establish a connection to the master from this node? [Y/n]: y
Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): 172.16.1.10
Master endpoint port [5665]:
Add more master endpoints? [y/N]: n
Please specify the master connection for CSR auto-signing (defaults to master endpoint host):
Host [172.16.1.10]:
Port [5665]:
  • Tämän jälkeen kopioi masterin luoma tikettikoodi
Please specify the request ticket generated on your Icinga 2 master.
 (Hint: # icinga2 pki ticket --cn 'client1.example.org'):

Tämän jälkeen muuta masterin konfiguraatiota:

 sudo nano /etc/icinga2/zones.conf
object Endpoint "client1.example.org" {
  host = "172.16.1.9"

}

object Zone "client1.example.org" {
    endpoints = [ "client1.example.org" ]
    parent = NodeName
}

Avaa lisäksi /etc/icinga2/conf.d/hosts.conf

ja lisää konfiguraatioon

object Host "client1.example.org" {
  import "generic-host"

  address = "172.16.1.9"
  address6 = "::1"

  vars.os = "Linux"

  vars.remote_client = "client1.example.org"

  /* host specific check arguments */
  vars.users_wgreater = 10
  vars.users_cgreater = 20
}

Tällä mahdollistat palveluiden haun etä icingasta.

 sudo nano /etc/icinga2/conf.d/services.conf
apply Service "users" {
  import "generic-service"

  check_command = "users"
  command_endpoint = host.vars.remote_client

  /* override (remote) command arguments with host settings */
  vars.users_wgreater = host.vars.users_wgreater
  vars.users_cgreater = host.vars.users_cgreater

  /* assign where a remote client is set */
  assign where host.vars.remote_client
}

Käynnistä icinga2 uudelleen

 sudo service icinga2 restart

Windows

Lisää icinga2.conf tiedostoon Windows Pluginit. Tämä includettaa /usr/share/icinga2/include/command-plugins-windows.conf tiedoston.

include <windows-plugins>

Asenna Icinga2 Windows client: http://packages.icinga.org/windows/

Luo vastaava tiketti kuin Linuxille masterilla.

Lähde ohjeesta poiketen sinun ei tarvitse asentaa NSClient++ sillä Icinga2 client osaa nuo kaiken oletuksena. Voit toki käyttää tätäkin halutessasi.

Lähde: http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/icinga2-client

Lisämoduulit

Graphite Icinga2:een

Asenna seuraavat moduulit

 sudo apt-get update
 sudo apt-get install graphite-web graphite-carbon

Asenna MySQL

 sudo apt-get install mysql-server mysql-client

Luo MySQL:ään

  • Tietokanta graphite:lle täysillä oikeuksilla
  • Käyttäjätunnus ja salasana

Konfiguroi Graphite Web sovellus

Avaa Graphite web sovelluksen konfigurointi tiedosto

 sudo nano /etc/graphite/local_settings.py

Luo secret_key jota käytetään hashinä. Poista kommentti ja määritä siihen pitkä hash. Muuta hash.

 SECRET_KEY = '<changethis>'

Seuraavaksi määritetään aikavyöhyke oikein. Tämä on tärkeä olla oikein koska sitä käytetään grafiikan ajoituksissa

 TIME_ZONE = 'Europe/Helsinki'

Lisäksi haluamme konfiguroida todennuksen tallentaakseen graphic dataa. Kun synkronoidaan tietokantaan, luomme käyttäjän mutta täytyy ottaa käyttöön todennus

 USE_REMOTE_USER_AUTHENTICATION = True

Nyt on aika konfiguroida tietokanta-asetukset.

DATABASES = {
    'default': {
        'NAME': 'graphite',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'graphite',
        'PASSWORD': 'databasepassword',
        'HOST': 'localhost',
        'PORT': '3306'
    }
}

Tallenna ja sulje.

Seuraavaksi synkronoidaan tiedot tietokantaan

 sudo graphite-manage syncdb

Sinulta kysellään superkäyttäjän luomista. Luo käyttäjä jolla pääset kirjautumaan selaimella. Tällä voit tallentaa grafiikoita ja muokata näkymää.

Nyt kun tietokanta on konfiguroitu, tulee konfiguroida carbon, Graphite tallennus ohjelman

 sudo nano /etc/default/graphite-carbon

Täälä on vain yksi parametri joka pitää ottaa käyttöön

     CARBON_CACHE_ENABLED=true

Sulje ja tallenna. Seuraavaksi avaa Carbonin konfigurointi tiedosto

 sudo nano /etc/carbon/carbon.conf

Jossa tehdään pieni muutos

 ENABLE_LOGROTATION = True

Kun kaikki on valmista voit käynnistää Carbon palvelun

 sudo service carbon-cache start

Web interfacea varten sinun tulee asentaa Apacheen wsgi moduulin

 sudo apt-get install apache2 libapache2-mod-wsgi

Kopioi oletuskonfiguraatio

 sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available

Ota se käyttöön

 sudo a2ensite apache2-graphite

Lataa Apache2 konfiguraatio uudelleen

 sudo service apache2 reload

---

Ota sitten käyttöön Icingassa graphite moduuli

 sudo icinga2 feature enable graphite

Käynnistä Icinga uudelleen.

Troubleshooting

critical/icinga-app: Another instance of Icinga already running with PID

  • Asenna 2 2.4.10 tai uudempi versio korjaa tämän ongelman
Mainos / Advertisement: