k8s學習--k8s群集ELK日志收集部署最詳細的過程與應用(收集k8s群集日志)(圖形化界面手把手教學)

文章目錄

    • Filebeat
      • Filebeat主要特點
      • Filebeat使用場景
  • ELK簡介
    • Elasticsearch簡介
      • Elasticsearch主要特點
      • Elasticsearch使用場景
    • Logstash簡介
      • Logstash主要特點
      • Logstash使用場景
    • Kibana簡介
      • Kibana主要特點
      • Kibana使用場景
    • 簡單理解
  • 環境
    • 一、ELK集群部署
      • 1.軟件安裝
      • 2.軟件配置及啟動
        • (1).kibana軟件配置及啟動
        • (2).elasticsearch軟件配置及啟動
        • (3).logstash軟件配置及啟動
        • (4).kibana訪問
        • (5).編寫logstash用于收集日志配置文件
        • (6).運行logstash
    • 二、收集k8s集群節點系統日志
      • 1.下載filebeat鏡像
      • 2.創建filebeat資源清單文件
      • 3.應用filebeat資源清單文件
      • 4.驗證結果
      • 5.在kibana中添加索引


本次部署的應用有Filebeat+ELK,讓我們先簡單了解一下

Filebeat

Filebeat 是一個輕量級的日志數據發送器,作為 ELK 堆棧的一個組件,主要用于從各種來源收集日志數據并將其發送到 Logstash 或 Elasticsearch。它是 Elastic Stack 中 Beats 產品家族的一部分。

Filebeat主要特點

輕量級:
Filebeat 設計簡單,資源占用低,非常適合部署在邊緣節點或資源受限的環境中。

多種輸入源:
Filebeat 支持從文件、Docker 日志、容器日志、系統日志等多種來源收集日志數據。

日志傳輸:
Filebeat 可以將收集到的日志數據發送到多個目標,包括 Logstash、Elasticsearch、Kafka 等。

日志處理:
Filebeat 具有基本的日志處理能力,可以通過模塊化的方式實現常見的日志解析和處理。

可靠性:
具有保證至少一次傳遞的能力,確保日志數據在傳輸過程中不會丟失。

模塊化:
Filebeat 提供了一系列預配置的模塊,用于處理常見的日志格式,如 Nginx、Apache、MySQL、系統日志等。

Filebeat使用場景

集中式日志管理: 在分布式系統中集中收集各個節點的日志。
實時日志分析: 通過 Filebeat 將日志數據實時發送到 Elasticsearch,進行實時搜索和分析。
監控和報警: 結合 ELK 堆棧,實現日志數據的實時監控和報警。

ELK簡介

ELK 是 Elasticsearch、Logstash 和 Kibana 三個開源工具的組合,常用于數據搜索、日志管理和數據可視化

Elasticsearch簡介

Elasticsearch 是一個分布式搜索和分析引擎,基于 Apache Lucene 構建,主要用于存儲、搜索和分析大量數據。

Elasticsearch主要特點

實時搜索和分析: 支持實時的數據存儲和檢索。
分布式: 能夠在多個節點上分布數據,提供高可用性和擴展性。
全文搜索: 支持復雜的查詢語法,能夠進行高效的全文搜索。
RESTful API: 通過 RESTful API 進行數據操作,便于集成和擴展。

Elasticsearch使用場景

日志和事件數據分析: 集中管理和分析日志數據。
全文搜索: 如網站的搜索功能。
監控和報警: 實時監控數據變化并觸發報警。


Logstash簡介

Logstash 是一個數據收集引擎,能夠從多個來源收集數據,進行過濾和轉換,然后將數據發送到存儲引擎(如 Elasticsearch)。

Logstash主要特點

數據收集: 支持從多種數據源(如文件、數據庫、消息隊列等)收集數據。
數據處理: 通過過濾器對數據進行處理和轉換,如解析日志格式、添加字段等。
數據輸出: 將處理后的數據發送到多個目標(如 Elasticsearch、文件、數據庫等)。

