**CMK version:2.1.0.p11
**OS version:Ubuntu 20.04
Reproduzierbar
Wenn Network-Scan für Ordner konfiguriert wurde und in der REST API aufgerufen wird:
/check_mk/api/1.0/domain-types/folder_config/collections/all?parent=~&recursive=true&show_hosts=false
Error message:
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
Fehler-Eingrenzung
Offenbar ließt die API den JSON-Output nicht mehr korrekt. Wenn man die Reihenfolge der Einträge in der .wato Datei ändert (siehe unten), funktioniert der REST-Aufruf bis zum nächsten Scan, dann wird die .wato wieder unlesbar für die API.
Fehler:
{‘title’: ‘Clients (9)’, ‘attributes’: {‘parents’: [‘switch1’], ‘network_scan’: {‘ip_ranges’: [(‘ip_network’, (‘172.10.9.0’, 24))], ‘exclude_ranges’: [], ‘scan_interval’: 86400, ‘time_allowed’: [((0, 0), (23, 0))], ‘set_ipaddress’: True, ‘tag_criticality’: ‘discovered’, ‘run_as’: ‘Networkscan’, ‘translate_names’: {‘drop_domain’: True, ‘case’: ‘lower’}}, ‘network_scan_result’: {‘start’: 1661972701.0, ‘end’: 1661972713.0, ‘state’: True, ‘output’: ‘The network scan found 10 new hosts.’}, ‘meta_data’: {‘created_at’: 1635451787.0, ‘created_by’: ‘cmkadmin’, ‘updated_at’: 1661980583.1332564}}, ‘num_hosts’: 40, ‘lock’: False, ‘lock_subfolders’: False, ‘__id’: ‘cf2b6294fec34e57af4a164ee99134d7’}
OK:
{‘title’: ‘Clients (9)’, ‘attributes’: {‘parents’: [‘switch1’], ‘network_scan’: {‘ip_ranges’: [(‘ip_network’, (‘172.10.9.0’, 24))], ‘exclude_ranges’: [], ‘scan_interval’: 86400, ‘time_allowed’: [((0, 0), (23, 0))], ‘set_ipaddress’: True, ‘tag_criticality’: ‘discovered’, ‘run_as’: ‘Networkscan’, ‘translate_names’: {‘drop_domain’: True, ‘case’: ‘lower’}}, ‘meta_data’: {‘created_at’: 1635451787.0, ‘created_by’: ‘cmkadmin’, ‘updated_at’: 1661980583.1332564}}, ‘network_scan_result’: {‘start’: 1661972701.0, ‘end’: 1661972713.0, ‘state’: True, ‘output’: ‘The network scan found 10 new hosts.’}, ‘num_hosts’: 40, ‘lock’: False, ‘lock_subfolders’: False, ‘__id’: ‘cf2b6294fec34e57af4a164ee99134d7’}
Interims-Workaround
Ich habe schnell folgends bash-script gemacht, um in den .wato Dateien das Scan-Result zu entfernen:
#!/bin/bash
FILES=`grep -r network_scan_result ./*|sed -e 's/:.*//g'|grep -v Bina|grep -v repair.sh`
for f in $FILES
do
echo "File: $f"
P1=`cat $f|sed -e s/\'network_scan_result\'[:].*//g|sed -e 's/..$//'`
P2=`cat $f|sed -e s/.*network_scan_result//g|sed -e 's/^[^}]*}//'`
echo "$P1$P2" >$f
done
Weitere Problemstellung
Auch die IP-Adresse in den Scan-Einstellungen bringt seit 2.1.0 einen API-Fehler Syntax Fehler und Response: 500. Allerdings kommen hier im Output noch alle Informationen so dass man einen Workaround im eigenen API-Request einbauen kann.