Installation

Netzwerk Vorraussetzungen (Firewall)


Beschreibung:

Der Server und die Agents kommunizieren über mehrere Ports. Diese müssen eingehend erreichbar sein

Firewall Ports

Überwachung von Hosts (Agent, SNMP)

Die folgenden Ports auf überwachten Hosts müssen vom Checkmk-Server aus erreichbar sein.

Port Protokoll Bezeichnung Ergänzende Informationen

161

UDP

Simple Network Management Protocol (SNMP)

Via SNMP überwachte Hosts erhalten über diesen Port die Anforderung GET-REQUEST.

6556

TCP

Agent

Via Checkmk-Agent überwachte Hosts werden über diesen Port abgefragt. Die Kommunikation erfolgt TLS verschlüsselt oder im Klartext (wie beim Linux-Agenten im Legacy-Modus).

ICMP

Ping

Checkmk überwacht die Erreichbarkeit von Hosts per Ping. Ist dies nicht möglich, muss die Ermittlung des Host-Zustands mit der Regel Host Check Command festgelegt werden.

Aktive Checks greifen direkt auf die Ports der überwachten Dienste zu, die daher auch vom Checkmk-Server aus erreichbar sein müssen. Die Überwachung mit Spezialagenten kann erfordern, andere/weitere Ports zu öffnen. So benötigt der Spezialagent für VMware ESXi (auch NetApp und viele weitere) die Öffnung des Ports 443 auf dem ESXi Server.

Checkmk-Server

Die folgenden Ports auf dem Checkmk-Server müssen für die Hosts im Monitoring erreichbar sein.

Port Protokoll Bezeichnung Ergänzende Informationen

80

TCP

Hypertext Transfer Protocol (HTTP)

Agent Updater (Agentenbäckerei), Discovery des Agent Controller Ports

162

UDP

Simple Network Management Protocol Trap (SNMPTRAP) EC

Empfang von SNMP-Traps über die Event Console (optional aktivierbar)

443

TCP

Hypertext Transfer Protocol over SSL/TLS (HTTPS)

Agent Updater (Agentenbäckerei), Discovery des Agent Controller Ports, mit Transportverschlüsselung

514

TCP und UDP

Syslog (EC)

Empfang von Syslog-Nachrichten über die Event Console (optional aktivierbar)

6559

UDP

Echtzeitprüfungen

Empfang von UDP-Paketen für die Echtzeitprüfungen einzelner Dienste (selten verwendet, optional aktivierbar)

8000

TCP

Agent Controller TLS-Registrierung

Wenn mehrere Instanzen auf dem Checkmk-Server laufen, sind eventuell weitere Ports (8001, 8002…) nötig.

Die TLS-Registrierung von Agenten nutzt die REST-API auf Port 80/443 zur Discovery des Ports zur Registrierung (meist 8000 TCP). Sind beide nicht erreichbar, kann der Port per Kommandozeilenoption angegeben werden. Falls Port 8000 nicht erreichbar ist, kann auf anderen Hosts im Monitoring eine Registrierung im Auftrag erfolgen.

Verteiltes Monitoring

Remoteinstanz

Die folgenden Ports auf Remote-Instanzen müssen vom als Zentralinstanz arbeitenden Checkmk-Server erreichbar sein.

Port Protokoll Bezeichnung Ergänzende Informationen

80

TCP

HTTPS (Hypertext Transfer Protocol)

Synchronisierung im verteilten Monitoring

443

TCP

Hypertext Transfer Protocol over SSL/TLS (HTTPS)

Synchronisierung im verteilten Monitoring, mit Transportverschlüsselung

6555

TCP

Benachrichtigungs-Spooler (notification spooler)

Der Benachrichtigungs-Spooler dient dem zentralen Versand von Benachrichtigungen, hier beim Verbindungsaufbau durch die Zentralinstanz (optional aktivierbar)

6557

TCP

Livestatus

Wenn mehrere Instanzen auf dem Checkmk-Server laufen, sind eventuell weitere Ports nötig (optional aktivierbar)

6558

TCP


Statusanschluss der Event Console (optional aktivierbar)

Zentralinstanz

Prinzipiell ist verteiltes Monitoring ohne weitere Hilfsmittel wie Tunneling bereits möglich, wenn die Zentralinstanz eine Verbindung zu den Remote-Instanzen herstellen kann. Die Erreichbarkeit der Zentralinstanz durch Remote-Instanzen ist nur für optionale Funktionalitäten (z.B. Agentenbäckerei) erforderlich.

Die folgenden Ports auf dem als Zentralinstanz arbeitenden Checkmk-Server müssen durch die zugeordneten Remote-Instanzen erreichbar sein, um die beschriebene Funktionalität bereitzustellen.

Port Protokoll Bezeichnung Ergänzende Informationen

80

TCP

Hypertext Transfer Protocol (HTTP)

Für Agentenbäckerei und dynamische Host-Konfiguration

443

TCP

Hypertext Transfer Protocol over SSL/TLS (HTTPS)

Für Agentenbäckerei und dynamische Host-Konfiguration, mit Transportverschlüsselung

6555

TCP

Benachrichtigungs-Spooler (notification spooler)

Der Benachrichtigungs-Spooler dient dem zentralen Versand von Benachrichtigungen, hier beim Verbindungsaufbau durch eine Remote-Instanz (optional aktivierbar)

Checkmk Appliance Cluster

Sie können zwei Checkmk-Appliances ("Knoten") zu einem Cluster zusammenschließen. Dabei werden alle Konfigurationen und Daten zwischen den beiden Geräten abgeglichen.

Die folgenden Ports müssen von beiden Knoten aus ein- und ausgehend freigegeben sein.

Port Protokoll Bezeichnung Ergänzende Informationen

3121

TCP

Pacemaker

Pacemaker Cluster resource manager

4321

UDP

Corosync

Corosync Cluster Engine

4323

UDP

Corosync

Corosync Cluster Engine

7789

TCP

DRBD

Synchronisierung der DRDB (Distributed Replicated Block Device)

Firewall Regeln (wenn eine Firewall Konfiguriert ist, hinzufügen, hier am Beispiel am CheckMK-Server nicht Agent)

FIrewalld

Installation:

#Install
yum install firewalld   # für RHEL-basierte Systeme
apt-get install firewalld  # für Debian-basierte Systeme
#Add Systemstart
systemctl start firewalld
systemctl enable firewalld

Folgende Regeln hinzufügen, falls die Firewall auch gerade erst installiert wurde habe Ich Port 22 (SSH) einfach mit zugepackt, weil sonst sind wir gleich ausgesperrt. Das Permanent bedeutet das auch nach einem neustart des Servers die Regeln wieder geldaen werden sollen

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=6559/udp --permanent
firewall-cmd --zone=public --add-port=514/udp --permanent
firewall-cmd --zone=public --add-port=514/tcp --permanent
firewall-cmd --zone=public --add-port=162/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent

Alle Regeln auflisten lassen

firewall-cmd --list-all
Output
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client http https ssh
  ports: 3000/tcp 8005/tcp 5665/tcp 8000/tcp 6559/udp 514/udp 514/tcp 162/udp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Nun ein relaod der Firewall durchführen

firewall-cmd --reload

ufw Firewall

Install.

#Install
apt-get install ufw   # für Debian-basierte Systeme
yum install ufw      # für RHEL-basierte Systeme
#Enable at Systemstart
ufw enable

Regeln hinzufügen

ufw allow 8000/tcp
ufw allow 6559/udp
ufw allow 514/udp
ufw allow 514/tcp
ufw allow 162/udp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp




Installation auf Debian 11 Bullseye

1. Vorrausetzung ist ein Debian 11 mit ssh Zugang via Schlüsseldatei.

Auf dei Website https://checkmk.com/de

Und oben rechts auf Downloads.

Screenshot 2022-11-17 at 08-33-48 Infrastruktur- und Applikations-Monitoring mit Checkmk.png

Nun Checkmk für Linux auswählen -> Free / Enterprise -> Version 2.1 bzw die Aktuellste -> Debian -> Debian 11 -> geschäftlich
Emailadresse (Kann auch ne Fake Email sein, denn die Installationsanleitung kommt danach eingeblendet)
eintragen und auf Download & install drücken

Screenshot 2022-11-17 at 08-36-35 Checkmk kostenlos downloaden.png

Jetz werden die Befehle zur Installation angezeigt. Ich habe diese aber zum kopieren im nächsten Schritt angefügt

Screenshot 2022-11-17 at 08-40-29 Checkmk kostenlos downloaden.png

DIe Debdatei per WGET downloaden. Zur Zeitpunkt der erstellung des Artikels Version 2.1

wget https://download.checkmk.com/checkmk/2.1.0p16/check-mk-free-2.1.0p16_0.bullseye_amd64.deb

Nun das Paket installieren

apt install ./check-mk-free-2.1.0p16_0.bullseye_amd64.deb

Zum Schluss kommt ein Hinweis, da wir die installation ja schon als root ausgeführt haben.
Dies ist kein Fehler
Ausgabe...
N: Der Download wird als root und nicht Sandbox-geschützt durchgeführt, 
da auf die Datei »/root/check-mk-free-2.1.0p16_0.bullseye_amd64.deb« durch den Benutzer 
»_apt« nicht zugegriffen werden kann. - pkgAcquire::Run (13: Keine Berechtigung)

Überpüfen ob korrekt installiert wurde

omd version

Die Ausgabe sollte so aussehen

OMD - Open Monitoring Distribution Version 2.1.0p16.cfe

Nun eine Checkmk instanz erstellen. Eine Intenz wäre zum Beispiel Kunde oder ein Projekt.
Checkmk ist sogesehen Multi Mandant fähig.
Jede Instanz kann auch verschiedene Versionsnummern haben.
Z.b Eine Test umgegbung mit der schon Version 2 getestet wird und ne Prod die noch auf 1.6 läuft

Instanz erstellen

omd create <namederinstanz>

Beispiel
omd create monitoring

Hier bekommen wir den Hinweis, das wir zu wenig VCPUs haben.
Ist halt ne Testumgebeung. Gleichzeitig sehen wir hier das Kennwort für den  Webadmin

Ausgabe:

Creating temporary filesystem /omd/sites/monitoring/tmp...OK
Updating core configuration...
Generating configuration for core (type cmc)...

WARNING: The number of configured checkers is higher than the number of available CPUs. To avoid unnecessary context switches, the number of checkers should be limited to the number of CPUs. Recommended number of checkers: 2
Starting full compilation for all hosts Creating global helper config...OK
 Creating cmc protobuf configuration...OK
Executing post-create script "01_create-sample-config.py"...OK
Restarting Apache...OK
Created new site monitoring with version 2.1.0p16.cfe.

  The site can be started with omd start monitoring.
  The default web UI is available at http://checkmk/monitoring/

  The admin user for the web applications is cmkadmin with password: **** wird natürlcih in klartext angezeigt ****
  For command line administration of the site, log in with 'omd su monitoring'.
  After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.

Damit wäre die Installation abgeschlossen.
Wie im oberen text zu sehen.
ist das Kennwort ändern übers Terminal jederzeit möglich.

omd su <instanzname>

dann 
cmk-passwd <nuntername>


Beispiel :

omd su monitoring
cmk-passwd cmkadmin


Nun einloggen über IP/Domain Instanzname
Beispiel https://checkmk.io/monitoring

Screenshot 2022-11-20 at 11-40-05 Checkmk Local site monitoring.png





Installation auf Redhat / CentOS 8

1. Vorrausetzung ist ein Debian 11 mit ssh Zugang via Schlüsseldatei.

Auf dei Website https://checkmk.com/de

Und oben rechts auf Downloads.

Screenshot 2022-11-17 at 08-33-48 Infrastruktur- und Applikations-Monitoring mit Checkmk.png

Nun Checkmk für Linux auswählen -> Free / Enterprise -> Version 2.1 bzw die Aktuellste -> Red Hat /Centos -> red Hat / Alma Linux -> geschäftlich
Emailadresse (Kann auch ne Fake Email sein, denn die Installationsanleitung kommt danach eingeblendet)
eintragen und auf Download & install drücken

image-1675846268133.png

Jetz werden die Befehle zur Installation angezeigt. Ich habe diese aber zum kopieren im nächsten Schritt angefügt

image-1675846341248.png

DIe Debdatei per WGET downloaden. Zur Zeitpunkt der erstellung des Artikels Version 2.1

