通過配置Elasticsearch執行個體的YML參數,您可以設定允許自動建立索引、刪除索引時指定名稱、開啟Auditlog、開啟Watcher以及進行其他配置。本文介紹如何配置YML參數、CORS訪問、Reindex白名單、Auditlog和Queue的大小。
注意事項
2020年10月起,由於Elasticsearch網路架構調整,導致部分通過reindex方式跨叢集遷移資料的情境受到了限制。如果需要使用reindex方式跨叢集遷移資料,請參見通過執行個體私網打通將自建Elasticsearch資料移轉至阿里雲中的注意事項進行處理。
對於華北3(張家口)和海外地區,由於網路架構調整時間不確定,因此需要提交工單,聯絡Elasticsearch支援人員,校正網路是否可以互連。
修改配置
進入執行個體詳情頁。
在左側導覽列,單擊Elasticsearch執行個體。
在頂部功能表列,選擇資源群組和地區。
在Elasticsearch執行個體列表單擊目標執行個體ID,進入執行個體詳情頁。
進入YML檔案的配置修改頁面。
在左側導覽列,單擊。
在ES叢集配置頁面,單擊YML檔案設定右側的修改配置。
在YML檔案設定對話方塊配置相關參數。
說明如果您需要查看
elasticsearch.yml的內容,可登入Kibana控制台,執行GET _cluster/settings?include_defaults命令。參數
說明
自動建立索引
當Elasticsearch執行個體接收到新文檔後,如果沒有對應索引,是否允許系統自動建立索引。
對應的YML檔案的配置項為action.auto_create_index,預設為false。
Elasticsearch預設不允許自動建立索引,您可以通過以下方式開啟:
重要自動建立的索引可能不符合您的預期,建議您評估後再開啟。
通過控制台叢集配置開啟。該操作為YML靜態配置,會觸發執行個體重啟。
通過動態方式快速開啟(不需要重啟)。登入Kibana控制台,通過以下命令設定允許自動建立索引:
允許自動建立所有索引
PUT /_cluster/settings { "persistent": { "action": { "auto_create_index": "true" } } }重要該方式將開放所有索引的自動建立功能,如果您需要禁止,請將
true改成false。只允許自動建立部分指定索引,如下樣本僅允許自動建立系統索引:
PUT /_cluster/settings { "persistent": { "action": { "auto_create_index": "+.*,-*" } } }
移除索引指定名稱
在刪除索引時是否需要明確指定索引名稱。如果選擇刪除或關閉時索引名稱支援萬用字元,則可以使用萬用字元進行大量刪除索引。索引刪除後不可恢複,請謹慎使用此配置。
對應的YML檔案的配置項為action.destructive_requires_name,預設為true。
Auditlog
開啟後,系統會記錄Elasticsearch執行個體對應的增、刪、改、查等操作產生的審計日誌,該日誌資訊會佔用您的磁碟空間,同時也會影響效能,不建議開啟,請謹慎使用此配置。更多參數說明,請參見配置Auditlog(審計日誌)。
對應的YML檔案的配置項為xpack.security.audit.enabled,預設為false。
開啟Watcher
開啟後,可使用X-Pack的Watcher功能。請注意定時清理.watcher-history*索引,避免佔用大量磁碟空間。
對應的YML檔案的配置項為xpack.watcher.enabled,預設為false。
其他Configure設定
支援的部分配置項如下(以下配置項,如果沒有標識具體適用於哪個Elasticsearch版本,預設相容Elasticsearch 5.x、6.x和7.x版本):
http.cors.enabled
http.cors.allow-origin
http.cors.max-age
http.cors.allow-methods
http.cors.allow-headers
http.cors.allow-credentials
配置Reindex白名單
reindex.remote.whitelist
Elasticsearch 7.x和8.x版本僅支援配置xpack.security.audit.logfile.events.include參數,5.x和6.x版本支援以下參數:
xpack.watcher.enabled
xpack.notification
xpack.security.audit.enabled
xpack.security.audit.index.bulk_size
xpack.security.audit.index.flush_interval
xpack.security.audit.index.rollover
xpack.security.audit.index.events.include
xpack.security.audit.index.events.exclude
xpack.security.audit.index.events.emit_request_body
xpack.security.audit.index.settings.index
LDAP功能
除5.x版本外,其他版本支援:
xpack.security.authc.realms.ldap1
xpack.security.authc.realms.active_directory1
xpack.security.authc.realms.pki1
xpack.security.authc.realms.saml1
xpack.security.authc.realms.kerberos1
xpack.security.authc.token.enabled
thread_pool.bulk.queue_size(適用於5.x及6.x版本)
thread_pool.write.queue_size(適用於6.x、7.x及8.x版本)
thread_pool.search.queue_size
自訂SQL外掛程式配置
xpack.sql.enabled
預設情況下Elasticsearch執行個體會啟用X-Pack內建的SQL外掛程式,如需上傳自訂的SQL外掛程式,請將xpack.sql.enabled設定為false。
強制變更
用於控制是否強制變更YML相關配置,取值如下:
關閉:不會強制變更,可按需選擇變更方式(原地變更或藍綠變更)。系統會校正叢集的健康狀態(例如,節點可用性、分區分配狀態),確保變更操作的安全性。
開啟:強制變更,會忽略叢集的健康狀態(例如,節點故障、分區未分配),可能導致服務在重啟階段不穩定。
變更方式
用於控制通過哪種方式變更YML檔案的配置,取值如下:
說明僅當強制變更參數取值為關閉時,需配置變更方式。
原地變更(預設值):對叢集中所需變更的節點逐個滾動變更。變更過程無需拷貝資料,且時間不受資料規模影響,但會對叢集的效能產生一定影響。
藍綠變更:為叢集添加相同數量的新節點並拷貝資料,然後將業務無縫切換至新節點。變更過程相對平滑但耗時較長,同時,節點的IP也會發生變化。
更多變更方式的詳情,請參見變更方式介紹。
重要配置YML檔案會觸發叢集滾動重啟。如果叢集中的索引有副本且叢集負載正常(CPU使用率在60%左右,堆記憶體使用量率在50%左右,load_1m低於CPU核心數),一般情況下,在重啟過程中可持續對外提供服務。重啟時間長度與叢集規模、資料量及負載情況等有關係,建議在業務低峰期操作。
如果叢集負載過高且索引沒有副本,同時業務中存在大量的寫入或查詢等情境,在叢集變更過程中,業務可能會出現偶發的訪問逾時現象。建議在用戶端訪問指令碼中配置重試機制,以減小對業務的影響。
若執行個體的YML配置存在進行中的藍綠變更(例如,擴容、縮容),且執行個體狀態為生效中,此時如需追加變更(即再次發起其他變更操作),僅支援使用原地變更。您可查看變更記錄,確認YML配置是否存在進行中的藍綠變更。
勾選該操作會重啟執行個體,請確認後操作。單擊確定。
確定後,Elasticsearch執行個體會重啟。重啟過程中,可在工作清單查看進度。重啟成功後,即可完成YML檔案的配置。
配置CORS訪問
通過配置跨域資源共用CORS(Cross-origin resource sharing)訪問,設定是否允許其他域資源下的瀏覽器向Elasticsearch發送請求。您可以在YML檔案配置中,配置CORS訪問,支援配置的參數如下。
表格中的參數是Elasticsearch為支援HTTP協議開放的自訂配置。
表格中的參數僅支援靜態配置。如果您想使配置生效,需要將配置資訊寫入elasticsearch.yml檔案中。
表格中的參數依賴於叢集網路設定(Network settings)。
參數 | 預設值 | 說明 |
http.cors.enabled | false | 設定是否啟用跨域資源訪問(Elasticsearch是否允許其他域資源下的瀏覽器向其發送請求):
|
http.cors.allow-origin | “” | 域資源配置項,可設定接受來自哪些網域名稱的請求。預設不允許接受跨域請求且無配置。支援Regex,例如/https?:\/\/localhost(:[0-9]+)?/,表示可響應符合此正則的請求資訊。 警告 *是合法配置,表示叢集支援來自任意網域名稱的跨域請求,此配置存在安全風險,不建議使用。 |
http.cors.max-age | 1728000(20天) | 瀏覽器可發送OPTIONS請求以擷取CORS配置資訊,此配置項可設定擷取的資訊在瀏覽器中的緩衝時間,單位為秒。 |
http.cors.allow-methods | OPTIONS, HEAD, GET, POST, PUT, DELETE | 要求方法配置項。 |
http.cors.allow-headers | X-Requested-With, Content-Type, Content-Length | 要求標頭資訊配置項。 |
http.cors.allow-credentials | false | 憑證資訊設定項目,設定是否允許回應標頭中返回Access-Control-Allow-Credentials資訊:
|
配置Reindex API白名單
為確保跨叢集資料移轉的安全性,需將ES_2叢集的私網串連地址和通訊連接埠號加入ES_1的Reindex API白名單。
進入ES_1的頁面,點擊配置執行個體私網串連後的修改。在配置執行個體私網串連側邊欄,單擊目標終端節點ID。

