background image

Jan 08 2021

Elasticsearch 效能調整與自動維運

針對index的一些效能調校

在Index Management中有個index templates的頁簽,在這裡可以改變一些index的行為或是屬性, 有些index屬性對於整個ELK的查詢或是機器的影響是很巨大的,當Log量越大的時候就需要改變一些設定, 尤其是放在雲端的ELK,如果使用越大的機器消費金額就會變得很可觀,在不是賺錢的機器上還是能省則省。

index.codec在官方的文件中有兩個選項,預設是Default採用LZ4的壓縮,另一個選項是best_compression, 使用它可以得到更高的壓縮效率但會增加CPU的附載,不過減少硬碟的空間是可觀的

refresh_interval這個在官方文件說明是index的刷新頻率,這個選項會影響到新增的log多久內可能不會被看見, 但refresh index他需要消耗許多的CPU來處理,這個值如果越大刷新的頻率就會降低,機器的CPU usage就不會被這個吃掉, 可以減少一些CPU的運算

number_of_replicas是Elasticsearch會建立多少個副本,但複本越多所需要消耗的CPU與硬碟空間就會加大

自動維運Index的小技巧

通常架設了ELK初期會常常觀看一些硬碟空間, CPU usage, Memory usage等等的,時間久了就會忘記了...

但是硬碟的空間是有限的,Application Log其實也是有時效性的,他不需要永久的存在在硬碟上(畢竟要花錢的...)所以自動刪除index就變得很重要, 在Index Lifecycle Policies中我會設定兩個policy,一個production跟一個non-production的,production通常會留存30天以, 而非production的一般來說在兩週到三週就沒有參考價值了,所以非production只留存14天。

ELK index lifecycle
ELK index lifecycle

參考連結

Elasticsearch Index Module

Tune for indexing speed

文章標籤