wget https://download.checkmk.com/checkmk/2.1.0p20/check-mk-free-2.1.0p20-el8-38.x86_64.rpm

Nun das Paket installieren

rpm --install ./check-mk-free-2.1.0p20-el8-38.x86_64.rpm

Wenn wir einen haufen depencies Fehler bekommen. Sind die Abbhängigkeiten noch nicht installiert
warning: ./check-mk-free-2.1.0p20-el9-38.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID c4503261: NOKEY
error: Failed dependencies:
       dialog is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       freeradius-utils is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       graphviz-gd is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       libgsf is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       perl-IO-Zlib is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       perl-Locale-Maketext-Simple is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       perl-Net-Ping is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       poppler-utils is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       rpm-build is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       rsync is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       time is needed by check-mk-free-2.1.0p20-el9-38.x86_64
       uuid is needed by check-mk-free-2.1.0p20-el9-38.x86_64

Nun mit dem Paketmanger dnf installieren, der installiert die Abbhängigkeiten gleich mit.

dnf install check-mk-free-2.1.0p20-el8-38.x86_64.rpm

Sollte da folgender Fehler kommen:

CentOS Linux 8 - AppStream                                                              157  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Cent OS 8, ist eigentlich End of Life. Nun die Repo austauschen um das Cent OS 8 zu aktualisieren.

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

Nun den DNF Befehl nochmals ausführen und alle Abhängigkeiten werden mit installiert.
Ausgabe:

[root@catl02v406 ~]# dnf install check-mk-free-2.1.0p20-el8-38.x86_64.rpm
CentOS Linux 8 - AppStream                                                               11 MB/s | 8.4 MB     00:00
CentOS Linux 8 - BaseOS                                                                  15 MB/s | 4.6 MB     00:00
CentOS Linux 8 - Extras                                                                 124 kB/s |  10 kB     00:00
CentOS Linux 8 - PowerTools                                                             8.6 MB/s | 2.3 MB     00:00
ICINGA (stable release for epel)                                                         61 kB/s | 2.9 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                   53 kB/s |  30 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                  1.1 MB/s | 733 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                           45 kB/s |  24 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64
....


Upgraded:
  elfutils-libelf-0.185-1.el8.x86_64                elfutils-libs-0.185-1.el8.x86_64   graphviz-2.40.1-43.el8.x86_64   ima-evm-utils-1.3.2-12.el8.x86_64     openssl-1:1.1.1k-5.el8_5.x86_64   openssl-devel-1:1.1.1k-5.el8_5.x86_64
  openssl-libs-1:1.1.1k-5.el8_5.x86_64              python3-rpm-4.14.3-19.el8.x86_64   rpm-4.14.3-19.el8.x86_64        rpm-build-libs-4.14.3-19.el8.x86_64   rpm-libs-4.14.3-19.el8.x86_64     rpm-plugin-selinux-4.14.3-19.el8.x86_64
  rpm-plugin-systemd-inhibit-4.14.3-19.el8.x86_64

Installed:
  bzip2-1.0.6-26.el8.x86_64                                         check-mk-free-2.1.0p20-el8-38.x86_64                                    dialog-1.3-13.20171209.el8.x86_64              elfutils-0.185-1.el8.x86_64
  freeradius-3.0.20-10.module_el8.5.0+1057+66764497.x86_64          freeradius-utils-3.0.20-10.module_el8.5.0+1057+66764497.x86_64          gc-7.6.4-3.el8.x86_64                          gdb-headless-8.2-16.el8.x86_64
  graphviz-gd-2.40.1-43.el8.x86_64                                  guile-5:2.0.14-7.el8.x86_64                                             libatomic_ops-7.6.2-3.el8.x86_64               libbabeltrace-1.5.4-3.el8.x86_64
  libgsf-1.14.41-5.el8.x86_64                                       libipt-1.6.1-8.el8.x86_64                                               nspr-4.32.0-1.el8_4.x86_64                     nss-3.67.0-7.el8_5.x86_64
  nss-softokn-3.67.0-7.el8_5.x86_64                                 nss-softokn-freebl-3.67.0-7.el8_5.x86_64                                nss-sysinit-3.67.0-7.el8_5.x86_64              nss-util-3.67.0-7.el8_5.x86_64
  patch-2.7.6-11.el8.x86_64                                         perl-DBI-1.641-3.module_el8.3.0+413+9be2aeb5.x86_64                     perl-IO-Zlib-1:1.10-420.el8.noarch             perl-Locale-Maketext-1.28-396.el8.noarch
  perl-Locale-Maketext-Simple-1:0.21-420.el8.noarch                 perl-Math-BigInt-1:1.9998.11-7.el8.noarch                               perl-Math-Complex-1.59-420.el8.noarch          perl-Net-Ping-2.55-420.el8.noarch
  perl-Time-HiRes-4:1.9758-2.el8.x86_64                             poppler-20.11.0-3.el8_5.1.x86_64                                        poppler-data-0.4.9-1.el8.noarch                poppler-utils-20.11.0-3.el8_5.1.x86_64
  rpm-build-4.14.3-19.el8.x86_64                                    rsync-3.1.3-12.el8.x86_64                                               time-1.9-3.el8.x86_64                          tpm2-tss-2.3.2-4.el8.x86_64
  uuid-1.6.2-43.el8.x86_64                                          xinetd-2:2.3.15-24.el8.x86_64                                           zstd-1.4.4-1.el8.x86_64

Complete!

Überpüfen ob korrekt installiert wurde

omd version

Die Ausgabe sollte so aussehen

OMD - Open Monitoring Distribution Version 2.1.0p16.cfe

Nun eine Checkmk instanz erstellen. Eine Intenz wäre zum Beispiel Kunde oder ein Projekt.
Checkmk ist sogesehen Multi Mandant fähig.
Jede Instanz kann auch verschiedene Versionsnummern haben.
Z.b Eine Test umgegbung mit der schon Version 2 getestet wird und ne Prod die noch auf 1.6 läuft

Instanz erstellen

omd create <namederinstanz>

Beispiel
omd create monitoring

Hier bekommen wir den Hinweis, das wir zu wenig VCPUs haben.
Ist halt ne Testumgebeung. Gleichzeitig sehen wir hier das Kennwort für den  Webadmin

