# ElasticSearch
###### tags:`support` `elasticsearch`
## Ports
### Automate 1
Direct ES Port: 9200
ES Gateway Port: 8080
```bash
export ES_PORT=9200
```
### Automate 2
Direct ES Port: 10141
ES Gateway Port: 10144
```bash
export ES_PORT=10144
```
## Common commands
### Getting more info about ES indices
```bash
# General health
curl -s http://localhost:10144/_cat/health?v
# Index list
curl http://localhost:$ES_PORT/_cat/indices?v
```
### Deleting specific indices
```bash
curl -XDELETE http://localhost:$ES_PORT/$INDEX
```
### Fix failed shard allocations
```bash
# see the current status
curl -XGET localhost:$ES_PORT/_cluster/allocation/explain?pretty
# find the failed shards and why
curl -XGET localhost:$ES_PORT/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED
# force a flush of the state
INDEX=insights-2018.06.03 curl -XPOST localhost:$ES_PORT/$INDEX/_flush?force
# reroute failed shards
curl -XPOST localhost:$ES_PORT/_cluster/reroute?retry_failed
```
### Get all results
```bash
INDEX=compliance-latest-1 curl -XGET 'localhost:$ES_PORT/$INDEX/_search?size=5000' -d '
{
"query" : {
"match_all" : {}
}
}' > es_results.json
```
### Check disk usage
Check the current disk usage for all nodes in the cluster
```bash
curl -XGET 'localhost:$ES_PORT/_cat/allocation?v&pretty'
```
## Automate 1
### Create elastic search lock
This may be needed if you see an error in the reaper similiar to
> 2017-10-29T20:45:02-05:00] ERROR: Elasticsearch lock index not created. Please run 'automate-ctl reconfigure'
Create the lock!
1. `curl -XPUT 'http://localhost:8080/elasticsearch/.locky'`
2. `automate-ctl reconfigure`
### Check for the health of indexes
```bash
curl -XGET 'http://localhost:9200/_cat/health?v'
```
### Check ES Snapshots
**TODO:** Add similar section for Automate 2
```bash
curl -XGET "http://localhost:8080/elasticsearch/_snapshot/_all?pretty"
curl -XGET "http://localhost:8080/elasticsearch/_snapshot/fs-chef-automate?pretty"
```
See all individual snapshots for the fs-chef-automate snapshots
```bash
curl -XGET "http://localhost:8080/elasticsearch/_snapshot/fs-chef-automate/_all?pretty"
```
### Max Fields
```bash
curl -XPUT ' http://localhost:9200/_all/_settings?preserve_existing=true' -d '{ "index.mapping.total_fields.limit" : "100000" }'
```
## Automate 2
### read-only indexes
Remove the readonly flags for indexes
```bash
curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:10144/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
```