RPi

icinga2

Icinga2 Installation

sh# apt update && apt install icinga2
sh# mysql_secure_installation

sh# apt install icinga2-ido-mysql
  • ITL - Icinga Template Library
  • IDO - Icinga Data Output

Configuration

sh# cd /etc/icinga2

Create passwords manually.

sh# openssl passwd -1 "password"
sh# mysql
mysql> use icingaweb2;
mysql> update icingaweb_user set password_hash = "<HASH>" where name = "<USERNAME>";

IcingaWeb2 Installation

sh# apt update && apt install icingaweb2 mariadb-server

icinga2-ido-mysql

sh# mysql
mysql> create database icinga2;
mysql> grant SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' identified by 'icinga2-ido';


sh# icinga2 feature enable ido-mysql
sh# systemctl restart icinga2

php timezone

sh# vi /etc/php/7.0/apache2/php.ini
...
date.timezone = Canada/Eastern
sh# systemctl reload apache2

Icinga2 IDO Installation

Host with multiple interfaces

sh# cd /etc/icinga2
sh# vi hosts.conf
object Host "rpi-1.localhost" {
  import "generic-host"

  address = "192.168.45.1"
  vars.os = "Linux

  vars.interfaces = {
    eth0 = {
      ipv4 = "192.168.45.1"
      mac  = ""
      vlan = ""
    }
    eth1 = {
      ipv4 = "192.168.72.1"
      mac  = ""
      vlan = ""
    }
    eth0.35 = {
      ipv4 = "192.168.35.1"
      mac  = ""
      vlan = "35"
    }
  }
}


sh# cd /etc/icinga2
sh# vi services.conf
...
apply Service for ( ifname => ifattrs in host.vars.interfaces ) {
  import "generic-service"

  vars.address = ifattrs.ipv4
  check_command = "ping4"
}

Icinga2 Client Setup

client-1.localhost:sh# icinga2 node wizard
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) [client-1.localhost]: 
Please specifiy the local zone name [client-1.localhost]: 
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): rpi-1.localhost
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): rpi-1.localhost
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 [rpi-1.localhost]: 
Port [5665]: 
information/base: Writing private key to '/etc/icinga2/pki/client-1.localhost.key'.
information/base: Writing X509 certificate to '/etc/icinga2/pki/client-1.localhost.crt'.
information/cli: Fetching public certificate from master (rpi-1.localhost, 5665):

Certificate information:

 Subject:     CN = rpi-1.localhost
 Issuer:      CN = Icinga CA
 Valid From:  Feb 11 22:00:38 2018 GMT
 Valid Until: Feb  7 22:00:38 2033 GMT
 Fingerprint: ....

Is this information correct? [y/N]: y
information/cli: Received trusted master certificate.

Please specify the request ticket generated on your Icinga 2 master.
 (Hint: # icinga2 pki ticket --cn 'client-1.localhost'): aabbb...........
information/cli: Requesting certificate with ticket 'aabbb........'.

information/cli: Created backup file '/etc/icinga2/pki/client-1.localhost.crt.orig'.
information/cli: Writing signed certificate to file '/etc/icinga2/pki/client-1.localhost.crt'.
information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'.
Please specify the API bind host/port (optional):
Bind Host []: 
Bind Port []: 
Accept config from master? [y/N]: y
Accept commands from master? [y/N]: y
information/cli: Disabling the Notification feature.
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
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: Generating local zones.conf.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.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'.
Done.

Now restart your Icinga 2 daemon to finish the installation!

SNMP

Installation

sh# apt install monitoring-plugins-standard snmp-mibs-downloader
sh# snmpwalk -