Ausgabe:

Creating temporary filesystem /omd/sites/monitoring/tmp...OK
Updating core configuration...
Generating configuration for core (type cmc)...

WARNING: The number of configured checkers is higher than the number of available CPUs. To avoid unnecessary context switches, the number of checkers should be limited to the number of CPUs. Recommended number of checkers: 2
Starting full compilation for all hosts Creating global helper config...OK
 Creating cmc protobuf configuration...OK
Executing post-create script "01_create-sample-config.py"...OK
Restarting Apache...OK
Created new site monitoring with version 2.1.0p16.cfe.

  The site can be started with omd start monitoring.
  The default web UI is available at http://checkmk/monitoring/

  The admin user for the web applications is cmkadmin with password: **** wird natürlcih in klartext angezeigt ****
  For command line administration of the site, log in with 'omd su monitoring'.
  After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.

Damit wäre die Installation abgeschlossen.
Wie im oberen text zu sehen.
ist das Kennwort ändern übers Terminal jederzeit möglich.

omd su <instanzname>

dann 
cmk-passwd <nuntername>


Beispiel :

omd su monitoring
cmk-passwd cmkadmin


Nun einloggen über IP/Domain Instanzname
Beispiel https://checkmk.io/monitoring

Screenshot 2022-11-20 at 11-40-05 Checkmk Local site monitoring.png





HTTPS aktivieren mit Selbsigniertem Zertifikat

Da http Verbindungen auch im Internen LAN mitgeschnitten werden können, HTTPS einrichten.
Dazu ein reciht uns ein selbstsigniertes Zertifikat.
Hauptsache, verschlüsselt

Zertifikat anlegen, dazu erstellen wir uns ein neues Verzeichnis

mkdir -p /etc/apache2/ssl

Nun den Privaten Schlüssel erstellen

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem
Unser Beispiel mit höherer sicherheit und 100 Jhre gültigkeit
openssl req -x509 -nodes -days 36500 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem

Nun die Zertifikatsfragen beantworten.
Bei common Name habe ich checkmk.local.lan eingegeben, da eh lokal

enerating a RSA private key
............................................++++
.....................................++++
writing new private key to '/etc/apache2/ssl/apache.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:checkmk.local.lan
Email Address []:


Beschreibung zu oberen Parameters

SSL/TLS-Zertifikat Typ X.509, dient zur Authentifizierung und Verifizierung der Identität eines Hosts oder einer Website (.pem)
RSA-Key mit 2048 Bit, bietet eine sichere Verschlüsselung von Daten (Wir testen mal 4096
days gibt die Gültigkeitsdauer des Zertifikats in Tagen an (Wir enehmen 100 Jahre = 36500 Tage)
– keyout / -out, legt den Speicherpfad des neu generierten privaten Keys und des Zertifikates fest

Neues Zertifikat verlinken

ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0

Nun haben wir eine Verlinkung  des Zertifikat mit Hashnummer

ls /etc/apache2/ssl/
17691c22.0  apache.pem

rechte des Zertifikates anpassen

chmod 600 /etc/apache2/ssl/apache.pem

Überprüfen ob in den Ports die Eintrage für 443 vorhanden sind

cat /etc/apache2/ports.conf
So sollte es aussehen
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


Apache Server neu starten, a2enable ssl und neustarten des apache2

service apache2 reload
a2enmod ssl
service apache2 restart

Eine neue config datei erstellen

nano /etc/apache2/sites-available/ssl.conf

Inhalt

<virtualhost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/html
</virtualhost>

Nun die Site aktivieren und apache neustarten

a2ensite ssl.conf
service apache2 restart

Nun ist die Website per https erreichbar.
Allerings fehlt noch ein redirekt auf https wenn http eingebeben wird

Dazu die /etc/apache2/sites-enabled/000-default.conf editieren

nano /etc/apache2/sites-enabled/000-default.conf

Und folgendes hinzufügen über Serveradmin

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L]

Bildschirmfoto vom 2022-11-20 12-55-44.png

Nun speichern und apach2 neustarten

service apache2 restart






Einrichten Emailversand mit Postfix

Damit auch Emailbenachrichtungen raus gehen, richten wir uns einen Postfix SMTP Server ein.
Abhängigkeiten installieren

apt-get install -y postfix bsd-mailx

NunInternet Site auswählen

Auswahl_836.png

Email Name ausfüllen: checkmk.local.lan

Auswahl_833.png

Nun den Emailempfänger für root eingeben.


Auswahl_837.png

weitere zeile, einfach so lassen

Auswahl_838.png

bei Synchrone Aktualiseirungen... Nein auswählen

Auswahl_839.png

Postfachgröße 0 einfach weiter klicken

Auswahl_841.png

Zeichen für Adresserweiterung

Auswahl_842.png

Alle auswählen

Auswahl_843.png

nun die Postfix datei /etc/postfix/main.cf öffnen

nano /etc/postfix/main.cf

Inhalt unter smtp_tls session diese 3 Zeilen einfügen

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Auswahl_834.png

Nun noch den relyhost anpassen. Bei mir ist es rs001871.fastrootserver.de

Auswahl_835.png

Nun die Password File anlegen

nano /etc/postfix/sasl_passwd

Inhalt, SMTP Host, Benutzername, Kennwort

[rs001871.fastrootserver.de]:587 monitoring@star-module.com *****

Nun die Password File eine Postmap draus machen

postmap /etc/postfix/sasl_passwd

Nun den Postfix-Server neustarten

service postfix restart

Testemail senden

echo "Dies ist eine Test E-Mail vom checkmk-Server" | mailx -s "Test" <ihre_notification_e-mail-adresse@gmail.com>
in der /var/log/mail.log kann man das ergebnis sehen.

hier ein Fehler beispiel, bei der Authentifizierung. Ganz am ende steht authetication failed. So weiß man, okay Kennwort falsch.

