ELK日誌分析系統(4)-elasticsearch數據存儲

来源:https://www.cnblogs.com/zhanchenjin/archive/2019/10/14/11672900.html
-Advertisement-
Play Games

1. 概述 logstash把格式化的數據發送到elasticsearch以後,elasticsearch負責存儲搜索日誌數據 elasticsearch的搜索介面還是很強大的,這邊不詳細展開,因為kibana會去調用el的介面; 本文將講解elasticsearch的相關配置和遇到的問題,至於el ...


 

1. 概述

  logstash把格式化的數據發送到elasticsearch以後,elasticsearch負責存儲搜索日誌數據

      elasticsearch的搜索介面還是很強大的,這邊不詳細展開,因為kibana會去調用el的介面;

  本文將講解elasticsearch的相關配置和遇到的問題,至於elasticsearch的相關搜索使用,後面會找個時間整理一下。

2. 配置

  

  配置路徑:docker-elk/elasticsearch/config/elasticsearch.yml

  • 關閉安全驗證,否則kibana連接不上:xpack.security.enabled:false
  • 配置支持跨域調用,否則kibana會提示連接不上: http.cors.enabled: true

  另外由於elasticsearch很容易被攻擊,所以建議不要把elasticsearch的埠對外開放

  

cluster.name: "docker-cluster"
network.host: 0.0.0.0

## Use single node discovery in order to disable production mode and avoid bootstrap checks
## see https://www.elastic.co/guide/en/elasticsearch/reference/current/bootstrap-checks.html
#
discovery.type: single-node

## X-Pack settings
## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html
#
xpack.license.self_generated.type: trial
xpack.security.enabled: false
xpack.monitoring.collection.enabled: true

http.cors.enabled: true
http.cors.allow-origin: "*"

 

  elasticsearch的緩存路徑是/usr/share/elasticsearch/data

 

  驗證是否成功:

  訪問http://192.168.1.165:9200 ,如果得到以下數據表示成功: 

 

   

 3. 異常處理

 

  3.1. index has exceeded [1000000] - maximum allowed to be analyzed for highlighting

  詳細的出錯內容是這樣:

    {"type":"illegal_argument_exception","reason":"The length of [message] field of [l60ZgW0Bv9XMTlnX27A_] doc of [syslog] index has exceeded [1000000] - maximum allowed to be analyzed for highlighting. This maximum can be set by changing the [index.highlight.max_analyzed_offset] index level setting. For large texts, indexing with offsets or term vectors is recommended!”}}

   錯誤原因:索引偏移量預設是100000,超過了

  

  最大遷移索引不能配置在配置文件中,只能介面修改

  

# 修改最大索引遷移

curl -XPUT "http://192.168.1.165:9200/_settings" -H 'Content-Type: application/json' -d' {
    "index" : {
        "highlight.max_analyzed_offset" : 100000000
    }
}’

 

  3.1. circuit_breaking_exception', '[parent] Data too large, data for [<http_request>] would be [246901928/235.4mb], which is larger than the limit of [246546432/235.1mb]

  詳細的出錯內容是這樣:

    elasticsearch.exceptions.TransportError: TransportError(429, 'circuit_breaking_exception', '[parent] Data too large, data for [<http_request>] would be [246901928/235.4mb], which is larger than the limit of [246546432/235.1mb], real usage: [246901768/235.4mb], new bytes reserved: [160/160b], usages [request=0/0b, fielddata=11733/11.4kb, in_flight_requests=160/160b, accounting=6120593/5.8mb]')

   

  錯誤原因:

    堆記憶體不夠當前查詢載入數據所以會報 https://github.com/docker-library/elasticsearch/issues/98

   解決方案:

  • 提高堆棧記憶體

    在宿主機執行:sudo sysctl -w vm.max_map_count=262144

    docker增加命令參數設置java的虛擬機初始化堆棧大小1G,和最大堆棧大小3G

    docker-compose路徑:配置路徑:docker-elk/docker-compose.yml   

services:
  elasticsearch:
    build:
      context: elasticsearch/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./elasticsearch/config/elasticsearch.yml
        target: /usr/share/elasticsearch/config/elasticsearch.yml
        read_only: true
      - type: volume
        source: elasticsearch
        target: /usr/share/elasticsearch/data
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      ES_JAVA_OPTS: "-Xms1g -Xmx3g"
      ELASTIC_PASSWORD: changeme
      LOGSPOUT: ignore
    networks:
      - elk

 

  • 增加堆記憶體的使用率,預設70%
curl -X PUT "http://192.168.1.165:9200/_cluster/settings" -H 'Content-Type: application/json' -d'

 {

     "transient" : {

         "indices.breaker.total.limit" : "90%"

     }

 }’

 

3. 安裝可視化插件

  使用docker啟動

  docker run -d --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

  elasticsearch需要配置支持跨域調用,否則會提示連接不上

  ElasticSearch head入口:http://192.168.1.165:9100

  插件效果如下:

 

  這個插件估計對新版本的elasticsearch支持不好,後面可以換一個支持新版本elsticsearch的插件。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Number 方法幫助您處理數值。 Number 方法和屬性 原始值(比如 3.14 或 2016),無法擁有屬性和方法(因為它們不是對象)。 但是通過 JavaScript,方法和屬性也可用於原始值,因為 JavaScript 在執行方法和屬性時將原始值視作對象。 Number 方法和屬性 原始值 ...
  • 一.安裝依賴 二.全局導入(必須先安裝依賴) 第一步 在 裡加入(新版的可能找不到這個文件,你可以 進行手動安裝) 第二步 在 的最後加入 第三步 在 引入 直接在 引入 三.單個vue組件導入(必須先安裝依賴) 然後在組件的script中 ...
  • 下表列出了所有jQuery 雜項方法: ...
  • @support:用於檢測瀏覽器是否支持CSS某個屬性,即條件判斷,如果支持某個屬性,可以寫一套樣式,如果不支持某屬性,提供另一套樣式作為替補。 calc():用於計算動態函數值,支持“+”,“-”,“*”,“/”運算 @media:針對不同的媒體類型定義不同的樣式 ...
  • 場景 SpringCloud-服務註冊與實現-Eureka創建服務註冊中心(附源碼下載): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102535957 SpringCloud-服務註冊與實現-Eureka創建服務提供者(附源 ...
  • 場景 SpringCloud-服務註冊與實現-Eureka創建服務註冊中心(附源碼下載): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102535957 上面已經搭建好服務註冊中心,開始創建服務提供者。 當 Client 向 ...
  • 一、代理模式的作用 將主要業務與次要業務進行松耦合的組裝 二、代理模式本質 監控行為的特征 例子: <input type="button" onclick="處理函數"> 三、生活案例 案例:飯前便後要洗手 分析: 1.分析出主要業務和次要業務 【主要業務】:吃飯,上廁所 【次要業務】:洗手 2. ...
  • 在高併發業務場景下,消息隊列在流量削峰、解耦上有不可替代的作用。當前使用較多的消息隊列有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、Pulsar 等。 消息隊列這麼多,到底該選擇哪款消息隊列呢? 選擇消息隊列的基本標準 雖然這些消息隊列在功能和特性方面各有優劣, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...