從頭開始搭建一套Elasticsearch集群

前言

剛開始使用ES接觸的就是rpm或者是云上提供的ES服務,基本上開箱即用。特別是云上的ES服務,開局就是集群版本,提供的是優化后的參數配置、開箱即匹配訪問鑒權及常用插件,如無特殊需要基本上屏蔽了所有細節,直接可投入生產使用。

現在遇到一個問題,驗證一下遠程集群的配置和使用,在沒有多套集群的情況下,想在本地模擬兩套ES集群,不得不從頭走一遍ES集群從下載、自定義配置到啟動kibana可使用的這一套流程。簡單記錄一下ES維護最原始的狀態。

task:

  1. 啟動一個單節點的ES服務
  2. ES開啟鑒權
  3. 創建用戶
  4. 配置kibana

環境介紹

操作系統: macOS 12.1

硬件架構: ARM

ES: 8.12.2

Jdk: 22.0.1

下載es包

本次部署使用8.12.2版本的ES,不是最新版本,需要到https://www.elastic.co/cn/downloads/past-releases#elasticsearch頁面查找所需要的版本并下載。

下載地址如下:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-8-12-2

選擇對應原版本: MACOS AARCH64 : https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.2-darwin-aarch64.tar.gz

配置jdk

mac上使用brew安裝jdk

brew install java    #默認會安裝最新版的jdk

因為使用的ES基本也是最近的版本,最新版本的jdk可以支持ES運行。

手動安裝指定jdk版本

下載所需要的jdk版本后,解壓到指定的目錄

編輯{userhome}/.zshrc

export JAVA_HOME=/Users/abc-test/data/jdk1.8.0_411.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin

重新加載.zshrc

source .zshrc

配置ES

運行ES

解壓es包

tar -xzf elasticsearch-8.12.2-darwin-x86_64.tar.gz

修改端口號(同一臺機器上要運行多個ES進程,修改端口號避免沖突)

vim elasticsearch-8.12.2/config/elasticsearch.yml
#
cluster.name: remote-test                      #修改集群名稱
node.name: node-101                             #指定節點名稱
network.host: 0.0.0.0															#綁定的地址,如不打開端口只監聽127.0.0.1
http.port: 19200																				#指定http端口
cluster.initial_master_nodes: ["node-101"]            #master節點 單節點集群填本身就可以,多節點集群需要填上master節點的列表
transport.port: 19300                                #tcp的監聽端口

修改完成啟動ES進程

#后臺執行
bin/elasticsearch  -d 

用戶

ES進程啟動后,會在第一次啟動時打印出內置用戶elastic的密碼。 日志類似這樣:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
? Elasticsearch security features have been automatically configured!
? Authentication is enabled and cluster connections are encrypted.

?? Password for the elastic user (reset with bin/elasticsearch-reset-password -u elastic):
XQZ2EWK3LG8SaB*AYrdM

?? HTTP CA certificate SHA-256 fingerprint:
79f5240be4f0a02af881d7c73a626741d6e8df9ff130e52603f668635ab746c6

?? Configure Kibana to use this cluster:
? Run Kibana and click the configuration link in the terminal when Kibana starts.
? Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiMTAuMjUzLjMuMTU5OjE5MjAwIl0sImZnciI6Ijc5ZjUyNDBiZTRmMGEwMmFmODgxZDdjNzNhNjI2NzQxZDZlOGRmOWZmMTMwZTUyNjAzZjY2ODYzNWFiNzQ2YzYiLCJrZXkiOiJzd3hlbTVBQnRqajNYdHpDUFdHZzpZTnEtOGRTcFI0bVQ1c3phZjMtWVh3In0=