Nov 29 11:38:45 checkmk postfix/postfix-script[26039]: starting the Postfix mail system
Nov 29 11:38:45 checkmk postfix/master[26041]: daemon started -- version 3.5.13, configuration /etc/postfix
Nov 29 11:40:53 checkmk postfix/postfix-script[26644]: stopping the Postfix mail system
Nov 29 11:40:53 checkmk postfix/master[26041]: terminating on signal 15
Nov 29 11:40:54 checkmk postfix/postfix-script[27198]: starting the Postfix mail system
Nov 29 11:40:54 checkmk postfix/master[27200]: daemon started -- version 3.5.13, configuration /etc/postfix
Nov 29 11:41:10 checkmk postfix/pickup[27201]: A9F0D2075B: uid=0 from=<root>
Nov 29 11:41:10 checkmk postfix/cleanup[27249]: A9F0D2075B: message-id=<20221129104110.A9F0D2075B@checkmk.local.lan>
Nov 29 11:41:10 checkmk postfix/qmgr[27202]: A9F0D2075B: from=<root@checkmk.local.lan>, size=440, nrcpt=1 (queue active)
Nov 29 11:41:10 checkmk postfix/smtp[27251]: A9F0D2075B: to=<bonkersdeluxe@gmail.com>, relay=rs001871.fastrootserver.de[213.202.247.147]:25, delay=0.24, delays=0.02/0.02/0.21/0, dsn=4.7.8, status=deferred (SASL authentication failed; server rs001871.fastrootserver.de[213.202.247.147] said: 535 5.7.8 Error: authentication failed: authentication failure)

So sähe ein erfolgreicher Versand aus

Jan 20 10:22:03 checkmk postfix/pickup[603605]: 317CB20BB6: uid=0 from=<root>
Jan 20 10:22:03 checkmk postfix/cleanup[606550]: 317CB20BB6: message-id=<20230120092203.317CB20BB6@checkmk.local.lan>
Jan 20 10:22:03 checkmk postfix/qmgr[1102]: 317CB20BB6: from=<root@checkmk.local.lan>, size=443, nrcpt=1 (queue active)
Jan 20 10:22:03 checkmk postfix/smtp[606552]: 317CB20BB6: to=<monitoring@star-module.com>, relay=rs001871.fastrootserver.de[213.202.247.147]:25, delay=0.36, delays=0.02/0.01/0.19/0.14, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 65D0A18806E2)
Jan 20 10:22:03 checkmk postfix/qmgr[1102]: 317CB20BB6: removed




Einrichtung Email mit dem Nullmailer (Eine alternative zu Postfix)

Beschreibung

Der Nullmailer ist ein einfaches SMTP-Forwarding-System, das Sie verwenden können, um Benachrichtigungen aus Checkmk an Ihre E-Mail-Adresse weiterzuleiten. Hier sind die Schritte, wie Sie den Nullmailer in Checkmk einrichten.

Installation


Beispiele für die Verwendung von Parametern in der /etc/nullmailer/remotes

SMTP-Server ohne Authentifizierung:

smtp.example.com smtp --port=25

SMTP-Server mit Authentifizierung (Base64-verschlüsselt):

smtp.example.com smtp --port=587 --user=username --pass=password

SMTP-Server mit Authentifizierung und SSL/TLS (Port 465):

smtp.example.com smtp --port=465 --ssl --user=username --pass=password

SMTP-Server mit Authentifizierung und STARTTLS (Port 587):

smtp.example.com smtp --port=587 --starttls --user=username --pass=password

Bitte beachten Sie, dass Sie für Ihre spezifische SMTP-Konfiguration möglicherweise weitere Optionen oder abweichende Portnummern verwenden müssen. Vergewissern Sie sich daher, dass Sie die richtigen Informationen von Ihrem E-Mail-Provider oder Systemadministrator erhalten, bevor Sie die /etc/nullmailer/remotes-Datei bearbeiten.


Der "auth login"-Parameter

in der /etc/nullmailer/remotes-Datei wird verwendet, um den SMTP-Authentifizierungstyp anzugeben, der beim Verbinden mit dem SMTP-Server verwendet werden soll.

Wenn der SMTP-Server die "SMTP AUTH LOGIN"-Authentifizierung unterstützt, können Sie den "auth login"-Parameter wie folgt verwenden:

smtp.example.com smtp --port=587 --auth-login --user=username --pass=password

Mit dem "auth login"-Parameter wird angegeben, dass die Authentifizierung über die "SMTP AUTH LOGIN"-Methode durchgeführt werden soll, bei der Benutzername und Passwort in Base64-verschlüsselter Form übertragen werden.

Bitte beachten Sie, dass nicht alle SMTP-Server die "SMTP AUTH LOGIN"-Authentifizierung unterstützen. Stattdessen können Sie andere Authentifizierungsmethoden wie "SMTP AUTH PLAIN" oder "SMTP AUTH CRAM-MD5" verwenden, aber das hängt von Ihrem SMTP-Provider ab. Es ist daher wichtig, die richtigen Informationen von Ihrem E-Mail-Provider oder Systemadministrator zu erhalten, bevor Sie die /etc/nullmailer/remotes-Datei bearbeiten.

Fehlersuche

Wenn das Versenden einer Email nicht funktioniert, können Sie in der /var/mail.log nachschauen.
Nullmailer legt die Logdatei dort rein.

Ein Fehlerbeispiel:

cat /var/log/mail.log 
Feb  9 11:22:40 checkmk nullmailer-send[20616]: Rescanning queue.
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Trigger pulled.
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Rescanning queue.
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Starting delivery, 1 message(s) in queue.
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Starting delivery: host: meinedomain.de protocol: smtp file: 1675938242.21098
Feb  9 11:24:02 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Message-Id: <1675938242.567604.21097.nullmailer@checkmk.local.lan>
Feb  9 11:24:02 checkmk nullmailer-send[21099]: smtp: Failed: Server SSL/TLS certificate does not match hostname
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Sending failed: Temporary error in sending the message
Feb  9 11:24:02 checkmk nullmailer-send[20616]: Delivery complete, 1 message(s) remain.
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Rescanning queue.
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Starting delivery, 1 message(s) in queue.
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Starting delivery: host: meinedomain.de protocol: smtp file: 1675938242.21098
Feb  9 11:25:02 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Message-Id: <1675938242.567604.21097.nullmailer@checkmk.local.lan>
Feb  9 11:25:02 checkmk nullmailer-send[21137]: smtp: Failed: Server SSL/TLS certificate does not match hostname
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Sending failed: Temporary error in sending the message
Feb  9 11:25:02 checkmk nullmailer-send[20616]: Delivery complete, 1 message(s) remain.
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Rescanning queue.
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Starting delivery, 1 message(s) in queue.
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Starting delivery: host: meinedomain.de protocol: smtp file: 1675938242.21098
Feb  9 11:27:03 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Message-Id: <1675938242.567604.21097.nullmailer@checkmk.local.lan>
Feb  9 11:27:03 checkmk nullmailer-send[21197]: smtp: Failed: Server SSL/TLS certificate does not match hostname
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Sending failed: Temporary error in sending the message
Feb  9 11:27:03 checkmk nullmailer-send[20616]: Delivery complete, 1 message(s) remain.
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Rescanning queue.
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Starting delivery, 1 message(s) in queue.
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Starting delivery: host: meinedomain.de protocol: smtp file: 1675938242.21098
Feb  9 11:31:03 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Message-Id: <1675938242.567604.21097.nullmailer@checkmk.local.lan>
Feb  9 11:31:03 checkmk nullmailer-send[21328]: smtp: Failed: Server SSL/TLS certificate does not match hostname
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Sending failed: Temporary error in sending the message
Feb  9 11:31:03 checkmk nullmailer-send[20616]: Delivery complete, 1 message(s) remain.

