ELK服務搭建-0-1搭建記錄

ELK搭建

需要準備一臺linux服務器(最好是CentOS7),內存至少4G以上(三個組件都比較占用內存)

演示基于ElasticSearch采用的是8.5.0版本

1、 Docker安裝Elasticsearch

創建一個網絡

因為我們還需要部署kibana容器、logstash容器,需要讓這些容器互聯。

docker network create elk
下載鏡像
docker pull elasticsearch:8.5.0
在宿主機建立文件夾
mkdir -p /opt/elk/elasticsearch/{config,plugins,data}
制作配置文件
cat <<EOF> /opt/elk/elasticsearch/config/elasticsearch.yml
xpack.security.enabled: false
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: false  # 不配報錯
xpack.security.enrollment.enabled: true
http.host: 0.0.0.0
EOF
修改權限
chmod -R 777 /opt/elk/elasticsearch
創建容器
docker run -d \--name es850 \-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \-e "discovery.type=single-node" \-v /opt/elk/elasticsearch/data:/usr/share/elasticsearch/data \-v /opt/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /opt/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \--privileged \--network elk \-p 9200:9200 \-p 9300:9300 \
elasticsearch:8.5.0
最終效果

在瀏覽器中輸入:http://39.106.67.195:9200/ (按照自己的ip訪問)即可看到elasticsearch的響應結果:

image-20231216000413106

2 、Docker安裝Logstash

拉取鏡像
docker pull logstash:8.5.0
創建文件
mkdir -p /opt/elk/logstash/{pipeline,config}
進入logstash文件
cd /opt/elk/logstash/pipeline
vim logstash.conf
input {tcp {mode => "server"host => "0.0.0.0"port => 5044codec => json_lines}
}
filter{}
output {elasticsearch {hosts => "es850:9200"index => "tingshu-%{+YYYY.MM.dd}"}
}
進入config文件
cd /opt/elk/logstash/config
vim logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://es850:9200" ] #設置跟es的服務地址
創建容器
docker run -d \
-p 5044:5044 \
-p 9600:9600 \
--name logstash850 \
--network=elk \
-v /opt/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /opt/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
logstash:8.5.0

3、Docker安裝Kibana

拉取鏡像
docker pull kibana:8.5.0
創建目錄
mkdir -p /opt/elk/kibana/{config,data}
進入config文件
cd /opt/elk/kibana/config
vim kibana.yml
server.host: "0.0.0.0"  # 不配報錯
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://es850:9200" ]
i18n.locale: "zh-CN"

創建容器

docker run -d \
--name kibana850 \
--network=elk \
-v /opt/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-p 5601:5601  \
kibana:8.5.0
  • --network elk :加入一個名為es-net的網絡中,與elasticsearch在同一個網絡中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":設置elasticsearch的地址,因為kibana已經與elasticsearch在一個網絡,因此可以用容器名直接訪問elasticsearch
  • -p 5601:5601:端口映射配置

此時,在瀏覽器輸入地址訪問:http://8.140.252.86:5601,即可看到結果

image-20231116220614618

image-20231116212139062

4、 SpringBoot項目對接Logstash

在項目的pom文件中添加新的依賴
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.6</version>
</dependency>

目前,我們采用的logback來采集日志進行上報給logstash,logstash對接es,把數據存入到es中,最終通過kibana展示。

在application.yml文件中設置logback配置的目錄
logging:config: classpath:logback-spring.xml
在resources目錄中新增一個文件logback-spring.xml(注意命名,不要修改)
<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/base.xml" /><springProperty scope="context" name="springAppName" source="spring.application.name"/><springProperty scope="context" name="serverPort" source="server.port"/><appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!--logstash的服務地址和端口,可以實際情況設置--><destination>8.140.252.86:5044</destination><!-- 日志輸出編碼 --><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"><providers><timestamp><timeZone>UTC</timeZone></timestamp><pattern><pattern>{<!--應用名稱 -->"app": "${springAppName}_${serverPort}",<!--打印時間 -->"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",<!--線程名稱 -->"thread": "%thread",<!--日志級別 -->"level": "%level",<!--日志名稱 -->"logger_name": "%logger",<!--日志信息 -->"message": "%msg",<!--日志堆棧 -->"stack_trace": "%exception"}</pattern></pattern></providers></encoder></appender><!--定義日志文件的存儲地址,使用絕對路徑--><property name="LOG_HOME" value="/home/logs"/><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件輸出的文件名--><fileNamePattern>${LOG_HOME}/${springAppName}-${serverPort}-%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="LOGSTASH" /><appender-ref ref="FILE" /><appender-ref ref="CONSOLE" /></root>
</configuration>

5、 ELK基本使用

5.1 查看索引文件

對接項目之后,可以啟動項目,產生一些日志數據

然后打開kibana,找到索引管理

image-20231216224729221

可以直接查看已創建的日志索引

image-20231216224931215

5.2 添加索引模式

