Version: 1.4.9This documentation is for Spitfire 1.4.9.
Infrastructure — Elasticsearch and OpenSearch
Elasticsearch
Quick install
- Copy the command, paste it into the terminal, answer the questions.
curl -fsSL "https://<spitfire>/api/v1/setup/ds/elasticsearch.sh?t=<token>" -o /tmp/sf-elasticsearch.sh && bash /tmp/sf-elasticsearch.sh- When you see
OK: ..., you are done.
Manual install
- Create the read-only role.
curl -u elastic -X PUT 'http://<host>:9200/_security/role/spitfire_monitor' -H 'Content-Type: application/json' -d '{"cluster":["monitor"],"indices":[{"names":["*"],"privileges":["monitor"]}]}'- Create the monitor user.
curl -u elastic -X PUT 'http://<host>:9200/_security/user/spitfire_monitor' -H 'Content-Type: application/json' -d '{"password":"<password>","roles":["spitfire_monitor"]}'- Test the connection.
curl -fsS -u 'spitfire_monitor:<password>' 'http://<host>:9200/_cluster/health' >/dev/null && echo 'OK: spitfire_monitor connected'- Add it in Spitfire → Infrastructure sources → Elasticsearch.
http://<host>:9200 spitfire_monitor <password>OpenSearch (Beta)
Quick install
- Copy the command, paste it into the terminal, answer the questions.
curl -fsSL "https://<spitfire>/api/v1/setup/ds/opensearch.sh?t=<token>" -o /tmp/sf-opensearch.sh && bash /tmp/sf-opensearch.sh- When you see
OK: ..., you are done.
Manual install
- Create the read-only role.
curl -u admin -X PUT 'http://<host>:9200/_plugins/_security/api/roles/spitfire_monitor' -H 'Content-Type: application/json' -d '{"cluster_permissions":["cluster_monitor"],"index_permissions":[{"index_patterns":["*"],"allowed_actions":["indices_monitor"]}]}'- Create the monitor user.
curl -u admin -X PUT 'http://<host>:9200/_plugins/_security/api/internalusers/spitfire_monitor' -H 'Content-Type: application/json' -d '{"password":"<password>"}'- Map the user to the role.
curl -u admin -X PUT 'http://<host>:9200/_plugins/_security/api/rolesmapping/spitfire_monitor' -H 'Content-Type: application/json' -d '{"users":["spitfire_monitor"]}'- Test the connection.
curl -fsS -u 'spitfire_monitor:<password>' 'http://<host>:9200/_cluster/health' >/dev/null && echo 'OK: spitfire_monitor connected'- Add it in Spitfire → Infrastructure sources → OpenSearch.
http://<host>:9200 spitfire_monitor <password>AWS OpenSearch Service
- Turn on Fine-grained access control (internal user database).
AWS console → OpenSearch → <domain> → Security configuration → Fine-grained access control: on, internal user database- Run OpenSearch manual steps 1–3 as the master user.
curl -u '<master-user>' -X PUT 'https://search-<domain>.<region>.es.amazonaws.com/_plugins/_security/api/internalusers/spitfire_monitor' -H 'Content-Type: application/json' -d '{"password":"<password>"}'- Test the connection.
curl -fsS -u 'spitfire_monitor:<password>' 'https://search-<domain>.<region>.es.amazonaws.com:443/_cluster/health' >/dev/null && echo 'OK: spitfire_monitor connected'- Add it as OpenSearch with this address.
https://search-<domain>.<region>.es.amazonaws.com:443 spitfire_monitor <password>Dashboard
Cluster health, unassigned / initializing / relocating shards, pending cluster tasks, JVM heap %, GC time, free disk %, indexing and search rate and latency, thread pool rejections and queue (write, search), circuit breaker trips, query cache hit ratio and the Largest indices table (store size and documents, top 10).
Threshold findings
| Finding | Severity |
|---|---|
| Cluster health is yellow | Warning |
| Cluster health is red | Critical |
| Unassigned shards | Warning |
| More than 20 pending cluster tasks | Warning |
| JVM heap above 85% | Warning |
| JVM heap above 95% | Critical |
| Free disk below 15% | Warning |
| Free disk below 10% | Critical |
| Thread pool rejections in the last 15 minutes | Warning |
| Indexing pressure rejected writes | Warning |
| A circuit breaker tripped | Warning |
| Over 30 s of old-generation GC in 15 minutes | Warning |