Was ist hier passiert. Der Domainname passt nicht zum Zertifikat. Warum. Wir haben als SMTP-Server
meinedomain.de angeben. Auf eminedomain.de lauscht zwar der smtp Server.
Aber das Zertifikat ist auf mail.meinedomaine.de ausgestellt.
Also muss in der remotesdatei als smtpserver mail.meinedomain.de angeben werden.
Und schon klappt der Versand.
Die Änderungen in der remotes Datei sind sofort wirksam, da nullmailer diese beim senden immer wieder neu einliest.
Also kein Dienst muss neugestartet werden.

Logauzug (Hier sind jetzt zwei Nachrichten drin, weil wir noch eine Email versendet haben) :

Starting delivery, 2 message(s) in queue.
Feb  9 11:42:39 checkmk nullmailer-send[20616]: Starting delivery: host: mail.mainedomain.de protocol: smtp file: 1675938242.21098
Feb  9 11:42:39 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:42:39 checkmk nullmailer-send[20616]: Message-Id: <1675938242.567604.21097.nullmailer@checkmk.local.lan>
Feb  9 11:42:40 checkmk nullmailer-send[21760]: smtp: Succeeded: 250 2.0.0 Ok: queued as 016091881A7C
Feb  9 11:42:40 checkmk nullmailer-send[20616]: Sent file.
Feb  9 11:42:40 checkmk nullmailer-send[20616]: Starting delivery: host: mail.meinedomain.de protocol: smtp file: 1675939359.21759
Feb  9 11:42:40 checkmk nullmailer-send[20616]: From: <root@checkmk.local.lan> to: <dest@gmail.com>
Feb  9 11:42:40 checkmk nullmailer-send[20616]: Message-Id: <1675939359.525504.21758.nullmailer@checkmk.local.lan>
Feb  9 11:42:40 checkmk nullmailer-send[21761]: smtp: Succeeded: 250 2.0.0 Ok: queued as 465411881AAF
Feb  9 11:42:40 checkmk nullmailer-send[20616]: Sent file.
Feb  9 11:42:40 checkmk nullmailer-send[20616]: Delivery complete, 0 message(s) remain.

Zustellung Erfolgreich.






Einrichtung Email mit msmtp (nullmailer alternative auf CentOS)

Beschreibung

msmtp ist ein MTA für deinen reinen Versand über sendmail.
Nullmailer ist auf Debian Systemen verfügbar, allerdings nicht auf CentOS.
Somit machen wir hier von msmtp gebrauch, da es auch in den Paketmanager dnf Verfügbar ist.

Installation

Einloggen auf dem system und den Befehl

dnf install msmtp

Ausgabe, Frage mit y beantworten:

Dependencies resolved.
================================================================================
 Package           Architecture    Version                  Repository     Size
================================================================================
Installing:
 msmtp             x86_64          1.8.10-1.el8             epel          181 k
Installing dependencies:
 libgsasl          x86_64          1.8.0-8.el8              epel          137 k
 libntlm           x86_64          1.6-1.el8                epel           99 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 417 k
Installed size: 1.3 M
Is this ok [y/N]:

Ausgabe:

Downloading Packages:
(1/3): libntlm-1.6-1.el8.x86_64.rpm             876 kB/s |  99 kB     00:00    
(2/3): libgsasl-1.8.0-8.el8.x86_64.rpm          1.1 MB/s | 137 kB     00:00    
(3/3): msmtp-1.8.10-1.el8.x86_64.rpm            1.2 MB/s | 181 kB     00:00    
--------------------------------------------------------------------------------
Total                                           408 kB/s | 417 kB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : libntlm-1.6-1.el8.x86_64                               1/3 
  Installing       : libgsasl-1.8.0-8.el8.x86_64                            2/3 
  Running scriptlet: libgsasl-1.8.0-8.el8.x86_64                            2/3 
  Installing       : msmtp-1.8.10-1.el8.x86_64                              3/3 
  Running scriptlet: msmtp-1.8.10-1.el8.x86_64                              3/3 
  Verifying        : libgsasl-1.8.0-8.el8.x86_64                            1/3 
  Verifying        : libntlm-1.6-1.el8.x86_64                               2/3 
  Verifying        : msmtp-1.8.10-1.el8.x86_64                              3/3 

Installed:
  libgsasl-1.8.0-8.el8.x86_64              libntlm-1.6-1.el8.x86_64             
  msmtp-1.8.10-1.el8.x86_64               

Complete!

Konfiguration

Für eine Systemweite Konfiguration legen wir eine Konfig Datei in /etc/msmtprc an.

nano /etc/msmtprc

Über diese Konfiguration kann aber nur root senden.
Möchte man aber weiteren Benutzern gestatten Emails zu senden, dann muss eine Konfigurationsdatei im Home-Verzeichnis des Benutzers angelegt werden.

nano ~/.msmtprc

Inhaltlich sind die Konfigurationsdateien, System und Benutzer gleich.

Für unsere Konfig loggen wir uns in unsere  Checkmk instanz ein.

omd su catmonitoring

