rocky8 --Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】

軟件說明:

所有軟件包下載地址:Past Releases of Elastic Stack Software | Elastic

打開頁面后選擇對應的組件及版本即可!

所有軟件包名稱如下:

架構拓撲:

  1. 集群模式:

  1. 單機模式

架構規劃:

  1. 集群模式

角色主機名IP地址
圖形展示kibana192.168.166.111
日志存儲es1192.168.158.6
es2192.168.166.113
es3192.168.166.114
日志收集分析lostash1192.168.166.166
lostash2192.168.166.116
lostash3192.168.166.117
日志采集access、error192.168.166.118

  1. 單機模式

    角色主機名IP地址
    圖形展示kibana192.168.166.111
    日志存儲es192.168.158.6
    日志收集分析lostash192.168.166.113
    日志采集access、error192.168.166.114

    說明:以下部署過程為單機模式部署,集群模式請自行修改部署!!!

一、 Elasticsearch安裝與配置

修改主機名

[root@localhost ~]# hostnamecl set-hostname  es
[root@localhost ~]# bash
[root@es ~]#

配置主機名解析

[root@es ~]# cat /etc/hosts
192.168.166.111 kibana
192.168.158.6 es
192.168.166.113 logstash
192.168.166.114 nginx

時間同步?

[root@elk ~]# vim /etc/chrony.conf server ntp.aliyun.com iburst[root@elk ~]# systemctl restart chronyd.service 
[root@elk ~]# date
2025年 07月 16日 星期三 20:48:10 CST

?

安裝JAVA8

[root@es ~]# yum install -y java

(Rocky8 yum安裝版本為java-1.8.0-openjdk)??

將elasticsearch軟件包拷貝至elk主機執行安裝

[root@es ~]# yum localinstall -y elasticsearch-7.1.1-x86_64.rpm#安裝軟件包需要的依賴

?

配置elasticsearch

[root@es ~]# cd /etc/elasticsearch/
[root@es elasticsearch]# cat elasticsearch.yml | grep -Ev "^#"
cluster.name: my-application #集群名稱
node.name: es #節點主機名
path.data: /var/lib/elasticsearch #數據存放目錄
path.logs: /var/log/elasticsearch #日志存放目錄
network.host: 192.168.158.6 #監聽IP地址
http.port: 9200 #監聽端口號
cluster.initial_master_nodes: ["es"] #主節點
http.cors.enabled: true
http.cors.allow-origin: "*"
?
#####集群模式下修改為如下配置:
cluster.name: my-application #集群名稱
node.name: es #節點主機名
path.data: /var/lib/elasticsearch #數據存放目錄
path.logs: /var/log/elasticsearch #日志存放目錄
network.host: 192.168.158.6 #監聽IP地址
http.port: 9200 #監聽端口號
http.cors.enabled: true #跨域訪問
http.cors.allow-origin: "*" #跨域訪問
cluster.initial_master_nodes: ["192.168.158.6","192.168.166.113","192.168.166.114"] #主節點
discovery.zen.ping.unicast.hosts: ["192.168.158.6", "192.168.166.113", "192.168.166.114"] # 配置自動發現
discovery.zen.minimum_master_nodes: 2 #防止集群“腦裂”,需要配置集群最少主節點數目,通常為 (主節點數目/2) + 1

啟動elasticsearch服務并設置開機自啟動

[root@es ~]# systemctl start elasticsearch.service
[root@es ~]# systemctl enable elasticsearch.service實驗環境開機自啟會占用大量內存,易卡頓,這里僅啟動

驗證啟動結果

[root@es ~]# systemctl status elasticsearch.service
[root@es ~]# ss -antl|grep 9200

?

二、 logstash安裝與配置

修改主機名
[root@localhost ~]# hostnamecl set-hostname  logstash
[root@localhost ~]# bash
[root@logstash ~]#
配置主機名解析
[root@logstash ~]# cat /etc/hosts
192.168.166.111 kibana
192.168.158.6 es
192.168.166.113 logstash
192.168.166.114 nginx
安裝JAVA8(系統自帶)
[root@logstash ~]# yum install -y java

將logstash軟件包拷貝至elk主機執行安裝

