# Installation Agent für andere Betriebsysteme ohne systemd / xinetd (Anbindung per ssh) tar.gz

#### Beschreibung

Es gibt Systeme auf denen gibt es kein Systemd und xinetd.  
Der Checkmk Service lauscht normalerweise auf einen TCP Port.  
Da es aber keine Services ohne xinetd und systemd gibt, gibt es eine weitere Methode.  
und zwar das abrufen des Agents über ssh.  
Allerdings funktioniert für diese Methode die Agnet Bakery natürlich nicht.

#### Agents für die Hosts installieren / entpacken  


Auf dem zu überwachenden des Host wo der Agent installiert werden soll, ein Verzeichnis checkmk\_setup im root verzeichnis erstellen

```
mkdir -p /root/checkmk_setup
```

Nun mit dem Webbrowser auf dem Checkmk Server einloggen und dann  
Dazu auf Setup -&gt; Agents -&gt; Windows, Linux, Solaris , AIX anklicken

[![Bildschirmfoto vom 2022-11-20 13-31-39.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-11/scaled-1680-/KetSNK6JnkWmWI1E-bildschirmfoto-vom-2022-11-20-13-31-39.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-11/KetSNK6JnkWmWI1E-bildschirmfoto-vom-2022-11-20-13-31-39.png)

Nun auf tar gz bei Linux mit dem gelben Symbol anklicken und downloaden

[![Bildschirmfoto vom 2022-11-20 13-33-01.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-11/scaled-1680-/1zEYD4reiSoCI2Eo-bildschirmfoto-vom-2022-11-20-13-33-01.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-11/1zEYD4reiSoCI2Eo-bildschirmfoto-vom-2022-11-20-13-33-01.png)

Nun per scp die Datei auf den zu überwachenden Server ins Home Verzeichnis von root/checkmk\_stup übertragen check\_mk übertragen

```
​scp Downloads/check-mk-agent_2.1.0p16-d88c216c6ad53a29.tar.gz root@192.168.0.30:/root/checkmk_setup
```

Nun die check-mk-agent\_2.1.0p16-d88c216c6ad53a29.tar.gz tar auf dem zu überwachendem Host entpacken

```
tar -xf check-mk-agent_2.1.0p16-d88c216c6ad53a29.tar.gz -C /
```

SSH Schlüssel falls nicht schon vorhanden auf der Checkmkinstanz erstellen

Auf dem Checkmk server inloggen.  
Dann in die instanz einloggen

```
omd su <instanzname>

Beispiel
omd su monitoring
```

Nun den Schlüssel erstellen ohne passphrase

```
ssh-keygen -t ed25519
```

Ausgabe

```
OMD[monitoring]:~$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/omd/sites/monitoring/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /omd/sites/monitoring/.ssh/id_ed25519.
Your public key has been saved in /omd/sites/monitoring/.ssh/id_ed25519.pub.
The key fingerprint is:
cc:87:34:d2:ed:87:ed:f7:1b:ec:58:1f:7c:23:00:e2 monitoring@mycmkserver
The key's randomart image is:
+--[ED25519  256--+
|                 |
|       . .       |
|      ..+..      |
|      .=.+.o     |
|       ES +.o    |
|         . o. o  |
|            ...B.|
|             .=.*|
|             . o+|
+-----------------+
```

Die Schlüssel liegen dann im .ssh Verzeichnis des Monitoring Verzeichnisses.  
Dateien anzeigen

```
ll .ssh
```

Ausgabe

```
OMD[monitoring]:~$ ll .ssh
total 8
-rw------- 1 monitoring monitoring 1679 Feb 20 14:18 id_ed25519
-rw-r--r-- 1 monitoring monitoring  398 Feb 20 14:18 id_ed25519.pub
```

Der private Schlüssel heißt `id_ed25519` und ist nur für den Instanzbenutzer lesbar (`-rw-------`) — und das ist auch gut so! Der öffentliche Schlüssel `id_ed25519.pub` sieht etwa so aus:

Ausgabe:

```
OMD[monitoring]:~$ cat .ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGb6AaqRPlbEmDnBkeIW3Q6Emb5lr2QEbWEQLmA5pb48 monitoring@mycmkserver
```

Nun auf dem zu überwachendem Host in einer zweiten SSH-Sitzung einloggen.  
und die authorized\_keys Datei bearbeiten

```
nano /root/.ssh/authorized_keys
```

Dort am ende den öffentlichen Schlüssel eintragen.  
Davor aber noch ein command, der dient dazu, das nur der Agent aufgerufen werden kann und auch gleichzeitig beim einloggen aufgerufen wird.  
Die ganze zeile in der authorized\_keys Datei sähe dann so aus

```
command="/usr/bin/check_mk_agent" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGb6AaqRPlbEmDnBkeIW3Q6Emb5lr2QEbWEQLmA5pb48 monitoring@mycmkserver
```

Nun ausloggen.

#### Testen der Verbindung

Nun auf dem Checkmkserver wieder in die instanz einloggen, wenn nicht noch von der vorherigen Sitzung eingeloggt

```
omd su <instanzname>

Beispiel
omd su monitoring
```

Nun einfach ssh root@&lt;iphostname&gt; und den Fingerprint des Schlüssels mit der Eingabe von `yes` bestätigen.  
Der Fingerprint wird nur beim ersten mal abgefragt.

```
 ssh root@<ipfromtargetserver> 
```

Ausgabe

```
OMD[monitoring]:~$ ssh root@myhost23
The authenticity of host 'myhost23 (10.11.12.13)' can't be established.
ECDSA key fingerprint is SHA256:lWgVK+LtsMgjHUbdsA1FK12PdmVQGqaEY4TE8TEps3w.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
<<<check_mk>>>
Version: 2.1.0b6
AgentOS: linux
Hostname: myhost123
AgentDirectory: /etc/check_mk
DataDirectory: /var/lib/check_mk_agent
SpoolDirectory: /var/lib/check_mk_agent/spool
PluginsDirectory: /usr/lib/check_mk_agent/plugins
LocalDirectory: /usr/lib/check_mk_agent/local
<<<df>>>
```

fertig, Verbindung steht.

#### Einbinden des Hosts in Checkmk

Nun da die SSH Verbindung hergestellt ist, muss jetzt die SSH verbindung im Host in Checkmk eingetragen werden.  
Dazu in der Weboberfläche von check mk gehen, den Host anlegen wenn noch nicht geschehen.  
Sollte der Host schon bestehen. Kann das anlegen natürlich übersprungen werden.  
Wichtig ist nur das in den Host Einstellungen folgendes gemacht ist

##### Hostanpassen

Dazu wieder auf Setup -&gt; Hosts

[![Auswahl_007.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/stYodfwDLA47phOb-auswahl-007.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/stYodfwDLA47phOb-auswahl-007.png)

Nun auf edit Host für den Host den man editieren will gehen (Stift)

[![Auswahl_010.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/NBeGFGj4EDCg5fc7-auswahl-010.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/NBeGFGj4EDCg5fc7-auswahl-010.png)

Nun unter Monitoring Agents / API intergation: API integrations if configured, else Checkmk agent auswählen  
  
[![Auswahl_013.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/W1fvGFo9zLAgYRcY-auswahl-013.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/W1fvGFo9zLAgYRcY-auswahl-013.png)

Wenn die Einstellungen beim Host getätigt sind  
Geht es weiter auf : Setup -&gt; Agents -&gt; Other integrations

[![Auswahl_001.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/k1n7RWnCB48Mgiyr-auswahl-001.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/k1n7RWnCB48Mgiyr-auswahl-001.png)

-&gt; Custom integrations -&gt; Individual program call instead of agent access klicken

[![Auswahl_002.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/DWhOO2JH7rUpZrsO-auswahl-002.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/DWhOO2JH7rUpZrsO-auswahl-002.png)

Nun auf Add rule klicken

[![Auswahl_003.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/F2VrnpKKUutvHOTZ-auswahl-003.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/F2VrnpKKUutvHOTZ-auswahl-003.png)

Hier nun folgende Sachen ausfüllen:

Description : Agent connection through SSH  
Command to Execute : ssh -T root@$HOSTADDRESS$  
Explicit Hosts: unser(e) Server die, die Verbindung über SSH aufbauen sollen.

Hinweis: Wir nutzen hier als Variable die $HOSTADDRESS$ dies bedeutet, dazu zum verbinden die IP vom Host genommen wird.  
nun auf save klicken.

[![Auswahl_011.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/mpkclzlZbknPPNbx-auswahl-011.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/mpkclzlZbknPPNbx-auswahl-011.png)

 Nun wieder oben rechts auf change klicken

[![Auswahl_005.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/LOSFEhnJHvuHCFjW-auswahl-005.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/LOSFEhnJHvuHCFjW-auswahl-005.png)

Nun auf activate on selected sites

[![Auswahl_006.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/EP8YDDMnDtqSgPcY-auswahl-006.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/EP8YDDMnDtqSgPcY-auswahl-006.png)

Nun wieder auf Setup -&gt; Hosts

[![Auswahl_007.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/stYodfwDLA47phOb-auswahl-007.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/stYodfwDLA47phOb-auswahl-007.png)

Nun auf edit Services für den Host gehen (gelber Würfel)

[![Auswahl_008.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/cNNZqlVISbG9lsj3-auswahl-008.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/cNNZqlVISbG9lsj3-auswahl-008.png)

Nun wenn gewünscht über das X Services deaktivieren, die NICHT überwacht werden sollen.  
Soll alles übernommen werden einfach auf Accept all

[![Auswahl_012.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/scaled-1680-/bZNzwXwkWQHJyF1C-auswahl-012.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-02/bZNzwXwkWQHJyF1C-auswahl-012.png)

Fertig