Nun eine beispielkonfig für eine Emailadresse ohne Auth. Aber es kann ganz einfach angeschaltet werden.
Es ist mit Dokumentiert

# Standardwerte für alle Konten setzen
defaults

# SMTP-Port auf 25, 465 oder 587 setzen
port 587

# Immer TLS aktivieren
tls on

#Pfad zur Logfile
logfile /var/log/msmtp.log

# Mail-Konto Name, hier als Liste angegeben
# Endet mit Passwort, und bei einem neuen Eintrag mit Konto-Name
# handelt es sich um ein zweites E-Mail-Konto
account user@email.de

# Hostname oder IP des SMTP-Servers
host <ip_oder_hostname>

# From-Header setzen (wichtig für 1&1, GMX, web.de usw.)
# Mögliche Werte: on oder off
set_from_header on

# Absender-Adresse
from user@email.de

# Authentifizierung nutzen (on oder off)
auth off

# Authentifizierungs-Benutzername, ignorieren, wenn auth off
user user@email.de

# Passwort für das Konto, ignorieren, wenn auth off
password wirhabenkeins

# Standardkonto festlegen
account default: user@email.de

# Lokale Benutzer auf Mail-Adressen mappen
aliases /etc/aliases

Speichern und die Rechte der Datei anpassen.

chmod 600 .msmtprc

Logfile erstellen

touch /var/log/msmtp.log
chmod 666 /var/log/msmtp.log

Sendmailprogram festelegen. Dazu das original sendmail eine Backupkopie speichern.

mv /usr/sbin/sendmail /usr/sbin/sendmail.original

Nun den alias auf sendmail erstellen

ln -s /usr/bin/msmtp /usr/sbin/sendmail

Soll das normale Mail Programm auch umgestellt werden dann die datei .mailrc im Homeverzeichnis bearbeiten

set sendmail="/usr/bin/msmtp"
set message-sendmail-extra-arguments="-a default"

 

Testen

echo "Testtext" | mail -S msmtp -s "Betreff" empfaenger@zieldomain.de

In der Log nachschauen ob geklappt







Einrichtung Email Adresse und Einrichtung Contact Group und testen der Notification

Login in CheckMK

Dann unter Setup -> Users gehen

Auswahl_886.png

Dann bei den Benutzer(n) die Emailadresse hinterlegen und auf speichern klicken

Auswahl_888.png

Nun die Änderungs wirksam werden lassen, oben rechts auf change klicken

Auswahl_889.png

Nun die Änderungen aktivieren

Auswahl_890.png

Wenn nicht schon vorhanden eine neue Gruppe anlegen. Dazu gehen wir unter Setup-> Contact Groups.

Auswahl_891.png

Hier legen wir wenn nicht schon vorhanden die Gruppe all an, indem wir auf add klciken.

Auswahl_892.png

Nun vergeben wir den namen all, als Alias Everthing und unten whole tree auswählen, dann auf speichern klicken

Auswahl_893.png

Nun wieder die Änderungen aktivieren

Auswahl_889.png

Nun die Änderungen aktivieren

Auswahl_890.png

Wenn wir zur Liste zurück gehen sieht das ganze dann so aus

Auswahl_894.png

Nun müssen wir nur noch unseren Benutzer der Contactgruppe hinzufügen. Dazu wieder

Setup -> Users

Auswahl_886.png

Den Benutzer bearbeiten und ganz unter unter Contact Group, die Gruppe auswählen

Auswahl_895.png

Nun wieder speichern und die Änderungen aktivieren.

Auswahl_889.png

Nun die Änderungen aktivieren

Auswahl_890.png

Fertig, nun werden die Meldungen von checkmk an alle Benutzer gesendet die eine Emailadresse hinterlegt haben und in der gruppe Everything sind.

Um zu Testen ob die Notifcation funktioniert, obwohl gar kein Fehler/Warnung vorliegt können wir mit folgenden Schritten tun.
Melden Sie sich auf der Webseite Checkmk-System

Klicken Sie nun auf Service OK in der Übersicht

Auswahl_904.png

Nun auf irgendeinen Service klicken hier CheckMK

Auswahl_907.png

Nun oben im Menü  auf Command und dann Custom Notification anklicken.

Menü_003.png

Nun die Nachricht eingeben und auf Send klicken

Auswahl_905.png

Senden bestätigen, fertig

Auswahl_908.png

Maximum Checkmk checkers anpassen

.AufSetup -> Global settings klicken

Bildschirmfoto vom 2022-11-20 17-09-07.png

Dann auf Maximum concurrent Checkmk checkers klicken

Bildschirmfoto vom 2022-11-20 17-09-28.png

Und den wert auf die ANzahl vorhandener CPU - 1 setzen.
Beispiel 4 Cores - 1. Den Wert 3 setzen

Bildschirmfoto vom 2022-11-20 17-09-49.png


Auf change open rechts klicken

Bildschirmfoto vom 2022-11-20 17-13-37.png

Auf activiate on selected sites klicken

Bildschirmfoto vom 2022-11-20 17-14-19.png

Fertig

Bildschirmfoto vom 2022-11-20 17-14-34.png

API User Einrichten

Unter Users das  API Kennwort für den Benutzer automation ändern bzw. festlegen.

Dazu unter Setup -> Users

image-1674389907451.png

Dann in der Liste auf den Stift beim Benutzer automation klicken.

image-1674389941935.png

Nun ein neues secret generieren. Dazu auf den grünen würfel klicken. Dann wird das neue Kennwort im Textfeld angezeigt.
Dieses rauskopieren und abspeichern in einem Passwordsafe zum beispiel. Dieses wird für die Agents gebraucht.
Dazu aber später.

image-1674389992857.png

Nun auf Save klicken

image-1674390032749.png

Und die changes übernehmen

image-1674390053966.png

Und auf activate  on selected site klicken

image-1674390091961.png

Erledigt

image-1674390113526.png

Check MK Plugins / Extensions - Exchange (mpk)

Packages downloaden und installieren

Es gibt im Checkmk Exchange verschiedene Plugins / Extensions die man nutzen kann.

https://exchange.checkmk.com

Suchbegriff eingeben und nun sehen wir links openvpn clients, dort drauf klicken

Auswahl_844.png



und dann auf herunterladen klicken.

Auswahl_845.png

