ubuntu 22.04 安裝部署elk(elasticsearch/logstash/kibana) 7.10.0詳細教程

安裝部署elk7.10.0詳細教程

  • 一、安裝jdk 11環境
  • 二、安裝elasticsearch 7.10.0
  • 三、安裝kibana 7.10.0
  • 四、安裝logstash 7.10.0
  • 五、安裝ik7.10.0分詞
  • 六、開啟安全功能
    • 1. 開啟用戶名密碼登錄
    • 2. 開啟es安全加密通信
    • 3. 開啟Kibana安全功能
  • 七、注意事項和常見錯誤
  • 八、其它操作及命令

【背景】

  1. 整個elk安裝是基于ubuntu 22.04和jdk 11環境。
  2. elk均在一臺測試機器上安裝,單節點服務。
  3. elk均采用 *.deb方式安裝,需要服務器能聯網。
  4. elk每個版本都要對應一致,避免沖突或者其它未知異常。

一、安裝jdk 11環境

如果需要卸載其它版本jdk,命令如下

sudo apt-get purge openjdk-17-jdk*
sudo apt-get purge openjdk-17-jre*
# 最后檢查下是否卸載完成
java -version
javac -version

開始安裝jdk 11 環境,命令如下

#1. 更新apt 軟件包倉庫緩存
sudo apt update
#2. 安裝 openjdk-11-jdk
sudo apt install -y openjdk-11-jdk
#3. 測試是否安裝成功
java -version
javac -version

二、安裝elasticsearch 7.10.0

  1. 安裝elasticsearch
# 1. 下載安裝包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb 
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb.sha512# 2.安裝
shasum -a 512 -c elasticsearch-7.10.0-amd64.deb.sha512
# 輸出應顯示 elasticsearch-7.10.0-amd64.deb: OK 表示驗證成功
sudo dpkg -i elasticsearch-7.10.0-amd64.deb# 3. 查看安裝文件的權限,確保所有者都是elasticsearch,如果不是可以授權
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
  1. 備份elasticsearch.yml配置文件
# 1.備份文件后修改elasticsearch.yml配置文件
sudo cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
sudo vim /etc/elasticsearch/elasticsearch.yml
  1. 修改elasticsearch.yml配置文件
# 設置集群名稱
cluster.name: myes
# 設置節點名稱
node.name: node-1
# 設置綁定地址(如果需要遠程訪問)
network.host: 0.0.0.0  # 注意:生產環境建議使用具體IP而非0.0.0.0
# 設置HTTP端口
http.port: 9200
# 發現設置(單節點配置)
discovery.type: single-node
  1. 啟動并測試驗證
    es啟動需要用非root用戶啟動。
sudo systemctl daemon-reload #重新加載服務配置文件
sudo systemctl enable elasticsearch.service  #開啟自啟動
sudo systemctl start elasticsearch.service    #啟動
sudo systemctl stop elasticsearch.service 	 #停止
sudo systemctl restart elasticsearch.service  #重啟
sudo systemctl status elasticsearch.service  #查看服務狀態

如下圖表示已經正常啟動服務了
在這里插入圖片描述
6. 訪問驗證
如若需要可安裝curl命令:sudo apt install curl
服務器訪問:sudo curl http://localhost:9200
【注意】如果遠程訪問鏈接需要防火墻開發端口9200/9300,詳見命令如下:防火墻操作命令
在這里插入圖片描述
以上基本安裝完成,后續可根據需要設置安全訪問配置。因es需要較高的系統資源如下配置6、7可根據需求修改。

  1. 修改配置文件 limits.conf、sysctl.conf,可根據需求修改
# 1. 編輯文件 limits.conf
sudo vim /etc/security/limits.conf
# 添加以下內容(設置 nofile 和 nproc 限制):
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096# 2. 編輯 sysctl.conf
sudo vim /etc/sysctl.conf
# 添加以下內容(調整虛擬內存和最大映射數):
vm.max_map_count=262144# 3. 使配置生效
sudo sysctl -p
  1. 修改jvm.options 文件,可根據需求修改
sudo vim /etc/elasticsearch/jvm.options
# 修改以下內容,7.10.0版本中默認1G,8.x版本默認更大
-Xms1g # 初始堆大小 
-Xmx1g # 最大堆大小
  1. 修改完成后重啟驗證

