ElasticSearch 概述
ElasticSearch 是一個開源的高擴展的分布式全文檢索引擎,它可以近乎實時的存儲、檢索數據;本身擴展性很好,可以擴展到上百臺服務器,處理 PB 級別(大數據時代)的數據。ES 也使用 Java 開發并使用 Lucene 作為其核心來實現所有索引和搜索的功能,但是它的目的是通過簡單的 RestFul API 來隱藏 Lucene 的復雜性,從而讓全文檢索變得簡單。
所以,ElasticSearch 的監控顯得尤為重要,可以幫助我們進行性能優化、資源管理、容量規劃、故障檢測和預防,及時發現和解決問題,確保系統的高效和穩定運行。
- 實時性:ElasticSearch 能夠實時地存儲、檢索和分析數據,使得用戶能夠快速獲得最新的搜索結果和分析數據;
- 分布式:ElasticSearch 采用分布式架構,能夠水平擴展,處理 PB 級結構化或非結構化數據,同時具有高可用性和容錯性;
- 多樣化的搜索和分析功能:ElasticSearch 支持全文搜索、結構化查詢、過濾、地理空間查詢和復雜的分析功能。
觀測云
觀測云是一個統一實時監測平臺,它提供全面的系統可觀測性解決方案,幫助用戶快速實現對云平臺、云原生、應用及業務的監控需求。觀測云的核心功能包括:基礎設施監測,日志采集和分析,用戶訪問監測(RUM),應用性能監測(APM),服務可用性監測(撥測),安全巡檢,智能監控等等。
DataKit 提供 ElasticSearch 指標和日志的采集,安裝好 DataKit 之后,開通 ElasticSearch 采集器,即可采集 ElasticSearch 指標和日志到觀測云。
部署 DataKit
登錄觀測云控制臺,點擊「集成」 -「DataKit」 - 「Linux」,拷貝第 2 步中的安裝命令。
安裝完成后,DataKit 會提示您使用 datakit monitor 來檢查 DataKit 的運行狀態,如下圖所示:
采集器配置
指標采集配置
Tips: ElasticSearch 版本 >= 6.0.0
適用于虛擬機部署的 ElasticSearch 監控,使用主機安裝方式安裝 DataKit 后,在?/usr/local/datakit/conf.d/db
?目錄下,復制?elasticsearch.conf.sample
?為?elasticsearch.conf
。
# 根據實際情況進行修改,如果有賬號密碼,可進行如下配置
servers = ["http://user:pass@localhost:9200"]
# 若賬號密碼有特殊字符,也可以在這里添加賬號密碼# HTTP Basic Authenticationusername = "xxx"password = "yyy"# 重啟DK
datakit service -R
日志采集配置
采集 ElasticSearch 的日志,可在 elasticsearch.conf 中 將 files 打開,并寫入 ElasticSearch 日志文件的絕對路徑。
[[inputs.elasticsearch]]...
[inputs.elasticsearch.log]
files = ["/path/to/your/file.log"]
開啟日志采集以后,默認會產生日志來源(source)為 elasticsearch 的日志。
執行?datakit monitor
?顯示如下:
關鍵指標
指標 | 描述 | 單位 |
---|---|---|
status_code | 集群狀態 | count |
os_cpu_percent | 集群CPU使用率 | count |
os_mem_used_percent | 集群內存使用率 | count |
jvm_mem_heap_used_percent | 集群堆內存使用率 | count |
number_of_data_nodes | 數據節點 | count |
number_of_pending_tasks | 待處理任務數 | count |
active_primary_shards | 活躍主分片 | count |
active_shards | 活躍分片 | count |
initializing_shards | 初始化中分片 | count |
relocating_shards | 遷移中的分片 | count |
indices_lifecycle_error_count | 錯誤狀態索引 | count |
unassigned_shards | 未分配的分片 | count |
primaries_docs_count | 主分片文檔數量 | count |
primaries_docs_deleted | 主分片已刪除文檔數量 | count |
total_docs_count | 文檔數量 | count |
total_docs_deleted | 已刪除文檔數量 | count |
total_flush_total_time_in_millis | flush總時間 | ms |
total_refresh_total | flush總數 | count |
total_store_size_in_bytes | 存儲大小 | B |
total_merges_current_docs | 當前正在運行的文檔合并數 | count |
total_merges_total_docs | 合并文檔的總數 | count |
total_indexing_index_current | 當前正在運行的索引操作數 | count |
total_indexing_index_total | 索引操作的總數 | count |
total_search_query_current | 當前查詢數 | count |
total_search_query_total | 總查詢數 | count |
total_search_query_time_in_millis | 執行查詢操作花費時間 | ms |
total_search_fetch_time_in_millis | 執行獲取操作花費時間 | ms |
視圖
登錄觀測云控制臺,點擊「場景」 -「新建儀表板」,模板庫系統視圖中,輸入 “ElasticSearch ”, 選擇“ElasticSearch 監控視圖”,點擊“確定”。
監控器
- 查詢耗時過長
- 當前文檔存儲空間不足
- 集群狀態異常
- 查詢拒絕率過高
總結
通過觀測云監控 ElasticSearch 關鍵指標,可以幫助我們優化查詢、提前容量規劃及告警,及時響應和處理出現的各種問題,同時對于系統優化和業務開展提供了數據支撐。