ELK日志文件分析系統——E(Elasticsearch)

目錄

基本概念

一、架構設計

二、核心原理

三、關鍵特性

四、應用意義

部署步驟

?一、環境準備?

?二、安裝 Elasticsearch?

?三、關鍵配置(elasticsearch.yml)?

?四、啟動與驗證?

?五、集群擴展(新增節點)?

?六、安全加固(生產必做)?

?常見問題解決?

常用命令解析

?一、索引管理命令?

?二、文檔操作命令?

?三、查詢命令?

?四、聚合分析命令?

?五、集群管理命令?

?六、實用技巧?

?命令設計原理?


基本概念

一、架構設計

  1. ?節點類型?

    • ?Master節點?:負責集群管理(索引創建/刪除、分片分配)和元數據維護,通過Zen Discovery機制選舉產生。
    • ?Data節點?:處理數據讀寫和檢索請求,承載主要計算負載。
    • ?協調節點?(Client節點):路由請求并聚合結果,減輕主節點壓力。
  2. ?分片與副本?

    • ?分片(Shard)?:索引被水平拆分為多個分片,分布在集群節點上實現分布式存儲。
    • ?副本(Replica)?:每個主分片可有多個副本,提供高可用性和讀負載均衡。
  3. ?分層結構?

    • ?數據層?:由Lucene引擎實現倒排索引和段文件(Segment)管理。
    • ?服務層?:通過RESTful API提供搜索、聚合和分析能力。

二、核心原理

  1. ?倒排索引?

    • 將文檔內容分詞為詞項(Term),建立“詞項→文檔ID”映射,實現毫秒級全文檢索。
  2. ?近實時(NRT)機制?

    • 數據寫入后經內存緩沖(Refresh)1秒內可查,定期刷盤(Flush)確保持久化。
  3. ?分布式查詢?

    • 查詢請求被廣播到相關分片,協調節點合并結果并按相關性評分排序。

三、關鍵特性

  1. ?高性能與擴展性?

    • 支持PB級數據橫向擴展,分片自動再平衡。
  2. ?多數據類型支持?

    • 處理結構化、非結構化文本、數字及地理空間數據。
  3. ?分析能力?

    • 提供聚合(Bucket/Metric/Pipeline)實現復雜數據分析。
  4. ?生態系統集成?

    • 與Kibana(可視化)、Logstash/Beats(數據采集)構成完整解決方案。

四、應用意義

  1. ?運維監控?

    • 集中管理日志和指標,快速定位故障(如通過Transaction ID追蹤請求鏈路)。
  2. ?業務智能?

    • 分析用戶行為(點擊流、搜索關鍵詞)優化產品體驗。
  3. ?安全合規?

    • SIEM方案實現威脅檢測(如異常登錄分析)和審計日志管理。
  4. ?成本效益?

    • 開源降低許可成本,ILM策略自動優化冷熱數據存儲。

Elasticsearch通過分布式架構和倒排索引技術,成為實時搜索與分析領域的標桿工具,廣泛應用于運維、安全和業務分析場景。

部署步驟

?一、環境準備?

  1. ?系統配置?

    # 禁用交換分區(永久生效需寫入 /etc/fstab) 
    sudo swapoff -a # 修改文件描述符限制 
    echo "elasticsearch soft nofile 65535" | sudo tee -a /etc/security/limits.conf 
    echo "elasticsearch hard nofile 65535" | sudo tee -a /etc/security/limits.conf # 調整虛擬內存映射數 
    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf 
    sudo sysctl -p
  2. ?安裝 JDK 17+?

    sudo apt install openjdk-17-jdk # Ubuntu/Debian java -version # 驗證版本 

?二、安裝 Elasticsearch?

  1. ?下載并解壓(以 8.13.4 為例)?

    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-linux-x86_64.tar.gz 
    tar -zxvf elasticsearch-8.13.4-linux-x86_64.tar.gz 
    mv elasticsearch-8.13.4 /usr/local/elasticsearch 
  2. ?創建專用用戶?

    sudo useradd elasticsearch 
    sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch 

