Syntax der HTTP-API

Hallo,
ich stehe vor einem Problem und suche eine Lösung:
Mittels Scripr discover ich mit
curl “http://myserver/mysite/check_mk/webapi.py?action=discover_services&_username=automation&_secret=myautomationsecret” -d ‘request={“hostname”:“myserver123”,“mode”:“fixall”}’
die Services von Hostlisten. Soweit so gut. Sind auf einem Host allerings geclusterte Services vorhanden, erhalte ich einen Fehler:
{“result”: “Check_MK Fehler: Konnte myserver123 nicht inventarisieren: ‘clustered_ignored’”, “result_code”: 1}
Auch der Virtuelle Host, auf dem sich die geclusterten Servicec befindel, lässt sich so nicht discovern. Über WATO ist das kein Problem.
Kennt jemand die Syntax, die ich benötige?
Danke schon mal im Voraus.
Gruß
Sven

Hallo @svbrunne! Dein Fehler scheint kein reiner API Fehler zu sein, manuell kann man ihn auch entdecken. Hast du dein Problem jemals gelöst?

Hallo Robin,
habe dazu leider keine Lösung. Momentan discover ich die gelusterten Services manuell über WATO.

Hallo Robin,
das problem ist mit der Version 2.x lösbar.

habe mit der Rest-Api folgedes Script ( aus der Doku) gekupfert:

#!/bin/bash
HOST_NAME=“CMK-SERVER”
SITE_NAME=“SITE”
API_URL=“https://$HOST_NAME/$SITE_NAME/check_mk/api/1.0”
HOST=$2
ACT=$1 ## values: [‘new’, ‘remove’, ‘fix_all’, ‘refresh’, ‘only_host_labels’]"
USERNAME=“automation”
PASSWORD=“xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
out=$(
curl
-k
–request POST
–write-out “\nxxx-status_code=%{http_code}\n”
–header “Authorization: Bearer $USERNAME $PASSWORD”
–header “Accept: application/json”
–header “Content-Type: application/json”
–data ‘{
“mode”: "’"$ACT"’"
}’
“$API_URL/objects/host/$HOST/actions/discover_services/invoke”)
resp=$( echo “${out}” | grep -v “xxx-status_code” )
code=$( echo “${out}” | awk -F"=" ‘/^xxx-status_code/ {print $2}’)
echo “$resp” | jq
if [[ $code -lt 400 ]]; then
echo “OK”
exit 0
else
echo “Request error”
echo “Syntax: $0 action Host”
echo “action = new | remove | fix_all | refresh | only_host_labels”
exit 1
fi

Ich hoffe es hilft.
Gruß
Sven

1 Like

Wow, danke, dass du nach so langer Zeit noch an den Thread gedacht hast!
Dann scheint es womöglich ein Bug gewesen zu sein. Freut mich, dass es mit einer aktuellen Version funktioniert!