Nun befindet sich die Datei im Downloadordner.

mpk können auf zwei Arten installiert werden:

- Über die GUI (Nur Enterprise Edition)
- Übers Terminal



Installations übers Terminal bzw. MKP auf dem Terminal:

Installation eines Packages, dazu die downgeloade mkp per scp z.b ins /tmp Verzeichnis auf den checkmk server übertragen
oder den link von cer exchange Seite kopieren und per wget auf den server ins /tmp Verzeichnis holen.
Wie beliebt.
ich machs per wget

cd /tmp
wget https://exchange.checkmk.com/packages/openvpn-clients/897/openvpn_clients-0.4.mkp

Ausgabe:

Wird in »openvpn_clients-0.4.mkp« gespeichert.

openvpn_clients-0.4.mkp                                     100%[=========================================================================================================================================>]   3,80K  --.-KB/s    in 0s      

2022-11-21 19:10:45 (212 MB/s) - »openvpn_clients-0.4.mkp« gespeichert [3893/3893]

Nun liegt unser Package im /tmp Verzeichnis mit dem Namen
openvpn_clients-0.4.mkp 


Nun in die OMD instaz wo das Plugin installiert werden soll einloggen:

omd su <instanzname>

beispiel : omd su monitoring

Programmhilfe, der befehl lautet mkp ohne Parameter :

OMD[mysite]:~$ mkp
Usage: check_mk [-v] -P|--package COMMAND [ARGS]

Available commands are:
   create NAME      ...  Collect unpackaged files into new package NAME
   pack NAME        ...  Create package file from installed package
   release NAME     ...  Drop installed package NAME, release packaged files
   find             ...  Find and display unpackaged files
   list             ...  List all installed packages
   list NAME        ...  List files of installed package
   list PACK.mkp    ...  List files of uninstalled package file
   show NAME        ...  Show information about installed package
   show PACK.mkp    ...  Show information about uninstalled package file
   install PACK.mkp ...  Install or update package from file PACK.mkp
   remove NAME      ...  Uninstall package NAME

   -v  enables verbose output

Package files are located in /omd/sites/mysite/var/check_mk/packages/.

mittel mkp und Parameter install, können wir das Package installieren

mkp install /tmp/openvpn_clients-0.4.mkp 

Wenn alles glatt gelaufen ist bleibt die Ausgabe leer.

root@checkmk:/tmp# omd su monitoring
OMD[monitoring]:~$ mkp install /tmp/openvpn_clients-0.4.mkp 
OMD[monitoring]:~$ 

Überpüfen ob das Package installiert wurde

OMD[monitoring]:~$ mkp list
Ausgabe:

openvpn_clients
OMD[monitoring]:~$ 

Packages installieren über die GUI

im Checkmk einloggen dann auf
Setup -> un den Button show more anklicken

Auswahl_846.png

Nun wird die Liste voller, dann auf Maintenance und Extension Packages

Auswahl_848.png

Nun dort auf Upload  package, über die Extension Seite kann übringes auch der Exchange markt aufgerufen werden.

Auswahl_850.png

Jetzt gibst nochmal den Hinweis das man Pakete nur aus vertrauenswürdigen Quellen hochladen sollte.
Also am besten immer nur Plugins ausm Exchange Markt neben weil die werden von tribe29 überpüft.
Nun über den durchsuchen button die mpk aus dem Doenload Ordner wählen

Auswahl_851.png

Nun ist die Datei im durchsuchen Button.
jetzt kann auf Upload geklickt werden

Auswahl_852.png

Nun ist das Paket unten in der Liste.
Rechts oben auf change klicken

Auswahl_853.png

Und wieder aktivieren

Auswahl_854.png

Nun zurück wieder unter Maintenance -> Extension Packages
Bei der Extension die wie aktivieren wollen auf den Stecker klicken

Auswahl_855.png

Nun steht es oben in der Liste und wieder die changes bestätigen

Auswahl_856.png

Fertig installiert

Packages entfernen

Übers Terminal


Übers Terminal wieder in die OMD einloggen.


Mit dem Befehl mkp list den Package namen auflisten lassen, den man entfernen möchte. Diesen merken oder kopieren

MD[monitoring]:~$ mkp list
openvpn_clients

Nun mit folgendem befehl das Package wieder entfernen, wird nix zurücggeben, war es erfolgreich.

OMD[monitoring]:~$ mkp disable openvpn_clients

Packages auflisten lassen.
Wenn es das einzige war, ist die Liste leer ansonsten ist nur unser Package aus der Liste verschwunden.

Nun noch übrig gebliebene Dateien wegräumen.
unter

/omd/sites/<instanzname>/local/lib/check_mk/base/plugins/agent_based/
/omd/sites/monitoring/local/share/check_mk/checks/
/omd/sites/monitoring/local/share/check_mk/agents/plugins/
/omd/sites/monitoring/local/share/check_mk/web/plugins/wato/
/omd/sites/monitoring/local/lib/check_mk/base/cee/plugins/bakery/

liegen eventuell noch reste von packages, die gelöscht werden müssen.
Bei den openvpn_clienst plugins sind es die

openvpn_clients.py
openvpn_clients
openvpn_clients_cee.py

in den jeweiligen Verzeichnissen

Diese einfach löschen

rm /omd/sites/monitoring/local/lib/check_mk/base/plugins/agent_based/openvpn_clients.py
rm /omd/sites/monitoring/local/share/check_mk/checks/openvpn_clients
rm /omd/sites/monitoring/local/share/check_mk/agents/plugins/openvpn_clients
rm /omd/sites/monitoring/local/share/check_mk/web/plugins/wato/openvpn_clients_cee.py
rm /omd/sites/monitoring/local/lib/check_mk/base/cee/plugins/bakery/openvpn_clients.py


Über die GUI

Im Webfrontend einloggen -> Maintenence -> Extensian Packages gehen

Dort auf das Rote x bei aktiviertem Plugin klicken was entfernt werden soll.

Auswahl_857.png

Nun sieht die Liste so aus, und die changes wieder bestätigen

Auswahl_858.png

Nun auf die Mülltonne klicken

Auswahl_853.png

Frage ob wirklich entfernen mit ja beantworten

Auswahl_860.png

Nun ist das Plugin vollständig deinstalliert

Auswahl_861.png