?三、關鍵配置(elasticsearch.yml?

cluster.name: my-production-cluster # 集群名稱需唯一:ml-citation{ref="3,8" data="citationList"} 
node.name: node-1 # 節點唯一標識 
path.data: /data/elasticsearch # 數據存儲目錄(需提前創建):ml-citation{ref="2,8" data="citationList"} 
path.logs: /var/log/elasticsearch # 日志目錄 
network.host: 0.0.0.0 # 監聽所有網絡接口 
http.port: 9200 # REST API 端口 
discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"] # 集群節點IP:ml-citation{ref="9" data="citationList"} 
cluster.initial_master_nodes: ["node-1", "node-2"] # 初始主節點列表:ml-citation{ref="9" data="citationList"} 

?四、啟動與驗證?

  1. ?啟動服務?

    sudo -u elasticsearch /usr/local/elasticsearch/bin/elasticsearch -d 
  2. ?檢查狀態?

    curl http://localhost:9200 

    預期輸出包含集群名、節點名及版本號(如?"name": "node-1"


?五、集群擴展(新增節點)?

  1. ?同步安裝包到新節點?

    scp -r /usr/local/elasticsearch root@new-node-ip:/usr/local/ 
  2. ?修改新節點配置?

    node.name: node-2 # 新節點名稱 
    discovery.seed_hosts: ["主節點IP"] # 指向已有集群節點 
  3. ?啟動新節點?

    sudo -u elasticsearch /usr/local/elasticsearch/bin/elasticsearch -d 

?六、安全加固(生產必做)?

  1. ?啟用 TLS 加密?
    bin/elasticsearch-certutil ca # 生成CA 
    bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 # 簽發證書 
  2. ?配置?elasticsearch.yml?
    xpack.security.enabled: true xpack.security.transport.ssl.enabled: true 

?常見問題解決?

問題現象解決方案
啟動報錯?max_map_count確認?sysctl vm.max_map_count?≥262144
節點無法加入集群檢查?discovery.seed_hosts?IP 及防火墻
磁盤空間不足配置 ILM 策略自動清理舊索引

?部署方式對比?

  • ?單機測試?:直接解壓啟動(需關閉安全模塊)
  • ?生產集群?:必須配置 TLS、節點角色分離、ILM 策略

💡 ?關鍵提示?

  • 禁止使用?root?用戶運行 ES
  • 數據目錄需獨占磁盤(避免 IO 爭搶)
  • 集群節點需時間同步(NTP 服務)

常用命令解析

?一、索引管理命令?

  1. ?創建索引?

    PUT /products # 創建名為products的索引:ml-citation{ref="2,10" data="citationList"} 
    {"settings": {"number_of_shards": 3, # 主分片數(數據分布單元):ml-citation{ref="1,10" data="citationList"}"number_of_replicas": 1 # 每個主分片的副本數(高可用):ml-citation{ref="10" data="citationList"}},"mappings": { # 定義字段類型:ml-citation{ref="10" data="citationList"}"properties": {"name": { "type": "text" },"price": { "type": "double"}}} 
    } 
  2. ?刪除索引?

    DELETE /products # 刪除索引及其所有數據:ml-citation{ref="8,10" data="citationList"} 

?二、文檔操作命令?

  1. ?插入文檔?

    POST /products/_doc/1 # 指定ID為1插入文檔:ml-citation{ref="2,14" data="citationList"} 
    {"name": "Laptop","price": 999.99,"tags": ["electronics", "tech"] 
    } 
  2. ?批量操作?

    POST /_bulk # 批量插入/更新文檔:ml-citation{ref="14" data="citationList"} 
    { "index": { "_index": "products", "_id": "2" } } 
    { "name": "Phone", "price": 599.99 } 
    { "delete": { "_index": "products", "_id": "1" } } # 批量刪除:ml-citation{ref="14" data="citationList"} 

?三、查詢命令?

  1. ?簡單查詢?

    GET /products/_search # 查詢所有文檔:ml-citation{ref="2,7" data="citationList"} { "query": { "match": { "name": "laptop" } # 文本分詞匹配:ml-citation{ref="4,5" data="citationList"} }, "sort": [ { "price": "desc" } ], # 按價格降序:ml-citation{ref="14" data="citationList"} "from": 0, # 分頁起始位置:ml-citation{ref="14" data="citationList"} "size": 10 # 返回條數:ml-citation{ref="14" data="citationList"} } 
  2. ?復合查詢?

    GET /products/_search 
    {"query": {"bool": {             # 布爾組合查詢:ml-citation{ref="4" data="citationList"}"must": [         # AND條件{ "term": { "tags": "tech" } } # 精確匹配(不分詞):ml-citation{ref="4" data="citationList"}],"filter": [       # 過濾條件(不計算相關性):ml-citation{ref="4" data="citationList"}{ "range": { "price": { "gte": 500 } }}]}} 
    } 

?四、聚合分析命令?

GET /products/_search 
{"aggs": {"avg_price": { "avg": { "field": "price" } }, # 計算均價:ml-citation{ref="3,5" data="citationList"}"tags_count": {"terms": { "field": "tags.keyword" } # 按標簽分組計數:ml-citation{ref="5" data="citationList"}}},"size": 0 # 不返回原始文檔:ml-citation{ref="5" data="citationList"} 
} 

?五、集群管理命令?

  1. ?查看健康狀態?

    GET /_cat/health?v # 顯示集群健康狀態(綠/黃/紅):ml-citation{ref="7,8" data="citationList"} 
  2. ?節點信息?

    GET /_cat/nodes?v # 列出所有節點及角色:ml-citation{ref="7,9" data="citationList"} 

?六、實用技巧?

  1. ?高亮搜索結果?

    GET /products/_search 
    {"query": { "match": { "name": "laptop" } },"highlight": { # 高亮匹配詞:ml-citation{ref="14" data="citationList"}"fields": { "name": {} }} 
    } 
  2. ?索引別名?

    POST /_aliases # 創建別名實現無縫切換:ml-citation{ref="10" data="citationList"} 
    {"actions": [{ "add": { "index": "products_v1", "alias": "products" } }] 
    } 

?命令設計原理?

  1. ?RESTful風格?:所有操作通過HTTP方法(GET/POST/PUT/DELETE)實現
  2. ?JSON數據交互?:請求體與響應均為JSON格式,支持結構化查詢
  3. ?近實時性?:文檔插入后1秒內可查(由refresh_interval控制)

注:實際使用時需替換localhost:9200為ES服務地址,并添加-u username:password參數(若啟用安全認證)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87042.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87042.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87042.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

融智學教育觀及其數學公式體系凝練匯總

摘要:本文系統闡述了鄒曉輝教授的融智學教育觀,通過原創數學公式體系構建了人機協同教育模型。核心內容包括:認知本體論(文明智慧當量方程)、方法論(七遍通訓練算子)、生態位控制論(…

互聯網大廠Java求職面試:AI大模型應用實踐中的架構挑戰與實戰

互聯網大廠Java求職面試:AI大模型應用實踐中的架構挑戰與實戰 引言 在當今技術飛速發展的時代,AI大模型已成為企業數字化轉型的重要引擎。無論是內容生成、智能客服、個性化推薦,還是知識圖譜構建和語義理解,大模型的應用場景正在…

龜兔賽跑算法(Floyd‘s Cycle-Finding Algorithm)尋找重復數

龜兔賽跑算法(Floyd’s Cycle-Finding Algorithm)尋找重復數 問題描述 給定一個長度為 N1 的數組 nums,其中每個元素的值都在 [1, N] 范圍內。根據鴿巢原理,至少有一個數字是重復的。請找出這個重復的數字。 要求: …

紫光展銳T8300以創新音頻技術重塑感知世界

數字化時代,從語音通話到智能交互,從聆聽音樂到創作Vlog,聲音已成為隱形的基礎措施。日益發展的音頻技術正在重構用戶感知世界的方式,重塑用戶的聽覺體驗。 T8300是紫光展銳專為全球主流用戶打造的5G SoC,采用了紫光展…

寫作詞匯積累(A):頗有微詞、微妙(“微”字的學習理解)

一、頗有微詞 1、基本介紹 【頗有微詞】指對某人或某事有輕微的批評、不滿或不同意見,但表達得含蓄委婉 【頗】表示程度較深,【微詞】表示隱晦的批評 【微】表示隱晦的、不直白的,強調批評的委婉性 2、使用實例 1、盡管公司的新考勤制度…

flowable工作流的學習demo

1.spring 部署流程 刪除部署 查看歷史信息 加載一個默認的配置文件 里面包含用戶名和數據庫信息 加載自定義的配置文件 flowable.cfg.xml <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

XCTF-misc-can_has_stdio?

下載得到一個文件 ┌──(kali?kali)-[~] └─$ file misc50 misc50: ASCII text, with very long lines (536)┌──(kali?kali)-[~] └─$ cat misc50 …

【編譯工具】(自動化)AI 賦能的自動化測試工具:如何讓測試效率提升 500% 并實現智能質檢?

#『編程工具』提升效率征文挑戰賽# 目錄 引言&#xff1a;AI 如何重塑自動化測試格局 一、新一代 AI 測試工具核心能力解析 二、實戰演示&#xff1a;Testim 智能測試平臺 &#xff08;1&#xff09;智能錄制測試流程 ① 步驟演示 ② AI 元素定位原理 &#xff08…

毛紀逆向分析

文章目錄 毛紀逆向分析前言知識系統整體架構概述模塊分析模塊0模塊1模塊2模塊3模塊4模塊5總結毛紀逆向分析 對爬蟲、逆向感興趣的同學可以查看文章,一對一小班教學(系統理論和實戰教程)、提供接單兼職渠道:https://blog.csdn.net/weixin_35770067/article/details/142514698…

【力扣 簡單 C】141. 環形鏈表

目錄 題目 解法一&#xff1a;哈希 解法二&#xff1a;快慢指針 題目 解法一&#xff1a;哈希 struct node {struct ListNode* val;struct node* next; };struct hashSet {struct node** bucket;int size; };struct hashSet* hashSetInit(int size) {struct hashSet* hashS…

Eureka 服務注冊與發現原理和使用

1.Eureka 基礎概念 Eureka 是 Netflix 開發的服務注冊與發現組件&#xff0c;是 Spring Cloud 微服務架構中的核心模塊&#xff0c;用于解決微服務間的自動發現與通信問題。其核心功能包括&#xff1a; 服務注冊&#xff1a;服務實例將自身信息&#xff08;IP、端口、健康狀態等…

create_react_agent + MCP tools

文章目錄 MCP tools 調用結果輸出MCP Tool 內容成功返回失敗返回 普通工具調用 https://blog.csdn.net/2401_89025022/article/details/148629902 MCP tools 調用 import time import asyncio import json from langgraph.prebuilt import create_react_agent from langch…

提示詞Prompts(1)

摘要&#xff1a; 本文介紹了langchain.prompts中基礎的提示詞模板的用法&#xff0c;包括基礎的文本模板、對話模板、小樣本模板、以及主要兩種樣本選擇器的用法。 文章目錄 1. prompts介紹&#xff1f;2. 提示詞模板體系 Prompt Templates2.1 基礎文本模板 PromptTemplate2.2…

如何在 Elementary OS 上安裝最新版本的 VirtualBox

Elementary OS 是一個基于 Ubuntu Linux 的發行版&#xff0c;它易于使用&#xff0c;對初學者友好&#xff0c;并且在用戶中非常受歡迎。如果你是 Elementary OS 的用戶&#xff0c;并且想在上面虛擬運行和探索其他操作系統&#xff0c;那么 Oracle VirtualBox 是一個非常不錯…

uni-app項目loading顯示方案

前情 uni-app是我比較喜歡的跨平臺框架&#xff0c;它能開發小程序/H5/APP(安卓/iOS)&#xff0c;重要的是對前端開發友好&#xff0c;自帶的IDE可視化的運行和打包也讓開發體驗也非常棒&#xff0c;公司項目就是主推uni-app&#xff0c;為了用戶體驗對于耗時操作&#xff0c;…

【Android筆記】記一次 CMake 構建 Filament Android 庫的完整排錯過程(安卓交叉編譯、CMake、Ninja)

寫在前面的話&#xff0c;為了保持Sceneform-EQR始終是采用最新的filament&#xff0c;每隔一段時間我都會編譯filament&#xff0c;并根據新增內容完善Sceneform-EQR。 現由于更換電腦&#xff0c;環境需重新配置。簡單記錄下編譯出錯和解決方式。 Sceneform-EQR 是EQ對谷歌“…

ARM 單片機定義變量絕對地址方法

在ARM單片機中&#xff0c;定義變量到絕對地址通常有以下幾種方法&#xff08;以Keil MDK為例&#xff0c;其他工具鏈原理類似&#xff09;&#xff1a; 方法1&#xff1a;使用指針強制轉換&#xff08;通用&#xff09; 直接通過指針訪問指定地址&#xff1a; define REGIS…

為何AI推理正推動云計算從集中式向分布式轉型

作者簡介&#xff1a;Vineeth Varughese是Akamai亞太及日本地區的云產品市場負責人&#xff0c;在云計算、人工智能&#xff08;AI&#xff09;及市場進入策略&#xff08;GTM&#xff09;領域擁有豐富經驗。 傳統云平臺在利用海量數據訓練AI模型方面表現出色&#xff0c;但隨著…

ar 導航導覽技術如何實現的?室內外融合定位與ar渲染技術深度解析

本文面向&#xff1a;移動開發工程師、AR技術研究者、室內外導航系統產品經理&#xff0c;旨在提供核心問題的參考方案&#xff1a;如何實現室內外無縫切換的精準定位&#xff08;GPS藍牙Beacon&#xff09;虛擬導航路徑與實景畫面的實時疊加原理。 如需獲取ar導航導航技術解決…

電路問題處理:SGMII鏈路中的AC耦合電容擺放位置

SGMII鏈路中的AC耦合電容擺放位置 目前是有個板子&#xff0c;其上分別有fpga&#xff0c;fpga的gtx口出sgmii千兆以太網鏈路&#xff0c;通過高速連接器互聯&#xff0c; 通常高速差分鏈路的AC耦合電容放在靠近接收端位置&#xff0c;如果在同一個板內的話沒啥疑惑的直接靠近…