Icinga

Aus XccesS Wiki
Zur Navigation springen Zur Suche springen

Beschreibung

Download

Installation

Master Server

Agent/Client Installation

Am Agent/Client:

curl -sSL https://packages.icinga.com/icinga.key | apt-key add -
apt-add-repository "deb https://packages.icinga.com/$(lsb_release -cs) icinga-$(lsb_release -cs) main"
apt-get update
apt install monitoring-plugins -y
adduser icinga
sudo sed -i 's/^#\?\s*PasswordAuthentication\s\+no/PasswordAuthentication yes/' /etc/ssh/sshd_config && service ssh restart

Vom Icinga-Server aus:

sudo -u nagios ssh-copy-id icinga@<remote-server>

Am Agent/Client:

sudo sed -i 's/^#\?\s*PasswordAuthentication\s\+yes/PasswordAuthentication no/' /etc/ssh/sshd_config && service ssh restart

Vom Icinga-Server aus:

sudo -u nagios /usr/bin/ssh -i /var/lib/nagios/.ssh/id_rsa icinga@<remote-server> "/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /" #testen
Emailversand

Siehe Postfix

Agent/Client

icinga2 node wizard

Während der Konfiguration:

  • Typ des Setups: Wähle agent.
  • Master-Verbindung: Gib die IP/Hostname des Masters ein.
  • Port: 5665 (Standardport für den Agent).
  • Zertifikatsanforderung: Bestätige, dass der Agent ein Zertifikat vom Master anfordert.
  • Zone: Stelle sicher, dass die Zone des Agents korrekt benannt ist.
  • Endpunkt: Füge den Endpunkt des Masters hinzu.

Am Master, neuen Client hinzufügen:

icinga2 pki ticket --cn '<client hostname>' --salt '<salt>' #die Ausgabe dann beim Client eintragen
icinga2 ca list

Client:

sudo systemctl restart icinga2
sudo systemctl enable icinga2

Füge den Agent in der /etc/icinga2/zones.conf hinzu:

object Endpoint "vps-hostname" {
    host = "IP-Adresse-des-VPS"
}

object Zone "vps-hostname" {
    endpoints = [ "vps-hostname" ]
    parent = "icinga"
}

Füge den Host in der Datei /etc/icinga2/conf.d/hosts.conf hinzu:

object Host "vps-hostname" {
    address = "IP-Adresse-des-VPS"
    check_command = "hostalive"
    vars.os = "Linux"
}

Konfiguration neu laden:

icinga2 daemon -C && systemctl restart icinga2

Update

Test

Fehlerbehebung

Remote command execution failed: @@@@@@

Bash Script auf Icinga Server erstellen:

#!/bin/bash

# Script zum Eintragen eines SSH-Host-Keys für den Nagios-Benutzer
# Verwendung: sudo ./add_known_host.sh npuls.de

HOST="$1"
USER="nagios"
SSH_DIR="/var/lib/$USER/.ssh"
KNOWN_HOSTS="$SSH_DIR/known_hosts"

if [[ -z "$HOST" ]]; then
  echo "Verwendung: $0 <hostname oder IP>"
  exit 1
fi

# Erstelle das .ssh-Verzeichnis, falls nicht vorhanden
if [[ ! -d "$SSH_DIR" ]]; then
  echo "[INFO] Erstelle $SSH_DIR ..."
  mkdir -p "$SSH_DIR"
  chown "$USER:$USER" "$SSH_DIR"
  chmod 700 "$SSH_DIR"
fi

# Stelle sicher, dass known_hosts existiert
if [[ ! -f "$KNOWN_HOSTS" ]]; then
  echo "[INFO] Erstelle $KNOWN_HOSTS ..."
  touch "$KNOWN_HOSTS"
  chown "$USER:$USER" "$KNOWN_HOSTS"
  chmod 600 "$KNOWN_HOSTS"
fi

# Füge den Host-Key hinzu, falls noch nicht vorhanden
echo "[INFO] Füge SSH-Host-Key für $HOST hinzu ..."
sudo -u "$USER" ssh-keyscan -H "$HOST" >> "$KNOWN_HOSTS"

echo "[OK] Host $HOST wurde zu $KNOWN_HOSTS hinzugefügt."

Ausführen:

sudo chmod +x /usr/local/bin/add_known_host.sh && sudo /usr/local/bin/add_known_host.sh <IP oder Domain>

Remote command execution failed: bash: line 1: /usr/lib/nagios/plugins/check_mem.pl: No such file or directory

wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl -O /usr/lib/nagios/plugins/check_mem.pl
chmod +x /usr/lib/nagios/plugins/check_mem.pl
chown root:nagios /usr/lib/nagios/plugins/check_mem.pl

Codeschnipsel

Nützliche Links

Codeschnipsel

Nützliche Links