User Tools

Site Tools


elasticsearch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
elasticsearch [2018/01/18 16:31]
k2patel
elasticsearch [2021/01/25 23:41] (current)
k2patel [Quick Commands]
Line 1: Line 1:
 ====== Elasticsearch ====== ====== Elasticsearch ======
  
 +==== Quick Commands ====
 +== Check Cluster Health ==
 +<code bash>
 +curl -XGET '​http://​localhost:​9200/​_cluster/​health?​pretty=true'​
 +</​code>​
 +
 +== List all Indexes ==
 +<code bash>
 +curl http://​localhost:​9200/​_cat/​indices?​v
 +</​code>​
 +
 +== List all shards ==
 +<code bash>
 +curl -XGET '​http://​localhost:​9200/​_cat/​shards'​
 +</​code>​
 +
 +== Unassigned shard | timeout ==
 +**Try restarting**
 +<code bash>
 +curl -XPOST -k https://​admin:<​password>​@<​hostname>:​9200/​_cluster/​reroute?​retry_failed=true --CApath /​etc/​elasticsearch/​root-ca-key.pem
 +</​code>​
 +**List indexes not assigned**
 +<code bash>
 +curl -k --CApath /​etc/​elasticsearch/​root-ca-key.pem -XGET https://​admin:<​password>​@<​hostname>:​9200/​_cat/​shards?​h=index,​shard,​prirep,​state,​unassigned.reason | grep -i UNASSIGNED
 +</​code>​
 +**Detailed information on issue**
 +<code bash>
 +curl -k --CApath /​etc/​elasticsearch/​root-ca-key.pem -XGET https://​admin:<​password>​@<​hostname>:​9200/​_cluster/​allocation/​explain?​pretty
 +</​code>​
 +
 +== Detailed Shard Information ==
 +<code bash>
 +curl -XGET '​http://​localhost:​9200/​_cat/​shards/​filebeat?​pretty=true'​
 +</​code>​
 +
 +== Delete indexes ==
 +<code bash>
 +curl -XDELETE '​http://​localhost:​9200/​*.reindex'​
 +</​code>​
 +
 +== Disk usage issue ==
 +When free disk space fall cluster fails.
 +<code bash>
 +curl -H '​Content-Type:​ application/​json'​ -X PUT -d '{
 +  "​transient":​ {
 +    "​cluster.routing.allocation.disk.watermark.low":​ "​89%",​
 +    "​cluster.routing.allocation.disk.watermark.high":​ "​94%",​
 +   "​cluster.info.update.interval":​ "​1m"​
 +  }
 +}' http://​localhost:​9200/​_cluster/​settings
 +</​code>​
 +
 +
 +==== Templates ====
 +
 +=== Filebeat Template apache2 module ===
 +<code json>
 +{
 +   "​template":​ "​filebeat-*",​
 +   "​version":​ 50001,
 +   "​settings":​ {
 +      "​index.refresh_interval":​ "​5s",​
 +      "​number_of_replicas":​ 0
 +   },
 +   "​mappings":​ {
 +      "​_default_":​ {
 +         "​dynamic_templates":​ [
 +            {
 +               "​message_field":​ {
 +                  "​path_match":​ "​message",​
 +                  "​match_mapping_type":​ "​string",​
 +                  "​mapping":​ {
 +                     "​type":​ "​text",​
 +                     "​norms":​ false
 +                  }
 +               }
 +            },
 +            {
 +               "​string_fields":​ {
 +                  "​match":​ "​*",​
 +                  "​match_mapping_type":​ "​string",​
 +                  "​mapping":​ {
 +                     "​type":​ "​text",​
 +                     "​norms":​ false,
 +                     "​fields":​ {
 +                        "​keyword":​ {
 +                           "​type":​ "​keyword",​
 +                           "​ignore_above":​ 256
 +                        }
 +                     }
 +                  }
 +               }
 +            }
 +         ],
 +         "​properties":​ {
 +            "​@timestamp":​ {
 +               "​type":​ "​date"​
 +            },
 +            "​@version":​ {
 +               "​type":​ "​keyword"​
 +            },
 +            "​beat.hostname":​ {
 +               "​type":​ "​string",​
 +               "​index":​ "​not_analyzed",​
 +               "​ignore_above":​ 1024
 +            },
 +            "​geoip":​ {
 +               "​dynamic":​ true,
 +               "​properties":​ {
 +                  "​ip":​ {
 +                     "​type":​ "​ip"​
 +                  },
 +                  "​location":​ {
 +                     "​type":​ "​geo_point"​
 +                  },
 +                  "​latitude":​ {
 +                     "​type":​ "​half_float"​
 +                  },
 +                  "​longitude":​ {
 +                     "​type":​ "​half_float"​
 +                  }
 +               }
 +            }
 +         }
 +      }
 +   }
 +}
 +</​code>​
 ==== Errors ==== ==== Errors ====
 +
 +== Error on content type header ==
 +<code json>
 +{"​error":"​Content-Type header [application/​x-www-form-urlencoded] is not supported","​status":​406}
 +</​code>​
 +In order to fix issue specify header with your curl XPUT.
  
 [[https://​www.elastic.co/​blog/​strict-content-type-checking-for-elasticsearch-rest-requests|Original Post]] [[https://​www.elastic.co/​blog/​strict-content-type-checking-for-elasticsearch-rest-requests|Original Post]]
-<code bash>+ 
 +<code bash | exmple>
 curl -XPUT '​localhost:​9200/​_settings'​ -H '​Content-Type:​ application/​json'​ -d ' curl -XPUT '​localhost:​9200/​_settings'​ -H '​Content-Type:​ application/​json'​ -d '
 { {
Line 11: Line 146:
     }     }
 }' }'
 +</​code>​
 +
 +==== Rolling Upgrade ====
 +:!: This should work on elastic.co but my steps are mainly taken from the Opendistro.
 +
 +=== Set the cluster in upgrade mode ===
 +<code bash>
 +curl -k -XPOST https://​admin:<​password>​@<​hostname>:​9200/​_ml/​set_upgrade_mode?​enabled=true
 +</​code>​
 +
 +=== Disable sharding ===
 +<code bash>
 +curl -k -H '​Content-Type:​ application/​json'​ -XPUT -d '{
 +"​persistent":​ {
 +    "​cluster.routing.allocation.enable":​ "​primaries"​
 +  }
 +}' https://​admin:<​password>​@<​hostname>:​9200/​_cluster/​settings --CApath /​etc/​elasticsearch/​root-ca-key.pem
 +</​code>​
 +
 +=== Flush / Sync data on all host in cluster ===
 +<code bash>
 +curl -k -XPOST https://​admin:<​password>​@<​hostname>:​9200/​_flush/​synced --CApath /​etc/​elasticsearch/​root-ca-key.pem
 +</​code>​
 +
 +=== Stop / Upgrade / start Services ===
 +<code bash>
 +systemctl stop kibana.service
 +systemctl stop elasticsearch.service
 +dnf install opendistroforelasticsearch-1.12.0 -y
 +dnf install opendistroforelasticsearch-kibana-1.12.0 -y
 +systemctl start elasticsearch.service
 +systemctl start kibana.service
 +</​code>​
 +
 +=== Enable Sharding ===
 +<code bash>
 +curl -k -H '​Content-Type:​ application/​json'​ -XPUT -d '{
 +"​persistent":​ {
 +    "​cluster.routing.allocation.enable":​ "​all"​
 +  }
 +}' https://​admin:<​password>​@<​hostname>:​9200/​_cluster/​settings --CApath /​etc/​elasticsearch/​root-ca-key.pem
 +</​code>​
 +
 +==== Node Information ====
 +=== List all nodes and important information ===
 +:​!:​[[https://​www.elastic.co/​guide/​en/​elasticsearch/​reference/​current/​cat-nodes.html | Document Ref.]]
 +<code bash>
 +curl -XGET -k https://​admin:<​password>​@<​hostname>:​9200/​_cat/​nodes?​v=true\&​h=id,​ip,​port,​v,​m,​hp,​l,​r,​j,​fdc,​fdm
 </​code>​ </​code>​
elasticsearch.1516293113.txt.gz · Last modified: 2020/08/10 02:28 (external edit)