重啟服務:sudo systemctl restart elasticsearch.service
查看狀態: sudo systemctl status elasticsearch.service

在這里插入圖片描述
訪問鏈接:sudo curl http://localhost:9200
在這里插入圖片描述

三、安裝kibana 7.10.0

  1. 下載并安裝文件
# 1. 下載安裝文件
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-amd64.deb 
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-amd64.deb.sha512# 2. 安裝
shasum -a 512 -c kibana-7.10.0-amd64.deb.sha512 
# 輸出應顯示 kibana-7.10.0-amd64.deb: OK
sudo dpkg -i kibana-7.10.0-amd64.deb
  1. 先備份后在修改kibana.yml文件
sudo cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
sudo vim /etc/kibana/kibana.yml # 如下就是kibana.yml要修改的參數
# 設置服務器端口和地址
server.port: 5601
server.host: "0.0.0.0"  # 允許遠程訪問,生產環境建議使用具體IP
# 設置 Elasticsearch 連接地址
elasticsearch.hosts: ["http://localhost:9200"]  # 指向你的 ES 地址
# 中文漢化
i18n.locale: "zh-CN"# 可選:設置 Elasticsearch 用戶名和密碼(如果 ES 啟用了安全認證)
# elasticsearch.username: "kibana_system"
# elasticsearch.password: "your_password"
  1. 其它配置
# kibana默認1G內存,可根據實際情況修改
sudo vim /etc/default/kibana
NODE_OPTIONS="--max-old-space-size=512"  # 調整為512MB
  1. 啟動服務驗證
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
sudo systemctl start kibana.service
sudo systemctl resrart kibana.service
sudo systemctl status kibana.service

在這里插入圖片描述
在這里插入圖片描述
【注意】遠程訪問需要防火墻開放端口5601
以上基本安裝完成,根據需要設置安全認證和用戶名密碼。目前尚未開啟,所以配置文件也注釋了。

四、安裝logstash 7.10.0

因logstash文件篇幅較長單獨編寫【ubuntu 22.04 安裝部署logstash 7.10.0教程】

五、安裝ik7.10.0分詞

  1. 安裝ik分詞
# 安裝命令
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.10.0
  1. 檢測es插件文件權限
    安裝完成后重新授權es的文件夾,如果elasticsearch的文件權限出現變動則重新授權,否則es啟動可能會失敗。
    授權命令:sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/
    在這里插入圖片描述
  2. 重啟啟動es驗證es和ik分詞
 sudo systemctl restart elasticsearch.service sudo systemctl status elasticsearch.service 

如下是驗證ik分詞示意圖
ik分詞前
ik分詞后
如果有其它分詞需求,可以手動分詞處理

六、開啟安全功能

1. 開啟用戶名密碼登錄

  1. 首先在es中配置文件中添加如下配置,然后重啟服務
# 編輯配置文件
sudo vim /etc/elasticsearch/elasticsearch.yml
# 添加配置參數,開啟登錄
xpack.security.enabled: true
# 重啟服務
sudo systemctl restart elasticsearch
  1. 設置內置用戶密碼
# 系統內置用戶列舉如下
# apm_system, beats_system ,elastic ,kibana_system, logstash_system, remote_monitoring_user
# 設置用戶密碼命令
# 交互式設置-手動設置
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
# 系統生成-自動設置(推薦生產環境)
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
  1. 驗證測試es用戶名密碼
    驗證命令:sudo curl -u elastic:密碼 http://localhost:9200

  2. 配置kibana 使用內置用戶連接es服務

# 修改kibana配置
sudo vim /etc/kibana/kibana.yml
# 設置用戶名密碼
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_password"
# 重啟kibana服務
sudo systemctl restart kibana.service
  1. 驗證訪問kibana頁面
    訪問:http://ip:5601
    用戶名密碼:elastic/密碼

  2. 隱藏式用戶名密碼登錄
    大致理解為,如果不想將用戶名和密碼放入文件中,就將它們存儲在密鑰庫中,實際類似將用戶名密碼加密存儲到密鑰中,
    在配置文件采用參數占位符的樣式。