在Virtual Private Cloud控制台的終端節點串連頁簽,單擊終端節點ID的
表徵圖,查看終端節點對應的網域名稱。重要需要從網域名稱中去掉可用性區域資訊後,再配置Reindex API白名單。
如完整網域名稱為“ep-bp1****************-cn-hangzhou-i.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com”,需去掉可用性區域資訊,即去掉“-cn-hangzhou-i”,得到最終網域名稱“ep-bp1bp1****************.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com”。

在ES_1的YML檔案中配置Reindex API白名單,白名單為終端節點的網域名稱和通訊連接埠。
reindex: remote: whitelist: >- ep-bp1bp1****************.epsrv-bp1****************.cn-hangzhou.privatelink.aliyuncs.com:9200
配置Auditlog(審計日誌)
Auditlog為審計日誌,預設關閉。查看審計日誌前,需要先開啟Auditlog。開啟後,系統會記錄Elasticsearch執行個體對應的增、刪、改、查等操作產生的日誌。對於審計日誌的開啟、配置和查看,Elasticsearch不同版本執行個體的操作有所不同,具體如下。
關於Auditlog的更多詳細資料,請參見Auditing Security Settings。
7.x及以上版本
進入YML檔案設定面板。
具體操作請參見修改配置。
選中Auditlog參數中的開啟Auditlog,開啟審計日誌。
自訂Auditlog配置。
開啟Auditlog後,您可以在其他Configure設定中調整xpack.security.audit.logfile.events.include參數的配置,樣本如下:
xpack: security: audit: logfile: events: include: >- access_denied,anonymous_access_denied,authentication_failed,connection_denied,tampered_request,run_as_denied,run_as_granted重要7.x及以上版本執行個體僅支援配置xpack.security.audit.logfile.events.include參數。
預設Auditlog配置只會在審計日誌中列印請求被拒絕或失敗的審計日誌,如需擷取請求成功的審計日誌,需要添加access_granted事件。添加後,磁碟將儲存所有訪問資訊,可能會存在磁碟使用率過高的風險,建議您問題排查完後,關閉審計日誌功能。
查看審計日誌(Auditlog)。
5.x及6.x版本
進入YML檔案設定面板。
具體操作請參見YML檔案配置。
選中Auditlog參數中的開啟Auditlog索引,開啟審計日誌。
Auditlog索引的預設配置如下,您可以根據具體業務進行調整。
xpack.security.audit.index.bulk_size: 5000 xpack.security.audit.index.events.emit_request_body: false xpack.security.audit.index.events.exclude: run_as_denied,anonymous_access_denied,realm_authentication_failed,access_denied,connection_denied xpack.security.audit.index.events.include: authentication_failed,access_granted,tampered_request,connection_granted,run_as_granted xpack.security.audit.index.flush_interval: 180s xpack.security.audit.index.rollover: hourly xpack.security.audit.index.settings.index.number_of_replicas: 1 xpack.security.audit.index.settings.index.number_of_shards: 10配置
預設設定
說明
xpack.security.audit.index.bulk_size
1000
當您將多個審計事件分批寫入到一個Auditlog索引中時,可通過該參數,設定寫入事件的數量。
xpack.security.audit.index.flush_interval
1s
控制緩衝事件重新整理到索引的頻率。
xpack.security.audit.index.rollover
daily
控制滾動構建到新索引的頻率,可以設定為hourly、daily、weekly或monthly。
xpack.security.audit.logfile.events.include
access_denied,anonymous_access_denied,authentication_failed, connection_denied,tampered_request,run_as_denied,run_as_granted
控制何種Auditlog事件可以被採集到審計日誌中。目前審計日誌功能僅開放部分地區,詳情請參見使用限制。完整事件類型列表,請參見Audit event types (7.x)。
xpack.security.audit.index.events.include
access_denied, access_granted, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted
控制何種Auditlog事件可以被寫入到索引中,僅5.x和6.x版本的執行個體支援。完整事件類型列表,請參見Audit event types (6.x)。
xpack.security.audit.index.events.exclude
null(預設不處理任何事件)
構建索引過程中,排除的Auditlog事件。
xpack.security.audit.index.events.emit_request_body
false
當觸發明確的事件類型時(例如authentication_failed),是否忽略或包含以REST發送的請求體。
警告當Auditlog中包含RequestBody資訊時,可能會在記錄檔中暴露敏感資訊。
查看審計日誌(Auditlog)。
對於5.x和6.x版本執行個體,當開啟Auditlog後,Auditlog檔案將輸出到Elasticsearch執行個體中,並使用.security_audit_log-*開頭的索引名稱。因此您可以通過在Kibana控制台上查看.security_audit_log-*開頭的索引來查看審計日誌。
重要Auditlog索引會佔用執行個體的儲存空間。由於Elasticsearch不支援自動到期清除策略,因此需要手動清除舊的Auditlog索引。
可選:配置儲存Auditlog的索引分區。
對於5.x和6.x版本執行個體,您可以通過xpack.security.audit.index.settings配置儲存Auditlog的索引分區。以下配置構建Auditlog索引的分區和副本均為1。
xpack.security.audit.index.settings: index: number_of_shards: 1 number_of_replicas: 1說明如果您希望通過傳入配置參數產生Auditlog索引,請在開啟Auditlog索引(設定xpack.security.audit.enabled為true)的同時傳入此配置。否則,Auditlog索引將使用預設的
number_of_shards: 5、number_of_replicas: 1配置。
配置queue大小
通過自訂queue大小,調整文檔寫入和搜尋的隊列大小。您可以在YML檔案配置中,配置queue大小。以下樣本配置文檔寫入和搜尋queue大小為500和1000,實際業務中請根據具體情況自行調整。
5.x及6.x版本
thread_pool.bulk.queue_size: 500 thread_pool.search.queue_size: 10006.x、7.x及8.x版本
thread_pool.write.queue_size: 500 thread_pool.search.queue_size: 1000
參數 | 預設值 | 說明 |
thread_pool.bulk.queue_size | 200 | 文檔寫入隊列大小,適用於Elasticsearch 5.x及6.x版本。 |
thread_pool.write.queue_size | 200 | 文檔寫入隊列大小,適用於Elasticsearch 6.x、7.x及8.x版本。 |
thread_pool.search.queue_size | 1000 | 文檔搜尋隊列大小。 |
上述樣本為推薦值,如果存在特殊情境,請您提交工單聯絡支援人員修改。
目前通過控制台YML檔案配置調整Elasticsearch執行個體的thread_pool.search.queue_size為1000以上仍取值為1000,如果存在特殊情境,請您提交工單聯絡支援人員修改,提工單方式詳情請參見支援人員的範圍和方式。