Logstash使用場景

日志收集和處理: 收集和處理分布在不同系統和應用中的日志。
數據轉換: 對原始數據進行格式轉換、過濾和增強。


Kibana簡介

Kibana 是一個數據可視化和分析平臺,專為與 Elasticsearch 一起使用而設計。它提供強大的圖形界面,幫助用戶進行數據分析和可視化。

Kibana主要特點

**數據可視化:**通過圖表、地圖、表格等方式展示數據。
**儀表盤:**創建和共享動態儀表盤,實時監控數據變化。
**查詢和分析:**通過簡單的界面進行數據查詢和分析。

Kibana使用場景

日志分析: 可視化分析日志數據,快速發現問題。
業務監控: 創建業務指標的實時監控儀表盤。
安全分析: 用于安全信息和事件管理(SIEM)解決方案。


簡單理解

看不懂上面的,沒關系,看懂下面就行
Filebeat: 部署在個節點,收集日志
Logstash: 過濾,格式化日志
Elasticsearch: 存儲、搜索、分析日志
Kibana: 圖形化界面,展示日志、監控系統狀態

環境

虛擬機

Ip主機名cpu內存硬盤
192.168.10.11master012cpu雙核4G100G
192.168.10.12worker012cpu雙核4G100G
192.168.10.13worker022cpu雙核4G100G
192.168.10.17ELK1cpu雙核4G40G

版本 centos7.9
已部署k8s-1.27

注:如果有條件,可以ELK分別放在三臺主機上,我這里是資源有限,所以才全放在一臺主機上了

一、ELK集群部署

elk主機部署

1.軟件安裝

安裝jdk
可考慮使用openjdk也可以使用oracle jdk

yum -y install java-11-openjdk

安裝kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.2-x86_64.rpm
yum -y install kibana-7.17.2-x86_64.rpm

安裝elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.2-x86_64.rpm
yum -y install elasticsearch-7.17.2-x86_64.rpm

安裝logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.2-x86_64.rpm
yum -y install logstash-7.17.2-x86_64.rpm

2.軟件配置及啟動

(1).kibana軟件配置及啟動
vim /etc/kibana/kibana.yml 

修改如下內容
行號 + 修改后的結果
有的只需要去#號即可
有的不需要更改

     2  server.port: 56017  server.host: "192.168.10.17"32  elasticsearch.hosts: ["http://192.168.10.17:9200"]115  i18n.locale: "zh-CN"

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
說明:
server.port 是開啟kibana監聽端口
server.host 設置遠程連接主機IP地址,用于遠程訪問使用
elasticsearch.hosts 設置elasticsearch.hosts主機IP,用于連接elasticsearch主機,可以為多個值
i18n.locale 設置語言支持,不需要再漢化,直接修改后即可支持中文

啟動服務并驗證

systemctl enable kibana
systemctl start kibana
ss -anput | grep ":5601"

在這里插入圖片描述

(2).elasticsearch軟件配置及啟動
vim  /etc/elasticsearch/elasticsearch.yml

同上

    17  cluster.name: k8s-elastic23  node.name: elastic33  path.data: /var/lib/elasticsearch37  path.logs: /var/log/elasticsearch56  network.host: 192.168.10.1761  http.port: 920070  discovery.seed_hosts: ["192.168.10.17"]74  cluster.initial_master_nodes: ["192.168.10.17"]

在這里插入圖片描述
在這里插入圖片描述
說明
cluster.name 集群名稱
node.name 節點名稱
path.data 數據目錄
path.logs 日志目錄
network.host 主機IP
http.port 監聽端口
discovery.seed_hosts 主機發現列表
cluster.initial_master_nodes 集群master節點

啟動服務并驗證

systemctl enable elasticsearch
systemctl start elasticsearch
ss -anput | grep ":9200"

