Eigenes Script in Wato nicht zu sehen

Hi,

habe ein Script gebaut aber sehe dieses nicht in Wato.

Ich habe eine Ausgabe wenn ich es manuell ausführe und auch mittels cmk -d. Leider sehe ich in Wato nichts. Keine Fehlermeldung aber auch keinen Output. Beim Host ist Configured API Integrations and Checkmk agent aktiviert.

Hat jemand einen Tipp?

Hier das Script:

#!/usr/bin/env python3
import paramiko
import sys
import time

HOST = sys.argv[1]
USER = sys.argv[2]
PASSWORD = sys.argv[3]

COMMAND = “show radius status\n”

try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(
    HOST,
    username=USER,
    password=PASSWORD,
    timeout=10,
    look_for_keys=False,
    allow_agent=False,
)

shell = ssh.invoke_shell()
time.sleep(1)

# Clear banner / login noise
if shell.recv_ready():
    shell.recv(65535)

shell.send(COMMAND)
time.sleep(2)

output = ""
while shell.recv_ready():
    output += shell.recv(65535).decode(errors="ignore")

ssh.close()

output = output.lower()

if "connected" in output:
    print("OK - RADIUS connected")
    sys.exit(0)
elif "init" in output:
    print("WARN - RADIUS initializing")
    sys.exit(1)
else:
    print("CRIT - RADIUS not connected")
    sys.exit(2)

except Exception as e:
print(f"CRIT - SSH error: {e}")
sys.exit(2)

Habe den Fehler gefunden.
Ich hatte das Script unter Individual program call instead of agent access eingebunden. Habe eine andere Regel gefunden bei der es funktioniert: Integrate Nagios plug-ins.

1 Like

Mit der Ausgabe und den Exit-Codes folgt es der Nagios Pkugin API. Damit kann es entweder als aktiver Check eingebunden werden, das hast Du ja bereits gefunden.
Oder es wird auf dem überwachten Host vom Agenten per MRPE gestartet.

Ein Datenquellenprogramm bzw Spezialagent muss Agentendaten ausgeben, für die es dann wieder entsprechende Checkplugins geben muss.

Die dritte Möglichkeit, eigene Checks zu bauen, ist ein Skript, dass eine Ausgabe für Local Checks produziert.