動態配置集群引數
es集群在執行一段時間後,受資料寫入量波動的影響,集群的一些預設配置可能並不是最優的需要我們動態的調整。es提供了一些可以通過api動態調整的引數。這些可以動態更新的引數在官方文件中往往有「dynamically」加以說明。通過api調整這些配置項有「persistent」和「transitent」兩種生效的時間引數,前者指在集群中永久生效,後者在集群重啟後將不再生效。下面列舉了常用的幾個動態配置引數的使用方法。
檢視集群動態設定資訊
作用:檢視集群的設定,這些設定是除了集群預設設定外的其他配置的設定(預設配置在此api中不會顯示)。
集群影響:api請求
操作方式:集群api
具體操作:
示例:
#檢視集群的動態設定:
curl -xget http://:/_cluster/settings?pretty
排除集群中某些節點
作用:將集群中的某個節點中的所有分片遷移到其他節點。注意:配置這個設定的值後,集群將開始分片遷移,遷移的併發數將不受「恢復併發數」和「重平衡併發數」的控制。
集群影響:
集群將出現長時間的分片遷移,加重其他節點io負擔。
操作方式:集群api
具體操作:
示例:
#通過ip,排除集群中的某個節點:節點ip:10.100.0.11
#通過ip,排除集群中的多個節點:節點ip:10.10.0.11,10.100.0.12
#取消節點排除的限制
curl -xput http://:/_cluster/settings?pretty -d '}'
調整集群磁碟使用限制的上下限
作用:「cluster.routing.allocation.disk.watermark.low」:此項設定是通過監控資料節點磁碟使用的水位來控制新索引分片是否可以分配到某節點。注意:這個設定將不影響新建索引的主分片的分配,即如果集**現有些節點磁碟使用量到達了watermark.low的值,但是這個節點上總分片少於均值,那麼新建索引的主分片將繼續分配到此節點。索引這項設定將不會影響集群功能,只要集群磁碟有空間。
「cluster.routing.allocation.disk.watermark.high」:此項設定是通過監控資料節點磁碟使用的水位來控制是否將某些節點的分片遷移出此節點。當某個節點的磁碟使用超過這個閾值,集群將會隨機(優先主分片,不再有索引更新的分片)選擇分片遷移到其他節點。注意:當節點的磁碟容量達到這個閾值時,節點存在」磁碟被寫滿」的巨大風險。
集群影響:
「cluster.routing.allocation.disk.watermark.low」這個設定會影響到集群的分片分配(某些節點將無法分配新的分片),會影響副本分片的分配(當集群所有節點都達到這個閾值時)使集群狀態變為yellow。
操作方式:集群api
具體操作:
「cluster.routing.allocation.disk.watermark.high」預設值為90%
「cluster.routing.allocation.disk.watermark.low」預設值為85%
以上兩個值都支援如下2種值的設定:80%(百分數),500gb(具體的值,單位支援mb,gb,tb)。注意:「80%」指的是磁碟使用量達到85%後不再分配分片或遷移分片;「500gb」指的是磁碟還空餘500gb時不再分配分片或遷移分片。
示例:
#調整資料節點的低水位值為600gb
#調整資料節點的高水位值為300gb
#取消使用者設定,集群恢復這一項的預設配置
curl -xput http://:/_cluster/settings?pretty -d '}'
調整集群平衡策略
作用:控制集群重平衡的併發數
集群影響:集群會按照自身平衡的演算法將不平衡的分片遷移到合適的節點
操作方式:集群api
具體操作:
示例:
#由於出現長時間的分片遷移,調整集群配置使集群保持現在的分片分配規模
#取消上面的設定,集群使用預設的平衡策略閾值
curl -xput http://:/_cluster/settings?pretty -d '}'
重定向某些節點中的分片
作用:手動遷移某節點的分片到其他節點。
集群影響:集群分片不平衡,有可能觸發集群「重平衡」操作。
操作方式:集群api
具體操作:
示例:
#將10.100.0.11上的索引test_index的分配2重定向到10.100.0.12上
#對10.100.0.11上多個索引的分片重定向到其他機器上
關閉集群索引
作用:關閉集群的索引,使索引無法被更新,無法被查詢
集群影響:索引無法讀寫
操作方式:集群api
具體操作:
示例:
#關閉集群某個索引
#關閉集群所有索引
#開啟集群所有索引
curl -xpost http://:/*/_open?pretty
調整集群恢復併發數
作用:允許在節點上發生多少併發傳出分片恢復
集群影響:加快或減慢集群恢復時間
操作方式:集群api
具體操作:
示例:
#調整集群恢復併發數為0
#取消設定,集群恢復併發數為預設
curl -xput http://:/_cluster/settings?pretty -d'}'
調整集群重平衡併發數
作用:調整集群重平衡的併發數量
集群影響:集群會根據自身演算法將索引分片不均的分片遷移到合適的節點上
操作方式:集群api
具體操作:
預設值為「2」,「0」將禁止集群重平衡
示例:
#調整集群重平衡併發數為4
curl -xput http://:/_cluster/settings?pretty -d'}'
引數需要動態調整的場景
集群擴容
es擁有良好的橫向可擴充套件性,當集群資料寫入壓力不大時,簡單的為集群擴容不會出現任何風險。但是當集群的寫入壓力較大時(例如:20000條message/秒/節點)時在預設集群配置下的擴容是會出現問題的,原因在於當新節點加入集群後集群會啟動重平衡,重平衡期間一旦會有新的索引需要分配分片,新擴容節點也是優先選擇的目標(因為此節點分片數低於均值)。此種情況下新擴容節點的資料負載會數倍於其他資料節點,gc overhead 會頻繁進行,造成資料寫入緩慢和節點假脫離集群的風險。
避免以上問題的風險,在擴容時有如下幾個注意事項:
curl -xput http://:/_cluster/settings?pretty -d'}'
curl -xput http://:/_cluster/settings?pretty -d'}'
集群中乙個資料節點磁碟故障後,集群會將丟失的分片恢復到合適的其他節點上,若集群的寫入壓力較大,資料儲存較多。集群恢復也會提高節點的io負載,出現和集群擴容同樣的風險問題。此時可以調整集群的恢復併發數來控制恢復的併發數量已減低風險。
Elasticsearch集群運維
1 es滾動重啟 準備工作 提前開啟如下資訊,有些api是需要觀察的各項指標 出現問題則停止重啟 其餘是配合檢查的api 檢視集群unassigen shards 原因 curl 集群配置 curl pending tasks curl 集群健康 curl 重啟client node組節點 star...
運維(1)什麼是運維
運維,這裡指網際網路運維,通常屬於技術部門,與研發 測試 系統管理同為網際網路產品技術支撐的4大部門,這個劃分在國內和國外以及大小公司間都會多少有一些不同。乙個網際網路產品的生成一般經歷的過程是 產品經理 需求分析 研發部門開發 測試部門測試 運維部門部署發布以及長期的執行維護。對於初創公司,運維部...
初級運維個人運維筆記
實時抓取並顯示當前系統中tcp 80埠的網路資料資訊,請寫出完整操作命令 tcpdump nn tcp port 80 如何重置mysql root密碼?一 在已知mysql資料庫的root使用者密碼的情況下,修改密碼的方法 1 在shell環境下,使用mysqladmin命令設定 mysqladm...