在這里插入圖片描述

curl http://192.168.10.17:9200

在這里插入圖片描述

(3).logstash軟件配置及啟動
vim /etc/logstash/logstash.yml

同上

    19  node.name: logstash28  path.data: /var/lib/logstash133  api.http.host: 192.168.10.17139  api.http.port: 9600-9700280  path.logs: /var/log/logstash

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

啟動服務
logstash進程不用預先啟動,使用時啟動即可
現在先不啟動

驗證logstash可用性

/usr/share/logstash/bin/logstash -e 'input {stdin{} } output {stdout {} }'

在這里插入圖片描述
輸入abc,查看輸出內容

abc

在這里插入圖片描述
ctrl +c 退出

使用logstash輸入內容到elasticsearch驗證

/usr/share/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.10.17:9200"] index => "logstash-%{+YYYY.MM.dd}" } }'

輸入

hello elasticsearch

此內容將會通過kibana頁面中的索引看到,但是需要在kibana頁面中添加索引
在這里插入圖片描述

(4).kibana訪問

宿主機瀏覽器訪問
192.168.10.17:5601

在歡迎界面選擇自己瀏覽后會進入主界面
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

(5).編寫logstash用于收集日志配置文件

通過filebeat進行收集

vim /etc/logstash/conf.d/logstash-to-elastic.conf
input {beats {host => "0.0.0.0"port => "5044"}
}filter {}output {elasticsearch {hosts => "192.168.10.17:9200"index => "k8s-%{+YYYY.MM.dd}"}
}
(6).運行logstash

如果不涉及多個配置文件,可以直接使用systemctl start logstash;如果有多個配置文件,只想啟動一個配置文件,可以使用如下方法。
直接在后臺運行

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash-to-elastic.conf --path.data /usr/share/logstash/data1 &

不輸出內容后按兩下回車
在這里插入圖片描述
看看端口

netstat -lntp | grep :5044

在這里插入圖片描述

二、收集k8s集群節點系統日志

通過在work節點以DaemonSet方法運行filebeat應用實現

1.下載filebeat鏡像

所有worker節點
下載filebeat鏡像

docker pull elastic/filebeat:7.17.2
docker images

在這里插入圖片描述
master節點

2.創建filebeat資源清單文件

vim filebeat-to-logstash.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: k8s-logs-filebeat-confignamespace: kube-systemdata:filebeat.yml: |filebeat.inputs:- type: logpaths:- /var/log/messagesfields:app: k8stype: modulefields_under_root: truesetup.ilm.enabled: falsesetup.template.name: "k8s-module"setup.template.pattern: "k8s-module-*"output.logstash:hosts: ['192.168.10.17:5044']index: "k8s-module-%{+yyyy.MM.dd}"---apiVersion: apps/v1
kind: DaemonSet
metadata:name: k8s-logsnamespace: kube-system
spec:selector:matchLabels:project: k8sapp: filebeattemplate:metadata:labels:project: k8sapp: filebeatspec:containers:- name: filebeatimage: docker.io/elastic/filebeat:7.17.2args: ["-c", "/etc/filebeat.yml","-e",]resources:requests:cpu: 100mmemory: 100Milimits:cpu: 500mmemory: 500MisecurityContext:runAsUser: 0volumeMounts:- name: filebeat-configmountPath: /etc/filebeat.ymlsubPath: filebeat.yml- name: k8s-logsmountPath: /var/log/messagesvolumes:- name: k8s-logshostPath:path: /var/log/messages- name: filebeat-configconfigMap:name: k8s-logs-filebeat-config

3.應用filebeat資源清單文件

kubectl apply -f filebeat-to-logstash.yaml

4.驗證結果

kubectl get pod -n kube-system -o wide

在這里插入圖片描述

5.在kibana中添加索引

宿主機瀏覽器訪問192.168.10.17:5601
web頁面操作
基本和上次一樣
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
現在就能看到日志了
這是系統日志
后面還會寫怎么看應用程序的日志
以及容器內部署的應用程序日志

