Hello everyone,
I'm facing a persistent issue with the Check Point Harmony Endpoint Anti-Malware integration and would appreciate any insights the community might have.
The integration consistently fails to retrieve logs, and the agent logs show a 404 Not Found
error during the log retrieval API call. The strange part is that I have manually replicated the entire API workflow using curl
from the same server, and every step succeeds, including the final data retrieval.
Check Point Harmony Endpoint Integration Version: 1.0.0
The Problem in Detail: The checkpoint_harmony_endpoint.antimalware
data stream fails to ingest data. The agent logs show the following error message, indicating a failure at the final /retrieve
step: POST https://cloudinfra-gw-us[.]portal[.]checkpoint[.]com/app/laas-logs-api/api/logs_query/retrieve: {\"success\":false,\"error\":{\"status\":404,\"name\":\"Not Found\",\"details\":[\"Requested resource could not be found or expired\"]}}
Troubleshooting Steps Performed: I have performed a full manual test of the Check Point API using curl
, and every step was successful. This seems to rule out issues with credentials, permissions, network connectivity, firewalls, or proxies.
Here is the successful workflow I replicated:
1. Authentication: I successfully obtained a Bearer Token.
curl -X POST 'https://cloudinfra-gw-us[.]portal[.]checkpoint[.]com/auth/external' \ -H 'Content-Type: application/json' \ -d '{ "clientId": "xxxxx", "accessKey": "xxxxx" }'
Result: {"success":true, "data":{"token":"xxxxxx", "expires":"..."}}
2. Submit Log Query: Using the token, I successfully submitted a query for Anti-Malware logs and received a taskId
.
curl -X POST 'https://cloudinfra-gw-us[.]portal[.]checkpoint[.]com/app/laas-logs-api/api/logs_query' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <TOKEN_FROM_STEP_1>' \ -d '{"filter": "product:\"Anti-Malware\"", "timeframe": {"startTime": "...", "endTime": "..."}}'
Result: {"success":true, "data":{"taskId":"xxxxxxxxxxxxx"}}
3. Check Query Status: I polled the task status using the taskId
and received a "Ready" state with a pageToken
.
curl -X GET 'https://cloudinfra-gw-us[.]portal[.]checkpoint[.]com/app/laas-logs-api/api/logs_query/<TASK_ID_FROM_STEP_2>' \ -H 'Authorization: Bearer <TOKEN_FROM_STEP_1>'
Result: {"success":true, "data":{"state":"Ready", "pageTokens":["xxxxxxx"]}}
4. Retrieve Log Data: Finally, I used the taskId
and pageToken
to retrieve the data, and I successfully received a JSON object containing the log records.
curl -X POST 'https://cloudinfra-gw-us[.]portal[.]checkpoint[.]com/app/laas-logs-api/api/logs_query/retrieve' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <TOKEN_FROM_STEP_1>' \ -d '{"taskId": "<TASK_ID_FROM_STEP_2>", "pageToken": "<PAGETOKEN_FROM_STEP_3>"}'
Result: {"success":true,"data":{"records":[...]}}
Additional Steps Taken:
- I have tried completely removing and re-adding the integration in the agent policy.
- I have confirmed the correct Data Center URL is being used.
My Question: Given that all manual API calls work perfectly, why would the Elastic Agent integration fail at the final log retrieval step with a 404 Not Found
?
Is this a known bug with this integration version, or are there any other internal configuration parameters (e.g., in the advanced YAML settings) that could be causing this discrepancy between the manual tests and the agent's execution?
Thank you in advance for any help or suggestions.