Hello Shreya,
Thanks for the outputs. This is a much clearer explanation for the behavior you have been seeing.
The main issue is the Wazuh indexer hitting its JVM parent circuit breaker:
circuit_breaking_exception
[parent] Data too large
limit: 972.7mb
real usage: ~1GB
statusCode: 429
Too Many Requests
The same error is also appearing during dashboard authentication:
Failed authentication: Error: [circuit_breaking_exception]
That explains why the dashboard can report "Invalid username or password" and then accept exactly the same credentials after a refresh. In those cases the authentication request is being rejected because the indexer is under JVM heap pressure, rather than because the password is necessarily wrong.
It also explains the "Too Many Requests", search errors, and other intermittent internal server errors shown in the dashboard.
Your disk usage looks healthy at only 18%, and the host still has a good amount of available physical RAM, so disk watermarks or overall system memory exhaustion do not appear to be the immediate problem.
The circuit-breaker limit in your log is 972.7 MB. which sets its parent breaker to 95% of the JVM heap, and this suggests the indexer is currently running with approximately a 1 GiB heap. We can try to confirm this with the below query:
sudo grep -E '^-Xm[sx]' /etc/wazuh-indexer/jvm.options
ps -ef | grep '[w]azuh-indexer' | grep -Eo 'Xm[sx][0-9]+[mg]'
Also check whether there are any additional JVM overrides: ls -l /etc/wazuh-indexer/jvm.options.d/ 2>/dev/null
If it confirms:
-Xms1g
-Xmx1g
Please increase to:
-Xms4g
-Xmx4g
The recommendation is that Xms and Xmx are set to the same value, and that should be half of the system RAM for a dedicated indexer. Since this machine also runs the manager and dashboard, starting with 4 GiB gives the indexer significantly more headroom while still leaving memory for the other components.
Back up the file first:
sudo cp /etc/wazuh-indexer/jvm.options /etc/wazuh-indexer/jvm.options.bak
Then update the values and restart: sudo systemctl restart wazuh-indexer
After the restart, confirm the new heap: ps -ef | grep '[w]azuh-indexer' | grep -Eo 'Xm[sx][0-9]+[mg]'
Then monitor for any new breaker errors:
sudo journalctl -u wazuh-indexer --since "10 minutes ago" | grep -i -E "circuit|breaker|data too large|error|warn"
Your test against
127.0.0.1:9200 being refused does not indicate another indexer problem. The service is running, and the dashboard is receiving responses from it, so it may simply be listening on the server's configured IP rather than loopback.
Please check:
grep -E '^[[:space:]]*network.host' /etc/wazuh-indexer/opensearch.yml
sudo ss -lntp | grep ':9200'
Then repeat the health test against the address on which it is actually listening:
curl -k -u admin https://<INDEXER_IP>:9200/_cluster/health?pretty
Once the indexer is stable, please retry the dashboard and API health checks. If the API connection on port 55000 still fails after the circuit-breaker errors have stopped, please let me know.
One other thing, the screenshot you shared contains the admin password in the curl command. I recommend changing that password and avoiding sharing passwords.
Please share the Xms/Xmx output and let me know whether the circuit-breaker messages stop after increasing the heap.