如果想用kibana方便的查看日志的數據,可以添加索引模式,如下圖

image-20231216225030686

點擊創建索引模式,輸入想要管理的索引名稱,保存

image-20231216225130065

5.3 檢索日志

打開Discover

image-20231216225223719

檢索日志,選擇不同的索引,可以按照不同的字段檢索,或者在輸入框直接輸入內容,也是可以的

工作定位線上問題:

image-20231116224253274

image-20231116224229017

6、 設置用戶名密碼

一、先操作ES容器

修改配置文件
vim /opt/elk/elasticsearch/config/elasticsearch.yml

image-20231221231439766

重啟容器

docker restart  123
進入容器
docker exec -it 123  /bin/bash
執行創建密碼的命令

為所有用戶輸入密碼(可以為同一個),完事后回到宿主機 ,重啟容器elasticsearch

./bin/elasticsearch-setup-passwords interactive

image-20231216234125531

image-20231222001530410

重新啟動es鏡像
docker restart  123

二、再操作Kibana

修改宿主機配置文件

vim /opt/elk/kibana/config/kibana.yml

追加下面內容

elasticsearch.username: "kibana_system"
elasticsearch.password: "111111"
重啟kibana
docker restart 34c

三、再操作logstash

修改宿主機配置文件

vim /opt/elk/logstash/pipeline/logstash.conf

追加下面內容

user   => "elastic"
password => "111111" 

image-20231216234524777

vim /opt/elk/logstash/config/logstash.yml

追加下面內容

image-20231222003751511

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "elastic"
xpack.monitoring.elasticsearch.password: "111111"
重啟logstash
docker restart 993

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

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

相關文章

調參指南:如何有效優化模型訓練效果

?? 調參指南:如何有效優化模型訓練效果(深度學習實戰) 模型跑通不難,調得好才是本事。本篇文章將系統講解如何在訓練過程中有效調參,從學習率到網絡結構,從損失函數到正則化,讓你的模型效果“飛升”。 ?? 一、為什么需要調參? 初學者常常以為模型訓練完就“任務完…

laya3的2d相機與2d區域

2d相機和2d區域都繼承自Sprite。 2d相機必須作為2d區域的子節點&#xff0c;且2d相機必須勾選isMain才能正常使用。 2d區域下如果沒有主相機&#xff0c;則他和Sprite無異&#xff0c;他的主要操作皆是針對主相機。 2d相機可以調整自己的移動范圍&#xff0c;是否緊密跟隨&a…

【保姆級教程】Windows部署LibreTV+cpolar實現遠程影音庫訪問全步驟

文章目錄 前言1.關于LibreTV2.docker部署LibreTV3.簡單使用LibreTV4.安裝cpolar內網穿透5.配置ward公網地址6.配置固定公網地址總結 前言 當周末的閑暇時光來臨時&#xff0c;您是否也習慣性地癱倒在沙發上&#xff0c;渴望通過影視作品緩解一周的疲憊&#xff1f;然而在準備點…

Windows安裝Docker部署dify,接入阿里云api-key進行rag測試

一、安裝docker 1.1 傻瓜式安裝docker Get Docker | Docker Docs Docker原理&#xff08;圖解秒懂史上最全&#xff09;-CSDN博客 官網選擇好windows的安裝包下載&#xff0c;傻瓜式安裝。如果出現下面的報錯&#xff0c;說明主機沒有安裝WSL 1.2 解決辦法 安裝 WSL | Mic…

Cursor 與DeepSeek的完美契合

這兩天在看清華大學最近出的一個關于deepseek入門的官方視頻中&#xff0c;看了幾個deepseek的應用場景還是能夠感覺到它的強大之處的&#xff0c;例如根據需求生成各種markdown格式的代碼&#xff0c;再結合市面上已有的一些應用平臺生成非常好看的流程圖&#xff0c;PPT,報表…

【深度學習】13. 圖神經網絡GCN,Spatial Approach, Spectral Approach

圖神經網絡 圖結構 vs 網格結構 傳統的深度學習&#xff08;如 CNN 和 RNN&#xff09;在處理網格結構數據&#xff08;如圖像、語音、文本&#xff09;時表現良好&#xff0c;因為這些數據具有固定的空間結構。然而&#xff0c;真實世界中的很多數據并不遵循網格結構&#x…

[Python] 避免 PyPDF2 寫入 PDF 出現黑框問題:基于語言自動匹配系統字體的解決方案

在使用 Python 操作 PDF 文件時,尤其是在處理中文、日語等非拉丁字符語言時,常常會遇到一個令人頭疼的問題——文字變成“黑框”或“方塊”,這通常是由于缺少合適的字體支持所致。本文將介紹一種自動選擇系統字體的方式,結合 PyPDF2 模塊解決此類問題。 一、問題背景:黑框…

Java求職面試:從核心技術到AI與大數據的全面考核