寫完已經快噶了
應該會隔一天
如果對您有幫助可以點下關注

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

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

相關文章

Webpack: Loader開發 (2)

概述 在上一篇文章中,我們已經詳細了解了開發 Webpack Loader 需要用到的基本技能,包括:Loader 基本形態、如何構建測試環境、如何使用 Loader Context 接口等。接下來我們繼續拓展學習一些 Loader 輔助工具,包括: 了…

telegram支付

今天開始接入telegram支付,參考教程這個是telegram的官方說明,詳細介紹了機器人支付API。 文章公開地址 新建機器人 因為支付是一個單獨的系統,所以在做支付的時候單獨創建了一個bot,沒有用之前的bot了,特意這樣將其分開。創建bot的方法和之前不變,這里不過多介紹。 獲…

Linux文件數據寫入

結構體 fd fd也就是文件描述符,用于標識已經打開的文件、管道、socket等。是進程和內核的橋梁,允許進程執行各種文件操作 struct fd {struct file *file;unsigned int flags; };file Linux內核中表示打開文件的結構體,包含了文件操作所需…

什么是自然語言處理(NLP)?詳細解讀文本分類、情感分析和機器翻譯的核心技術

什么是自然語言處理? 自然語言處理(Natural Language Processing,簡稱NLP)是人工智能的一個重要分支,旨在讓計算機理解、解釋和生成人類的自然語言。打個比方,你和Siri對話,或使用谷歌翻譯翻譯一…

2024廣州國際米粉產業展覽會暨米粉節

2024廣州國際米粉產業展覽會 時間:2024年11月16-18日 地點:廣州中國進出口商品交易會展館 主辦單位:企陽國際會展集團 【展會簡介】 米粉作為一種歷史悠久,人們日常食用的食物,其市場需求穩定,且隨著人…

學習.NET 8 MiniApis入門

介紹篇 什么是MiniApis? MiniApis的特點和優勢 MiniApis的應用場景 環境搭建 系統要求 安裝MiniApis 配置開發環境 基礎概念 MiniApis架構概述 關鍵術語解釋(如Endpoint、Handler等) MiniApis與其他API框架的對比 第一個MiniApis…

WSL2安裝ContOS7并更新gcc

目錄 WSL2安裝CentOS7下載安裝包安裝啟動CentOS7 CentOS7更換國內源gcc從源碼安裝gcc卸載gcc CMake中使用gcc關于linux配置文件參考 WSL2安裝CentOS7 Windows11官方WSL2已經支持Ubuntu、Open SUSE、Debian。但是沒有centos,所以centos的安裝方式略有不同。 下載安…

【面試題】網絡IP協議(第六篇)

1.簡述IP協議的作用。 IP協議(Internet Protocol)是TCP/IP協議族中的核心協議之一,主要用于在互聯網上進行數據傳輸。它的主要作用包括: 尋址:IP協議通過IP地址來唯一標識網絡中的每一臺設備,確保數據包能…

家政小程序的開發:打造現代式便捷家庭服務

隨著現代生活節奏的加快,人們越來越注重生活品質與便利性。在這樣的背景下,家政服務市場迅速崛起,成為許多家庭日常生活中不可或缺的一部分。然而,傳統的家政服務往往存在信息不對稱、服務效率低下等問題。為了解決這些問題&#…

mindspore打卡之量子測量

mindspore打卡之量子測量 我們可以看到,采樣1000中,00’出現了503次,11’出現了497次(由于測量具有隨機性,每次運行結果會略有不同),采樣結果符合概率分布,細微的誤差是由模擬器噪聲…

【D3.js in Action 3 精譯】1.2.2 可縮放矢量圖形(三)