[root@logstash ~]# yum localinstall -y logstash-7.1.1.rpm

優化logstash命令

[root@logstash ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

配置logstash

[root@logstash ~]# cd /etc/logstash/
[root@logstash logstash]# cat logstash.yml
path.data: /var/lib/logstash #數據存儲路徑
http.host: "192.168.166.113" #監聽地址
http.port: 9600-9700 #監聽端口范圍
path.logs: /var/log/logstash #日志存儲路徑

測試logstash服務的數據傳輸

##標準輸入與輸出
[root@logstash ~]# logstash -e 'input{ stdin{} }output { stdout{} }'
##使用rubydebug解碼
[root@logstash ~]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug }}'
##輸出到elasticsearch
[root@logstash ~]# logstash -e 'input { stdin{} } output { elasticsearch{ hosts=>["192.168.158.6:9200"]} }'

創建配置文件

[root@logstash ~]# cd /etc/logstash/conf.d/logstash/conf.d
[root@logstash ~]# cat pipline.conf
input {beats {port => 5044}
}
output {if "access" in [tags] {elasticsearch {hosts => ["192.168.158.6:9200"]index => "access-%{+YYYY.MM.dd}"}}if "error" in [tags] {elasticsearch {hosts => ["192.168.158.6:9200"]index => "error-%{+YYYY.MM.dd}"}}
###日志進行標準輸出,觀察日志獲取的過程###stdout {codec => rubydebug}
}
?
#####集群模式下修改問如下配置:
input {beats {port => 5044}
}
output {if "access" in [tags] {elasticsearch {hosts => ["192.168.158.6:9200"]index => "access-%{+YYYY.MM.dd}"}}if "error" in [tags] {elasticsearch {hosts => ["192.168.158.6:9200"]index => "error-%{+YYYY.MM.dd}"}}
###日志進行標準輸出,觀察日志獲取的過程###
?stdout {codec => rubydebug}
}

啟動logstash服務

[root@logstash ~]# logstash -f /etc/logstash/conf.d/pipline.conf &

三、 nginx、filebeat安裝與配置

修改主機名

[root@localhost ~]# hostnamecl set-hostname  nginx
[root@localhost ~]# bash
[root@nginx ~]#

配置主機名解析

[root@logstash ~]# cat /etc/hosts
192.168.166.111 kibana
192.168.158.6 es
192.168.166.113 logstash
192.168.166.114 nginx

nginx安裝與啟動

[root@nginx ~]# yum install -y epel-release
[root@nginx ~]# yum install -y nginx
[root@nginx ~]# systemctl start nginx

filebeat安裝

[root@nginx ~]# yum localinstall -y filebeat-7.1.1-x86_64.rpm

filebeat配置項

[root@nginx ~]# cd /etc/filebeat
[root@nginx ~]# cat filebeat.yml
配置項作用
filebeat.inputs輸入配置塊,用于指定 Filebeat 應該監聽哪些文件并將其作為輸入。你可以指定文件路徑、文件類型、文件格式等。
filebeat.prospectors這是一種更靈活的輸入方式,它允許你同時監聽多個目錄或文件系統中的多個文件。它結合了輸入和輸出配置項,使得配置更加靈活。
filebeat.config用于加載和執行自定義的配置文件。你可以使用此選項加載其他 YAML 文件,以便在 Filebeat 中使用自定義規則和插件。
output.elasticsearch輸出配置塊,用于將日志數據發送到 Elasticsearch。你可以指定 Elasticsearch 的地址、端口、索引名稱等。
output.logstash輸出配置塊,用于將日志數據發送到 Logstash。你可以指定 Logstash 的地址、端口、輸入格式等。
filebeat.harvesterHarvester 是 Filebeat 的核心組件之一,負責監聽文件并將其拆分為事件。你可以通過配置項來調整 Harvester 的行為,例如事件級別、分隔符等。
filebeat.scannerScanner 負責定期掃描指定路徑中的新文件并觸發事件收集。你可以通過配置項來調整 Scanner 的行為,例如掃描頻率、延遲等。
filebeat.processor處理器用于對收集到的日志事件進行處理和解析。你可以使用內置的處理器類型(如過濾器、映射器等)來對事件進行過濾、轉換和編碼。
filebeat.registry注冊表用于存儲 Filebeat 的配置信息、事件數據和資源狀態。你可以通過配置項來調整注冊表的行為和存儲方式。