?? Configure other nodes to join this cluster:
? Copy the following enrollment token and start new Elasticsearch nodes with bin/elasticsearch --enrollment-token <token> (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjEyLjIiLCJhZHIiOlsiMTAuMjUzLjMuMTU5OjE5MjAwIl0sImZnciI6Ijc5ZjUyNDBiZTRmMGEwMmFmODgxZDdjNzNhNjI2NzQxZDZlOGRmOWZmMTMwZTUyNjAzZjY2ODYzNWFiNzQ2YzYiLCJrZXkiOiJzZ3hlbTVBQnRqajNYdHpDUFdHZzpYdmMyc0NQN1EzMlIzODJYbVExNHdnIn0=

If you’re running in Docker, copy the enrollment token and run:
docker run -e "ENROLLMENT_TOKEN=<token>" docker.elastic.co/elasticsearch/elasticsearch:8.12.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

可自行重置默認密碼

bin/elasticsearch-reset-password -u elastic

驗證ES啟動是否成功

curl localhost:19200/_cat/health -u "elastic:XQZ2EWK3LG8SaB*AYrdM"

正常返回

1720593690 06:41:30 remote-test green 1 1 1 1 0 0 0 0 - 100.0%

ES啟動成功。

配置kibana

使用了一段時間kibana作為ES的命令行和管理工具后,發現有界面的系統是真的香,索引管理,數據展示,dev tools 作常用功能模塊已基本上滿足日常管理需求,且不論更進一步的數據分析等模塊。緊跟ES也跑一個kibana的實例出來。 這里注意kibana要跟ES的版本保持一致。

下載包

匹配ES版本的kibana: https://artifacts.elastic.co/downloads/kibana/kibana-8.12.2-darwin-aarch64.tar.gz

修改配置

下載到本地后,解壓,修改配置

vim config/kibana.yml

server.port: 5602
server.ssl.enabled: false     #本地使用,禁用https協議
elasticsearch.hosts: ["http://localhost:19200"]          #配置ES的地址
elasticsearch.username: "kibana_system"           #連接ES的用戶名
elasticsearch.password: "As4fpYOfz-ufMr7zI8dt"                     #連接ES的密碼

這里需要到ES中重置kibana_system的密碼,kibana_system是ES系統內置的用戶。

 bin/elasticsearch-reset-password -u kibana_system

過程如下:

? elasticsearch-8.12.2 bin/elasticsearch-reset-password -u kibana_system
This tool will reset the password of the [kibana_system] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y

Password for the [kibana_system] user successfully reset.
New value: As4fpYOfz-ufMr7zI8dt

啟動

bin/kibana

在這里插入圖片描述

附錄

知其所以然

內置用戶

es提供了一系列的內置用戶來運行和管理ES進程,這些用戶設置了固定的權限。但是這些用戶在沒有設置密碼前是不能使用的。elastic是內置的超級用戶,可以用來設置其他用戶的密碼。elastic用戶自己的密碼在ES啟動的時候會由進程自動設置,并在啟動日志中打印出來。

es的內置用戶:

  • elastic #超級管理員用戶
  • kibana_system #kibana用戶用于kibana連接elasticsearch
  • logstash_system #logstash使用
  • Beats_system #beats 程序使用
  • apm_system #apm功能
  • Remote_monitoring_user #遠程監控功能用戶

內置用戶存儲在.security這個特殊的索引中,當用戶的密碼改變時,會同步這些變更內容到各個節點。一旦這個特殊的索引被刪除或者被快照等其他數據所覆蓋,之前針對用戶所做的所有操作都會丟失。

針對內置用戶可以使用bin/elasticsearch-reset-password修改用戶密碼

bin/elasticsearch-reset-password -u kibana_system

初次啟動的集群只有重置密碼后才能使用。

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

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

相關文章

深入了解 MySQL 的 EXPLAIN 命令

一、什么是 EXPLAIN 命令&#xff1f; EXPLAIN 命令用于顯示 MySQL 如何執行某個 SQL 語句&#xff0c;尤其是 SELECT 語句。通過 EXPLAIN 命令&#xff0c;可以看到查詢在實際執行前的執行計劃&#xff0c;這對于優化查詢性能至關重要。 二、EXPLAIN 的基本用法 要使用 EXP…

如何禁用鍵盤上的特定鍵或快捷方式?這里有詳細步驟

要禁用特定的鍵盤鍵或快捷鍵嗎&#xff1f;微軟官方應用程序Microsoft PowerToys使這項任務變得非常簡單。以下是使用Microsoft PowerToys中的鍵盤管理器禁用特定鍵或快捷方式的快速指南。 如果你還沒有安裝Microsoft PowerToys 如果你的設備上沒有安裝Microsoft PowerToys&a…

springboot上傳圖片

前端的name的值必須要和后端的MultipartFile 形參名一致 存儲本地

3.2、matlab單目相機標定原理、流程及實驗

1、單目相機標定流程及步驟 單目相機標定是通過確定相機的內部和外部參數,以便準確地在圖像空間和物體空間之間建立映射關系。下面是單目相機標定的流程及步驟: 搜集標定圖像:使用不同角度、距離和姿態拍攝一組標定圖像,并確保標定板(可以是棋盤格或者圓形標定板)完整可…

鴻蒙開發:Universal Keystore Kit(密鑰管理服務)【匿名密鑰證明(C/C++)】

匿名密鑰證明(C/C) 在使用本功能時&#xff0c;需確保網絡通暢。 在CMake腳本中鏈接相關動態庫 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)開發步驟 確定密鑰別名keyAlias&#xff0c;密鑰別名最大長度為64字節&#xff1b;初始化參數集&#xff1a;通過[OH_Huk…

AcWing 667. 游戲時間

讀取兩個整數 A&#x1d434; 和 B&#x1d435;&#xff0c;表示游戲的開始時間和結束時間&#xff0c;以小時為單位。 然后請你計算游戲的持續時間&#xff0c;已知游戲可以在一天開始并在另一天結束&#xff0c;最長持續時間為 2424 小時。 如果 A&#x1d434; 與 B&…

css3 transform的旋轉和位移制作太陽花

css3 transform 實例展示知識點rotate 旋轉translate 位移transform: translate(300px,200px) rotate(90deg) 實例代碼 實例展示 知識點 transform的兩個屬性 rotate 旋轉 translate 位移 transform: translate(300px,200px) rotate(90deg) 實例代碼 <!DOCTYPE html&g…

flask 定時任務(APScheduler)使用current_app app_context()上下文

前言: 描述&#xff1a;flask定時任務調用的方法中使用了current_app.logger.info()記錄日志報錯 報錯代碼 raise RuntimeError(unbound_message) from None RuntimeError: Working outside of application context.This typically means that you attempted to use functiona…

IDEA中Git常用操作及Git存儲原理

Git簡介與使用 Intro Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git是一款分布式版本控制系統&#xff08;VSC&#xff09;&#xff0c;是團隊合作開發…

算法學習筆記(8.3)-(0-1背包問題)

目錄 最常見的0-1背包問題&#xff1a; 第一步&#xff1a;思考每輪的決策&#xff0c;定義狀態&#xff0c;從而得到dp表 第二步&#xff1a;找出最優子結構&#xff0c;進而推導出狀態轉移方程 第三步&#xff1a;確定邊界條件和狀態轉移順序 方法一&#xff1a;暴力搜素…

KBS(Knowledge-Based Systems)期刊投稿記錄

記錄一些關鍵時間節點 2023.12.31 投稿 2024.01.30 返回審稿意見 2024.05.20 提交r1 2024.05.31 返回審稿意見(conditional accept)包括語言潤色 2024.06.09 提交r2&#xff0c;沒有使用愛思維爾的潤色 2024.06.10 with editor 2024.06.13 under review 2024.06.24 revise(折磨…

MFC之對話框--線寬/線型/顏色

文章目錄 線寬輸入實現優化無法記錄上一次線粗問題 線寬滑動實現實現選擇線類型實現顏色選擇總結 線寬輸入實現 優化無法記錄上一次線粗問題 線寬滑動實現 實現選擇線類型 實現顏色選擇 總結 1。創建新窗口&#xff08;dialog)會創建一個新的類&#xff0c;在類中實現窗口中的…

vue中父子傳遞屬性值

1、父傳子屬性值 自定義圖庫組件 在add.vue中應用tuku組件并給默認值 效果 2、 子傳父&#xff0c;逆向賦值 add.vue和第一問中一樣 修改tuku組件&#xff0c;傳值給add.vue 3、多個傳遞 效果&#xff1a; 點擊兩個修改按鈕后 4、使用defineModel簡化父子傳值 其他代碼跟…

【postgresql】時間函數和操作符

日期/時間操作符 加減操作符&#xff1a; 和 - 可以用于日期、時間、時間戳和時間間隔的加減操作。 SELECT 2024-01-01::date INTERVAL 1 day as "date"; ; -- 結果&#xff1a;2024-01-02SELECT 2024-01-01 12:00:00::timestamp - INTERVAL 2 hours as "…

概率論原理精解【2】

文章目錄 笛卡爾積任意笛卡爾積投影映射概述詳解一一、定義二、性質三、應用四、結論 詳解二定義與性質應用與意義示例結論 參考文獻 笛卡爾積 任意笛卡爾積 { A t , t ∈ T } \{A_t,t \in T\} {At?,t∈T}是一個集合族&#xff0c;其中T為一個非空指標集&#xff0c;稱 t ∈…

CSS上下懸浮特效

要實現一個上下懸浮的特效&#xff0c;可以使用CSS的keyframes規則和動畫屬性。以下是一個簡單的示例&#xff1a; 代碼示例 /* 定義一個名為floating的動畫 */ keyframes floating {0% {transform: translateY(0); /* 初始位置 */}50% {transform: translateY(-4px); /* 向上…

M1000 4G藍牙網關:高速穩定,賦能物聯網新體驗

桂花網M1000的4G移動網絡功能主要體現在以下幾個方面&#xff1a; 一、高速穩定的數據傳輸 高速率&#xff1a;M1000支持4G移動網絡&#xff0c;能夠實現高速的數據傳輸。根據4G網絡的技術標準&#xff0c;其理論上的最大下行速率可達到數百Mbps&#xff08;如TD-LTE在20MHz帶…

KALI使用MSF攻擊安卓設備

這期是kali使用MSF進行安卓滲透的保姆級別教程&#xff0c;話不多說&#xff0c;直接開始。 準備材料&#xff1a; 1.裝有kali的實體機或虛擬機&#xff08;這里用實體機進行演示&#xff09; 2.一臺安卓10.0以下的手機 打開kali&#xff0c;先用ifconfig查看自己的kali IP地址…

Python3極簡教程(一小時學完)下

目錄 PEP8 代碼風格指南 知識點 介紹 愚蠢的一致性就像沒腦子的妖怪 代碼排版 縮進 制表符還是空格 每行最大長度 空行 源文件編碼 導入包 字符串引號 表達式和語句中的空格 不能忍受的情況 其他建議 注釋 塊注釋 行內注釋 文檔字符串 版本注記 命名約定 …

[BJDCTF2020]EasySearch1

知識點&#xff1a; 1.swp泄露 2.md5碰撞 3.PHP代碼審計 4.SSI代碼執行漏洞 // Apache SSI 遠程命令執行漏洞復現 看著像sql注入&#xff0c;不過注入無果&#xff0c;掃一下目錄試試~ 發現是swp泄露. SWP文件泄露漏洞是指在使用 Vim編輯器 編輯一個文件時&#xff0c;Vim會在…