Java求職面試&#xff1a;從核心技術到AI與大數據的全面考核 第一輪&#xff1a;基礎框架與核心技術 面試官&#xff1a;謝飛機&#xff0c;咱們先從簡單的開始。請你說說Spring Boot的啟動過程。 謝飛機&#xff1a;嗯&#xff0c;Spring Boot啟動的時候會自動掃描組件&…

Espresso 是什么

Espresso 是 Android 開發者的首選 UI 測試工具&#xff0c;是 Google 官方推出的 Android 應用 UI 測試框架&#xff0c;專為 白盒測試 設計&#xff0c;強調 速度快、API 簡潔&#xff0c;適合開發者在編寫代碼時同步進行自動化測試。它是 Android Jetpack 測試工具的一部分&…

Axios 如何通過配置實現通過接口請求下載文件

前言 今天&#xff0c;我寫了 《Nodejs 實現 Mysql 數據庫的全量備份的代碼演示》 和 《NodeJS 基于 Koa, 開發一個讀取文件&#xff0c;并返回給客戶端文件下載》 兩篇文章。在這兩篇文章中&#xff0c;我實現了數據庫的備份&#xff0c;和提供數據庫下載等接口。 但是&…

IDEA項目推送到遠程倉庫

打開IDEA——>VCS——>Creat Git 選擇項目 push提交到本地 創建遠程倉庫 復制地址 定義遠程倉庫 推送 推送成功

Prompt工程:解鎖大語言模型的終極密鑰

Prompt工程&#xff1a;解鎖大語言模型的終極密鑰 一、引言&#xff1a;Prompt的戰略價值重構 在人工智能技術加速滲透的2025年&#xff0c;Prompt&#xff08;提示詞&#xff09;作為連接人類意圖與大語言模型&#xff08;LLM&#xff09;的核心接口&#xff0c;其戰略地位已…

架構意識與性能智慧的雙重修煉

架構意識與性能智慧的雙重修煉 ——現代軟件架構師的核心能力建設指南 作者:藍葛亮 ??引言 在當今快速發展的技術環境中,軟件架構師面臨著前所未有的挑戰。隨著業務復雜度的不斷增長和用戶對性能要求的日益嚴苛,如何在架構設計中平衡功能實現與性能優化,已成為每個技術…

Flutter下的一點實踐

目錄 1、背景2、refena創世紀代碼3、localsend里refena的刷新3.1 初始狀態3.2 發起設備掃描流程3.3 掃描過程3.3 刷新界面 4.localsend的設備掃描流程4.1 UDP廣播設備注冊流程4.2 TCP/HTTP設備注冊流程4.3 localsend的服務器初始化工作4.4總結 1、背景 在很久以前&#xff0c;…

Allegro 輸出生產數據詳解

說明 用于PCB裸板的生產可以分別單獨創建文件 光繪數據(Gerber)、鉆孔(NC Drill)、IPC網表;或者通過ODB++或IPC2581文件(這是一個新格式),它包含生產裸板所需要的所有信息 光繪數據 Artwork Gerber 光繪數據一般包含設計中各個層面的蝕刻線路、阻焊、鉛錫、字符等信…

5.LoadBalancer負載均衡服務調用

目錄 一、Ribbon目前也進入維護模式 二、spring-cloud-loadbalancer概述 三、spring-cloud-loadbalancer負載均衡解析 1.負載均衡演示案例-理論 2.負載均衡演示案例-實操 按照8001拷貝后新建8002微服務 啟動Consul,將8001/8002啟動后注冊進微服務 Consul數據持久化配置…

linux安裝ffmpeg7.0.2全過程

?編輯 白眉大叔 發布于 2025年4月16日 評論關閉 閱讀(341) centos 編譯安裝 ffmpeg 7.0.2 &#xff1a;連接https://www.baimeidashu.com/19668.html 下載 FFmpeg 源代碼 在文章最后 一、在CentOS上編譯安裝FFmpeg 以常見的CentOS為例&#xff0c;FFmpeg的編譯說明頁面為h…

視頻逐幀提取圖片的工具

軟件功能&#xff1a;可以將視頻逐幀提取圖片&#xff0c;可以設置每秒提取多少幀&#xff0c;選擇提取圖片質量測試環境&#xff1a;Windows 10軟件設置&#xff1a;由于軟件需要通過FFmpeg提取圖片&#xff0c;運行軟件前請先設置FFmpeg&#xff0c;具體步驟 1. 請將…

java精簡復習

MyBatis批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO users(name, age) VALUES<foreach collection"list" item"item" separator",">(#{item.name}, #{item.age})</foreac…

IP 網段

以下是關于 IP 網段 的詳細解析&#xff0c;涵蓋基本概念、表示方法、劃分規則及實際應用場景&#xff1a; 一、網段核心概念 1. 什么是網段&#xff1f; 網段指一個邏輯劃分的 IP 地址范圍&#xff0c;屬于同一子網的設備可以直接通信&#xff08;無需經過路由器&#xff09…