-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Every service's Details view echoes the JSON path, the source endpoint URL, and the expected pattern (when set). That's usually enough to see whether you targeted the right value or the right endpoint.
As the site user, you can run the agent directly against one endpoint to see the raw section it produces:
~/local/lib/python3/cmk_addons/plugins/json_api/libexec/agent_json_api --helpThe Explorer generates the exact --endpoint … invocation for
your config — copy it and run it to see what the agent extracts before wiring up
the rule.
The JSON path didn't resolve in the response.
- Confirm the path against a real sample (paste it into the Explorer).
- Watch for arrays:
items.countwon't work ifitemsis a list — you needitems[0].countoritems[*].count. - Keys with
.or[must be bracket-quoted:data['foo.bar']. - See JSON paths.
The endpoint request failed or the response wasn't JSON. The error text is in the service output.
- Can the Checkmk server reach the URL? (Not your workstation — the site.)
Try
curlfrom the site host. - TLS error? The cert must be valid, or disable Verify the TLS certificate for that endpoint (insecure — prefer fixing the cert).
- Timeout? Raise the endpoint's Request timeout.
- Auth failure? Check the password-store entry and the auth type.
- Note: other endpoints in the same rule keep reporting normally — only the failing endpoint's services go UNKNOWN.
The expected regex must match the value in full.
- Values are compared as they appear in JSON:
true/false/null, notTrue/False/None. -
UPwon't match"UP "(trailing space) or"Up"(case) — use e.g.(?i)uporUP\s*if needed.
You set levels on a value that isn't numeric. The plugin flags this as WARN so the misconfiguration is visible. Remove the levels or use an expected regex instead.
- Activate changes, then run service discovery on the host.
- Confirm the rule actually applies to that host (folder/conditions).
- Confirm the MKP is enabled:
mkp listshould showjson_apienabled.
If two fields/endpoints produce the same name, the later one gets a (2)
suffix. Give them distinct Service name values instead.
- Ask in Discussions → Q&A — include your Checkmk version, the (redacted) rule, and a sample response.
- Think it's a bug? Open an issue.
- Security concern? See SECURITY.md — report privately, not as a public issue.