# 操作命令,[--allow-root] 是因為直接執行出現警告報錯,需要允許root才能執行。有興趣的小伙伴可以去除該命令試試。
sudo /usr/share/kibana/bin/kibana-keystore create --allow-root
sudo /usr/share/kibana/bin/kibana-keystore add elasticsearch.username --allow-root
sudo /usr/share/kibana/bin/kibana-keystore add elasticsearch.password --allow-root# 查看存儲的秘鑰名稱
./bin/kibana-keystore list# 重新授權,文件權限變動可以不操作
sudo chown -R kibana:kibana /etc/kibana/# 添加以下配置到kibana.yml中,告訴 Kibana 從密鑰庫讀取憑證
elasticsearch.username: ${elasticsearch.username}
elasticsearch.password: ${elasticsearch.password}

2. 開啟es安全加密通信

開啟前訪問鏈接是 http://localhost:9200,開啟安全加密后是 https://localhost:9200。保證數據在傳輸過程中安全性。

#1. 生成證書
# 直接回車,不輸入密碼,證書生成后的位置:/usr/share/elasticsearch/
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12#2. 將證書移位置并賦權
sudo mkdir /etc/elasticsearch/certs/
sudo mv /usr/share/elasticsearch/*.p12 /etc/elasticsearch/certs/
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/elastic*.p12#3. 配置證書路徑到配置文件中,如下是elasticsearch.yml配置項
# 開啟安全訪問(用戶名密碼)
xpack.security.enabled: true
# 開啟加密通信(集群節點之間)
xpack.security.transport.ssl.enabled: true 
xpack.security.transport.ssl.verification_mode: certificate 
# [certs/elastic-certificates.p12] 該路徑采用相對路徑,也可以使用絕對路徑
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12# HTTP 安全設置(https,外部客戶端與集群通信)
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12#4. 驗證測試
sudo curl -k -u elastic:密碼 https://localhost:9200
# 或者頁面訪問:https://localhost:9200

3. 開啟Kibana安全功能

TODO - 待完善

#1. 將es的證書復制到kibana目錄然后授權
sudo mkdir /etc/kibana/certs
sudo cp /etc/elasticsearch/certs/elastic-* /etc/kibana/certs
sudo chown -R kibana:kibana /etc/kibana/certs#2. 修改kibana配置文件后重啟
# 連接Elasticsearch的URL(使用HTTPS)
elasticsearch.hosts: ["https://localhost:9200"]
# 信任ES證書
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/elastic-stack-ca.p12"]
elasticsearch.ssl.verificationMode: certificate #3. 驗證測試
#頁面訪問:http://ip:5601

七、注意事項和常見錯誤

  1. es中 常見的是文件授權問題,對elasticsearch沒有賦權,如下授權
  2. 查看日志地址: sudo tail -100f /var/log/logstash/logstash-plain.log
  3. 路徑或文件授權: sudo chown -R elasticsearch:logstash /etc/elasticsearch/

八、其它操作及命令

  1. 用戶登錄操作命令
#== 將edy用戶加入到elasticsearch組
sudo usermod -aG elasticsearch edy#== ubuntu修改root用戶登錄,將如下配置項修改為yes,再重啟ssh
# 編輯
sudo vim /etc/ssh/sshd_config
# 修改配置項
PermitRootLogin yes
# 重啟
systemctl restart ssh
  1. 卸載jdk其它版本
#== 卸載jdk其它版本
sudo apt-get purge openjdk-17-jdk*
sudo apt-get purge openjdk-17-jre*
#運行測試:java -version
  1. 查詢日志排錯命令
#== 查詢日志方便排錯
sudo journalctl -u elasticsearch -f
sudo journalctl -u kibana -f
sudo journalctl -u logstash -f
  1. 卸載logstash操作命令
#== 卸載 通過deb安裝的logstash
#先停止: 
sudo systemctl stop logstash
#=apt安裝卸載:sudo apt remove --purge logstash(忽略)
#=deb安裝的卸載:
sudo dpkg -r logstash
sudo dpkg --purge logstash
#=手動刪除文件保證卸載干凈
sudo rm -rf /etc/logstash /var/lib/logstash /var/log/logstash  /usr/share/logstash  
#= 手動再次刪除用戶和組
sudo deluser logstash
sudo delgroup logstash
sudo apt autoremove
#=驗證是否卸載完成
dpkg -l | grep logstash   
ls -l /etc/logstash
  1. 防火墻操作命令
# 查看狀態
sudo ufw status
# 啟用防火墻
sudo ufw enable
# 開發單個端口,如開啟端口22
sudo ufw allow 22/tcp
# 或直接使用服務名稱(如 ssh、http、https)
sudo ufw allow ssh
# 開放端口范圍(如 6000-6007)
sudo ufw allow 6000:6007/tcp
# 允許特定ip訪問
sudo ufw allow from 192.168.1.100 to any port 22
# 通過端口刪除規則
sudo ufw delete allow 22
# 重置防火墻

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

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

相關文章

技術文章: 基板的吸水率

PCB基板或覆銅板的吸水率是一個重要的性能指標,它衡量了覆銅板在特定條件下(通常是浸水后)吸收水分的能力,通常用指定條件下吸水后與吸水前相比,質量增加的百分比來表示。當材料暴露扎起在潮濕空氣中或浸沒在水中時其抵…

九日集訓第三天

目錄 搜索旋轉排序數組 搜索旋轉排序數組|| 尋找旋轉排序中的數組最小值 爬樓梯 斐波那契數 第N個泰波那契數 差的絕對值為K的數對數目 猜數字 拿硬幣 山峰數組的峰頂索引 搜索旋轉排序數組 class Solution { public:int search(vector<int>& nums, int t…

CppCon 2017 學習:folly::Function A Non-copyable Alternative to std::function

你說的內容是關于 C 中 可調用類型&#xff08;Callable Types&#xff09; 的基礎知識&#xff0c;我幫你理清并補充理解。 Callable Types&#xff08;可調用類型&#xff09;簡介 C 中任何可以用 () 括號操作符“調用”的對象&#xff0c;都叫做 可調用類型。典型包括&…

PyTorch 中Tensor常用數據結構(int, list, numpy array等)互相轉換和實戰示例

在 PyTorch 中&#xff0c;tensor 是一種強大且靈活的數據結構&#xff0c;可以與多種 Python 常用數據結構&#xff08;如 int, list, numpy array 等&#xff09;互相轉換。下面是詳細解釋和代碼示例&#xff1a; 1. Tensor ? int / float 轉為 int / float&#xff08;前提…

計算機網絡與數據通信基礎

第一章 計算機網絡概述 1. 計算機網絡的核心概念 1.1 定義 將 地理分散 的、具有 獨立處理能力 的計算機系統&#xff08;主機/Host&#xff09;&#xff0c;通過 傳輸介質 與 網絡設備 互連&#xff0c;在 網絡協議 和 軟件 支持下實現 資源共享 與 數據通信 的系統。 關鍵術…

【統計術語】

文章目錄 基礎概念術語基期與現期增長量與增長率環比與同比 比重術語平均數術語特殊增長術語其他常用術語 基礎概念術語 基期與現期 基期&#xff1a;作為基礎參照的時期&#xff0c;一般指過去的時間 現期&#xff1a;與基期對比的時期&#xff0c;一般指現在的時間 示例&am…

XXE(XML外部實體注入)詳解

目錄 一、XXE漏洞簡介 二、XML詳解 (一) XML文檔結構 1. 文檔聲明 2. XML文檔類型定義&#xff08;DTD&#xff09; 3. XML文檔元素 4. XML文檔示例 三、XXE漏洞類型 四、XXE漏洞挖掘技巧 五、XXE漏洞危害 (一) 文件讀取 (二) 內網探測 1. 端口探測 2. 主機存活探…

深入解析JVM字節碼執行引擎

JVM 字節碼執行引擎。它是 JVM 核心組件之一&#xff0c;負責實際執行加載到內存中的字節碼指令。你可以將它想象成 JVM 的“CPU”。 核心職責&#xff1a; 加載待執行的字節碼&#xff1a; 從方法區&#xff08;元空間&#xff09;獲取已加載類的方法字節碼。創建和管理棧幀…

華為OD機試-MELON的難題-DFS(JAVA 2025A卷)

題意是從N快雨花石中找出最少拿出雨花石的塊數&#xff0c;使得雨花石可以均分&#xff0c;直接使用dfs解決此類組合問題 package com.example.demo.bean;import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner;public class YuHuaStone {public s…

鴻蒙數據庫操作

一、使用關系型數據庫實現數據持久化&#xff0c;需要獲取一個RdbStore&#xff0c;其中包括建庫、建表、升降級等操作。 const STORE_CONFIG: relationalStore.StoreConfig {name: AnyOffice.db, // 數據庫文件名securityLevel: relationalStore.SecurityLevel.S1, // 數據庫…

基于ARM SoC的半導體測試

ARM SoC&#xff08;System on Chip&#xff09; 是一種集成了多個關鍵計算組件的單片系統芯片&#xff0c;廣泛應用于移動設備、嵌入式系統、物聯網&#xff08;IoT&#xff09;和半導體測試設備等領域。它的核心設計理念是“高度集成”&#xff0c;將處理器、內存、外設接口等…

JavaEE->多線程2

目錄 一、線程安全&#xff08;重點&#xff09; 1.線程安全演示 2.線程不安全的原因 1.線程是搶占式執行的&#xff08;執行順序是隨機的&#xff09; 2.多個線程同時修改了同一個變量 3.原子性 4.內存可見性 5.指令重排序&#xff08;有序性&#xff09; 二、解決線…

Flutter TCP通信

啟動TCP服務 Future<void> startServer() async {final server await ServerSocket.bind(InternetAddress.anyIPv4, 12345);print(Server listening on ${server.address}:${server.port});server.listen((Socket socket) {print(Client connected: ${socket.remoteAddr…

flask拆分計劃

兩個啟動鏈接&#xff0c;看日志提示是因為2次啟動&#xff0c;一次是database&#xff0c;一次是xmind2&#xff0c;去掉一次就可以&#xff0c;如何去掉一次&#xff1f; 這里啟動也調用了一次&#xff0c;所以測試環境注釋掉&#xff0c;如下圖&#xff0c;也就調用了一次

【生活】ECMO原理、作用、費用及使用方法

博客目錄 一、ECMO 是什么&#xff1f;二、ECMO 的作用1. 替代肺功能&#xff08;氧合與二氧化碳清除&#xff09;2. 替代心臟功能&#xff08;循環支持&#xff09;3. 為其他治療爭取時間4. 用于心肺復蘇&#xff08;ECPR&#xff09; 三、ECMO 的費用1. 設備使用費2. 耗材費用…

Profinet轉EtherCAT網關模塊怎么用:案例分享

在某制造工廠西門子S7-1200 PLC中&#xff0c;存在一個技術難題&#xff0c;即伺服驅動器與可編程邏輯控制器&#xff08;PLC&#xff09;之間的通訊不兼容問題。具體而言&#xff0c;PLC采用的是PROFINET通訊協議&#xff0c;而伺服EtherCAT協議驅動器則需要EtherCAT協議進行數…

什么是 NLP-NLP基礎知識體系的系統認知

NLP基礎知識體系的系統認知 一、引言 今天的學習內容集中于自然語言處理&#xff08;NLP&#xff09;的基本概念、發展歷程、核心任務及文本表示技術。通過這一學習過程&#xff0c;我對NLP這門學科有了更加系統和深入的認識&#xff0c;并且理解了NLP技術的廣泛應用及其復雜…

數據結構 學習 鏈表 2025年6月14日08點01分

單向鏈表: 線性數據結構 由一系列節點組成 每個節點包含: 數據部分:存儲實際數據 指針部分:儲存指向下一個節點的引用 特點1,每個節點只有一個指向下一個節點的指針 特點2,只能從頭到尾 單向遍歷 特點3,不需要連續的內存空間 特點4,插入和刪除效率高 特點5,隨機訪問 效率低 …

使用 Kubernetes 部署 PHP 留言板應用(含 Redis 架構)

使用 Kubernetes 部署 PHP 留言板應用&#xff08;含 Redis 架構&#xff09; 文章目錄 使用 Kubernetes 部署 PHP 留言板應用&#xff08;含 Redis 架構&#xff09;教程概述技術架構特點 準備工作環境要求 Redis 數據庫部署Redis 主從架構原理創建 Redis 領導者 Deployment部…

MATLAB提供的兩種畫誤差矩陣的函數

MATLAB在統計學和機器學習工具包中提供了兩種畫誤差矩陣&#xff08;Confusion matrix&#xff09;的函數。 figure; plotconfusion(YValidation,YPred)figure; cm confusionchart(YValidation,YPred) cm.Title Confusion Matrix for Validation Data; cm.RowSummary row-n…