日志收集

filebeat 7.1以上支持模版收集日志和傳統方式收集日志,具體每個方式的配置如下:

1、 采用filebeat的nginx模塊收集nginx日志

##filebeat模塊操作命令:
#查看支持的模塊
[root@nginx ~]# filebeat modules list
#啟用nginx模塊
[root@nginx ~]# filebeat modules enable nginx
#配置nginx模塊
[root@nginx ~]# cd /etc/filebeat/modules.d
[root@nginx ~]# cat nginx.yml
- module: nginx# Access logsaccess:enabled: truevar.paths: ["/var/log/nginx/access.log"]# Error logserror:enabled: truevar.paths: ["/var/log/nginx/error.log"]
#################測試配置文件
[root@localhost ~]# filebeat test config -e

2、傳統方式收集

輸出給logstash

[root@localhost ~]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/access/*.logtags: "nignx1"
- type: logenabled: truepaths:- /var/log/error/*.logtags: "nignx2"
output.logstash:hosts: ["192.168.166.113:5044"]
#################測試配置文件
[root@localhost ~]# filebeat test config -e

輸出給elasticsearch

[root@localhost ~]# cat /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/nginx/access.log- /var/log/nginx/error.log
output.elasticsearch:# Array of hosts to connect to.hosts: ["192.168.166.129:9200"]index: "nginx-access-%{[host.name]}-%{+yyyy.MM.dd}"# 自定義索引名稱
setup.ilm.enabled: false ? # 索引生命周期 ilm 功能默認開啟,開啟情況下索引名稱只能為 filebeat-*
setup.template.name: "nginx1" # 定義模板名稱
setup.template.pattern: "nginx1-*" # 定義模板的匹配索引名稱
?
#####產生不同索引的方法#####
output.elasticsearch:# Array of hosts to connect to.hosts: ["192.168.166.22:9200"]indices:- index: "nginx1-access-logs"when:contains:{ "message": "GET"}- index: "nginx1-error-logs"when:contains:{ "message": "error" }
setup.ilm.enabled: false
setup.template.name: "nginx1"
setup.template.pattern: "nginx1-*"
?
#################測試配置文件
[root@localhost ~]# filebeat test config -e

啟動filebeat

[root@nginx ~]# systemctl start filebeat
[root@nginx ~]# systemctl enabled filebeat

es續期

 curl -XPosT 'http://192.168.88.133:9200/_license/start_trial?acknowledge=true'

四、 Kibana安裝與配置

修改主機名

[root@localhost ~]# hostnamecl set-hostname  logstash
[root@localhost ~]# bash
[root@logstash ~]#

配置主機名解析

[root@logstash ~]# cat /etc/hosts
192.168.166.111 kibana
192.168.158.6 elk
192.168.166.113 logstash
192.168.166.114 nginx
192.168.166.166 tomcat
192.168.166.116 mysql

安裝JAVA8

[root@logstash ~]# yum install -y java

將logstash軟件包拷貝至elk主機執行安裝

[root@logstash ~]# yum localinstall -y kibana-7.1.1-x86_64.rpm

配置kibana

[root@kibana]# cd /etc/kibana/
[root@kibana kibana]# cat kibana.yml 
server.port: 5601 #監聽端口
server.host: "192.168.166.111" #監聽地址
server.name: "kibana" #主機名
elasticsearch.hosts: ["http://192.168.158.6:9200"] #連接的elasticsearch服務器
kibana.index: ".kibana" #kibana的索引
i18n.locale: "zh-CN" #漢化
?
##集群模式下配置:
server.port: 5601 #監聽端口
server.host: "192.168.166.111" #監聽地址
server.name: "kibana" #主機名
elasticsearch.hosts: ["http://192.168.158.6:9200","http://192.168.166.113:9200","http://192.168.166.114:9200"] #連接的elasticsearch服務器
kibana.index: ".kibana" #kibana的索引
i18n.locale: "zh-CN" #漢化

?

訪問kibana

#在瀏覽器中輸入:
http://192.168.166.111:5601

創建索引

創建篩選

添加儀表盤

?

?

?

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

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

相關文章

【JVM】內存分配與回收原則

在 Java 開發中,自動內存管理是 JVM 的核心能力之一,而內存分配與回收的策略直接影響程序的性能和穩定性。本文將詳細解析 JVM 的內存分配機制、對象回收規則以及背后的設計思想,幫助開發者更好地理解 JVM 的 "自動化" 內存管理邏輯…

Qt獲取hid設備信息

Qt 中通過 HID&#xff08;Human Interface Device&#xff09;接口獲取指定的 USB 設備&#xff0c;并讀取其數據。資源文件中包含了 hidapi.h、hidapi.dll 和 hidapi.lib。通過這些文件&#xff0c;您可以在 Qt 項目中實現對 USB 設備的 HID 接口調用。#include <QObject&…

Anaconda Jupyter 使用注意事項

Anaconda Jupyter 使用注意事項 1.將cell轉換為markdown。 First, select the cell you want to convertPress Esc to enter command mode (the cell border should turn blue)Press M to convert the cell to Markdown在編輯模式下按下ESC鍵&#xff0c;使單元塊&#xff08;c…

[硬件電路-20]:模擬信號處理運算與數字信號處理運算的相同點與不同點

模擬信號處理運算與數字信號處理運算是信號處理領域的兩大核心方法&#xff0c;二者在信號形式、處理機制、性能特點和應用場景上存在顯著差異&#xff0c;但也共享一些基礎目標與理論支撐。以下從多個維度進行系統對比分析&#xff1a;一、相同點1. 核心目標一致信號變換與分析…

Redis 高頻面試題

1. 緩存穿透 1.1 描述 用戶想要查詢某個數據,在 Redis 中查詢不到,即沒有緩存命中,這時就會直接訪問數據庫進行查詢。當請求量超出數據庫最大承載量時,就會導致數據庫崩潰。這種情況一般發生在非正常 URL 訪問,目的不是為了獲取數據,而是進行惡意攻擊。 1.2 現象 1、應…

OWASP Top 10 攻擊場景實戰

OWASP (開放式Web應用程序安全項目) Top 10 榜單是全球公認的、針對Web應用最關鍵安全風險的權威指南。它不是一份詳盡無遺的清單&#xff0c;而是一份凝聚了安全專家共識的“高危預警”。本文將不止于羅列這些風險&#xff0c;而是深入每個風險的核心&#xff0c;通過生動的比…

Three.js 實戰:使用 PBR 貼圖打造真實地面材質

在 Three.js 中&#xff0c;我們可以通過 MeshStandardMaterial 材質配合多張貼圖來實現真實的地面效果。這種方式模擬了物理世界中光照與表面材質的復雜交互&#xff0c;常用于構建高質量場景&#xff0c;如數字孿生、建筑可視化、游戲等。 本文將以一個完整示例為基礎&#x…

Java基礎的總結問題(第一篇)

JDK和JRE的區別&#xff1f;JRE是Java運行環境&#xff08;Java Runtime Environment&#xff09;&#xff0c;包含了JVM和Java核心類庫JDK是Java開發工具包&#xff08;Java Developers Kit&#xff09;,包含了JRE和Java常見的開發工具與equals的區別&#xff1f;可以用來比較…

[智能算法]MOEA/D算法的Python實現

一、初始化不同于NSGA-II&#xff0c;MOEA/D在進行迭代之前需要先進行初始化&#xff0c;初始化的主要內容是計算個體向量權重之間的歐氏距離&#xff0c;并得出其鄰域集合。# 計算T個鄰居 def cpt_W_Bi_T(moead):# 設置的鄰居個數錯誤(自己不能是自己的鄰居)if moead.T_size &…

Java設計模式之-組合模式

什么是組合模式&#xff1f; 組合模式允許你將對象組合成樹形結構來表示"部分-整體"的層次結構。它讓客戶端能夠以統一的方式處理單個對象和對象組合。 簡單來說&#xff0c;就像公司的組織結構&#xff1a; 公司有部門部門有小組小組有員工但無論是對公司、部門還是…

2021-10-29 C++與反轉數的和

緣由輸入一個三位數 與它倒過來的數相加&#xff0c;輸出和-編程語言-CSDN問答 直接寫 int n0,nn0,nnn0; cin>>n;nnn; while(nn)nnn*10,nnnnn%10,nn/10; cout<<nnnn<<endl; 緣由https://ask.csdn.net/questions/7552128 int 反轉數(int n) { int nn 0…

論安全架構設計(威脅與措施)

安全架構威脅與措施摘要2021年4月&#xff0c;我有幸參與了某保險公司的“優車險”項目的建設開發工作&#xff0c;該系統以車險報價、車險投保和報案理賠為核心功能&#xff0c;同時實現了年檢代辦、道路救援、一鍵挪車等增值服務功能。在本項目中&#xff0c;我被安排擔任架構…

022_提示緩存與性能優化

提示緩存與性能優化 目錄 緩存技術概述緩存工作原理實現方法詳解成本優化策略性能優化實踐高級應用場景最佳實踐指南 緩存技術概述 什么是提示緩存 提示緩存是Claude API的一項優化功能&#xff0c;允許緩存提示的特定部分以便重復使用&#xff0c;從而顯著減少處理時間和…

【AI交叉】地理:人工智能如何推動地理科學的智能轉型?

隨著人工智能&#xff08;AI&#xff09;技術的快速發展&#xff0c;越來越多的傳統學科開始與之融合&#xff0c;催生出一系列跨學科的新研究方向和應用場景。地理科學作為研究地球表層自然與人文現象的綜合性學科&#xff0c;也在這一浪潮中迎來轉型契機。 AI與地理學的交叉正…

iOS高級開發工程師面試——關于網絡

iOS高級開發工程師面試——關于網絡 一、談談對 HTTP、HTTPS 的理解1. HTTP協議:2. HTTPS 協議二、TCP、UDP 和 SocketTCPUDPTCP 和 UDP 的區別?Socket一、談談對 HTTP、HTTPS 的理解 1. HTTP協議: 超文本傳輸協議,他是基于TCP應用層協議。 是無連接 無狀態 的,需要通過…

跟著Nature正刊學作圖:回歸曲線+散點圖

&#x1f4cb;文章目錄復現目標圖片繪圖前期準備繪制左側回歸線圖繪制右側散點圖組合拼圖 (關鍵步驟&#xff01;)跟著「Nature」正刊學作圖&#xff0c;今天挑戰復現Nature文章中的一張組合圖–左邊為 回歸曲線、右邊為 散點圖。這種組合圖在展示相關性和分組效應時非常清晰有…

LVS集群調度器

目錄 集群和分布式 LVS運行原理 LVS概念 LVS的集群類型 實驗配置 安裝LVS ipvsadm命令參數 1.管理集群服務中的增刪改 2.管理集群服務中的RS增刪改 3.lvs調度策略的備份與恢復 4.lvs調度策略的開機啟動 LVS-NAT模式 LVS-DR模式 集群和分布式 集群&#xff08;Clu…

【React Natve】NetworkError 和 TouchableOpacity 組件

NetworkError公共組件 import SimpleLineIcons from "expo/vector-icons/SimpleLineIcons"; import { StyleSheet, Text, View } from "react-native";export default function NetworkError() {return (<View style{styles.container}><SimpleL…

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比

Linux 驅動中 Timer / Tasklet / Workqueue 的作用與對比 &#x1f9e9; 1. 使用場景概覽&#xff08;對比表&#xff09;機制執行上下文是否可睡眠使用場景常用接口Timer中斷上下文? 不可睡眠延遲執行&#xff08;如防抖、超時處理&#xff09;add_timer() 等Tasklet軟中斷上…

JavaScript中關于proxy的作用以及和Object.defineProperty的區別

之前寫了一篇介紹 Object.defineProperty的&#xff0c;提到proxy&#xff0c;二者有一些共性&#xff0c;也都是前端框架Vue的核心機制&#xff0c;所以再寫一篇介紹一下proxy的基礎原理和使用。 在 JavaScript 中&#xff0c;Proxy 是 ES6 引入的一個元編程特性&#xff0c;用…