1、查看集群健康狀態
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/health?v epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 1552784149 00:55:49 ELK-chaofeng green 3 3 44 22 0 0 0 0 - 100.0%
2、查看集群節點
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/nodes?v ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.16.0.52 13 22 0 0.00 0.06 0.12 mdi - elk02 172.16.0.51 13 97 0 0.00 0.01 0.05 mdi * elk01 172.16.0.53 12 97 0 0.00 0.01 0.05 mdi - elk03
3、查看master節點狀態
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/master?v id host ip node 8Z8Oi4ipRCmaAjKESa2-FA 172.16.0.51 172.16.0.51 elk01
4、查看ES集群安裝了什么插件
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/plugins?v name component version
沒有任何插件此時
5、查看集群索引
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/indices?v health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open logstash-apacheerrorlogs kBCaAVGcQfahh730CXsFyw 5 1 111 0 264kb 132kb green open .newkibana_1 aFFVpEqeTbSxQyJ48Djwyw 1 1 9 0 113.8kb 56.9kb green open .kibana_1 nmZWm-d5TGy6ZqMgvslPEQ 1 1 3 0 24kb 12kb green open logstash-apachelogs VIzul30TTpWltpIrgrPwEA 5 1 77 0 765.9kb 382.9kb green open sys 58eN-9CRRqGt8i-B5Ar-qQ 5 1 0 0 2.5kb 1.2kb green open logstash-apachehahalogs uSmB7bPmR5WbqIscyduvIA 5 1 5767 0 9.2mb 4.6mb
6、自定義顯示節點狀態。
先獲取幫助
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/nodes?help id | id,nodeId | unique node id pid | p | process id ip | i | ip address port | po | bound transport port http_address | http | bound http address version | v | es version
有非常多,想獲取哪個就可以獲取哪個。比如如下所示:
[root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/nodes?h=name,ip,port,jdk elk02 172.16.0.52 9300 1.8.0_201 elk01 172.16.0.51 9300 1.8.0_201 elk03 172.16.0.53 9300 1.8.0_201
7、顯示當前節點的ES信息
[root@ELK-chaofeng01 ~]#curl http://172.16.0.51:9200 { "name" : "elk01", "cluster_name" : "ELK-chaofeng", "cluster_uuid" : "5VIF1_SdQdGbRekuR9q4-A", "version" : { "number" : "6.5.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "9434bed", "build_date" : "2018-11-29T23:58:20.891072Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
看到“you knoe , foe search ” 這表示當前ES安裝成功。
8、安裝插件,最著名的插件是HEAD插件。
查看我之前的博客,有講如何安裝HEAD插件的:https://www.cnblogs.com/FengGeBlog/p/10471710.html
9、添加索引和內容
第一行的“-H Content-Type:application/json” 要帶上去,這是6.x與5.x下的區別,否則不能創建索引成功。
10、查找我們剛剛創建的索引
[root@ELK-chaofeng01 ~]#curl -XGET '172.16.0.51:9200/student/_search?pretty' { "took" : 184, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 1.0, "hits" : [ { "_index" : "student", "_type" : "major", "_id" : "1", "_score" : 1.0, "_source" : { "name" : "Chao feng", "age" : 24, "course" : "English" } } ] } }
在索引的后面添加“_search”來查看指定索引的內容,默認是列出當前所有下的所有內容
11、查找指定索引下的指定內容,比如搜索“English”
[root@ELK-chaofeng01 ~]#curl -XGET '172.16.0.51:9200/student/_search?q="English"&pretty' { "took" : 12, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.2876821, "hits" : [ { "_index" : "student", "_type" : "major", "_id" : "1", "_score" : 0.2876821, "_source" : { "name" : "Chao feng", "age" : 24, "course" : "English" } } ] } }
ES內部會自動進行大小寫轉換,默認是不區分大小寫的。
11.1)HEAD插件上傳
12)對某個索引的某個類型做搜索
[root@ELK-chaofeng01 ~]#curl -XGET '172.16.0.51:9200/student/major/_search?q="English"&pretty' { "took" : 19, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.2876821, "hits" : [ { "_index" : "student", "_type" : "major", "_id" : "1", "_score" : 0.2876821, "_source" : { "name" : "Chao feng", "age" : 24, "course" : "English" } } ] } }
13)案例:對某個索引查看統計的個數
我想統計一下es集群中的某個索引中的“notice”有多少個,我之前采集日志向ES集群發送過去了,當時的日志中的“notice”行數是:
此時我在ES集群中使用搜索技術查看
完全正確,搜索的非常好。上面的默認查找方式是“_all”。
你也可以使用這種技術來切割,“loglevel:notice”,在前面加上冒號,表示對特定的類型進行匹配
要學會使用“q=Type:WORD”的方式來查詢。
14)做簡單查詢
15)做復雜處理,注意寫的格式;復雜處理的標志就是“query_string”。
注意加引號。
分片定義:
集群(cluster): 由一個或多個節點組成, 並通過集群名稱與其他集群進行區分 節點(node): 單個ElasticSearch實例. 通常一個節點運行在一個隔離的容器或虛擬機中 索引(index): 在ES中, 索引是一組文檔的集合 分片(shard): 因為ES是個分布式的搜索引擎, 所以索引通常都會分解成不同部分, 而這些分布在不同節點的數據就是分片. ES自動管理和組織分片, 並在必要的時候對分片數據進行再平衡分配, 所以用戶基本上不用擔心分片的處理細節. 副本(replica): ES默認為一個索引創建5個主分片, 並分別為其創建一個副本分片. 也就是說每個索引都由5個主分片成本, 而每個主分片都相應的有一個copy. 對於分布式搜索引擎來說, 分片及副本的分配將是高可用及快速搜索響應的設計核心.主分片與副本都能處理查詢請求, 它們的唯一區別在於只有主分片才能處理索引請求. 在上圖示例中, 我們的ElasticSearch集群有兩個節點, 並使用了默認的分片配置. ES自動把這5個主分片分配到2個節點上, 而它們分別對應的副本則在完全不同的節點上. 對,就這是分布式的概念. 請記住, 索引的number_of_shards參數只對當前索引有效而不是對整個集群生效.對每個索引來講, 該參數定義了當前索引的主分片數(而不是集群中所有的主分片數).
關於副本
副本對搜索性能非常重要, 同時用戶也可在任何時候添加或刪除副本. 正如另篇文章所述, 額外的副本能給你帶來更大的容量, 更高的呑吐能力及更強的故障恢復能力. 謹慎分配你的分片 當在ElasticSearch集群中配置好你的索引后, 你要明白在集群運行中你無法調整分片設置. 既便以后你發現需要調整分片數量, 你也只能新建創建並對數據進行重新索引(reindex)(雖然reindex會比較耗時, 但至少能保證你不會停機). 主分片的配置與硬盤分區很類似, 在對一塊空的硬盤空間進行分區時, 會要求用戶先進行數據備份, 然后配置新的分區, 最后把數據寫到新的分區上. 2~3GB的靜態數據集 分配分片時主要考慮的你的數據集的增長趨勢. 我們也經常會看到一些不必要的過度分片場景. 從ES社區用戶對這個熱門主題(分片配置)的分享數據來看, 用戶可能認為過度分配是個絕對安全的策略(這里講的過度分配是指對特定數據集, 為每個索引分配了超出當前數據量(文檔數)所需要的分片數). Elastic在早期確實鼓吹過這種做法, 然后很多用戶做的更為極端--例如分配1000個分片. 事實上, Elastic目前對此持有更謹慎的態度. 稍有富余是好的, 但過度分配分片卻是大錯特錯. 具體定義多少分片很難有定論, 取決於用戶的數據量和使用方式. 100個分片, 即便很少使用也可能是好的;而2個分片, 即便使用非常頻繁, 也可能是多余的. 要知道, 你分配的每個分片都是有額外的成本的: 每個分片本質上就是一個Lucene索引, 因此會消耗相應的文件句柄, 內存和CPU資源 每個搜索請求會調度到索引的每個分片中. 如果分片分散在不同的節點倒是問題不太. 但當分片開始競爭相同的硬件資源時, 性能便會逐步下降 ES使用詞頻統計來計算相關性. 當然這些統計也會分配到各個分片上. 如果在大量分片上只維護了很少的數據, 則將導致最終的文檔相關性較差