當前內容所在位置 第一部分 D3.js 基礎知識 第一章 D3.js 簡介 1.1 何為 D3.js?1.2 D3 生態系統——入門須知 1.2.1 HTML 與 DOM1.2.2 SVG - 可縮放矢量圖形 ?? 第一部分第二部分【第三部分】?? 1.2.3 Canvas 與 WebGL(精譯中 ?)1.2.4 C…

gameui C++的代碼

gameui C的代碼 #include <graphics.h> #include "gameboard.h" const int WIDTH 560; const int HEIGHT 780; const int GRID_SIZE 120; class GameUi { private: public:GameUi(GameBoard& gb) {// 初始化圖形窗口initgraph(WIDTH, HEIGHT);// 設置…

小米內推官

小米硬件提前批開始啦&#xff01;&#xff01;&#xff01;&#xff01; 請使用小米公司內推碼: Q9BN21S 招聘對象&#xff1a;25屆秋招 中國內地:畢業時間2025.01-2025.12 中國港澳臺及海外:畢業時間2025.07-2025.12 工作地點&#xff1a;北京、南京、武漢、深圳、上海等…

C++中Ranges庫的基本用法,如何簡化和增強對集合的操作。

Ranges庫的基本用法 什么是Ranges庫&#xff1f; C20引入的Ranges庫&#xff08;<ranges>&#xff09;是一個強大的工具集&#xff0c;旨在簡化和增強對集合&#xff08;如數組、向量等序列容器&#xff09;的操作。它提供了一套用于操作序列的功能性接口&#xff0c;使…

獨立站新風口:TikTok達人帶貨背后的雙贏合作之道

TikTok以其龐大的用戶基礎、高度互動性和創新的內容形式&#xff0c;為獨立站帶來了前所未有的發展機遇。獨立站與TikTok達人的合作&#xff0c;不僅能夠幫助獨立站快速提升品牌知名度和銷售額&#xff0c;還能為TikTok達人帶來更多商業機會和影響力。本文Nox聚星將和大家探討獨…

Android sdk 安裝已經環境配置

&#x1f34e;個人博客&#xff1a;個人主頁 &#x1f3c6;個人專欄&#xff1a;Android ?? 功不唐捐&#xff0c;玉汝于成 目錄 正文 一、下載 二、安裝 三、環境配置 我的其他博客 正文 一、下載 1、大家可去官網下載 因為需要魔法 所以就不展示了 2、去下面這…

經典shell運維實用腳本~

以下腳本可謂日常工作常用到的經典腳本案例。希望可以幫助大家提升提升自動化能力&#xff01; 1、監控100臺服務器磁盤利用率腳本 #!/bin/bashHOST_INFOhost.infofor IP in $(awk /^[^#]/{print $1} $HOST_INFO); do USER$(awk -v ip$IP ip$1{print $2} $HOST_INFO) P…

【JS】純web端使用ffmpeg實現的視頻編輯器-視頻合并

純前端實現的視頻合并 接上篇ffmpeg文章 【JS】純web端使用ffmpeg實現的視頻編輯器 這次主要添加了一個函數&#xff0c;實現了視頻合并的操作。 static mergeArgs(timelineList) {const cmd []console.log(時間軸數據,timelineList)console.log("文件1",this.readD…

常用目標檢測的格式轉換腳本文件txt,json等

常用目標檢測的格式轉換腳本文件txt,json等 文章目錄 常用目標檢測的格式轉換腳本文件txt,json等前言一、json格式轉yolo的txt格式二、yolov8的關鍵點labelme打的標簽json格式轉可訓練的txt格式三、yolo的目標檢測txt格式轉coco數據集標簽的json格式四、根據yolo的目標檢測訓練…

Vue+ElementUi實現錄音播放上傳及處理getUserMedia報錯問題

1.Vue安裝插件 npm install --registryhttps://registry.npmmirror.com 2.Vue頁面使用 <template><div class"app-container"><!-- header --><el-header class"procedureHeader" style"height: 20px;"><el-divid…