武漢網(wǎng)站建站今日頭條極速版官網(wǎng)
前言
ELK 項目是一個由三個開源工具組成的日志處理和分析解決方案,ELK 是 Elasticsearch、Logstash 和 Kibana 的首字母縮寫。這個項目的目標是幫助用戶采集、存儲、搜索和可視化大量的日志和事件數(shù)據(jù),尤其是在分布式系統(tǒng)中。下面是每個組件的概述:
1. Elasticsearch
功能:Elasticsearch 是一個基于 Apache Lucene 的開源搜索和分析引擎,主要用于存儲和搜索大量的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。它是 ELK 堆棧的核心,負責存儲日志數(shù)據(jù),并提供強大的查詢和分析功能。
特點:
分布式:支持跨多臺機器的數(shù)據(jù)存儲與處理。
高性能:優(yōu)化的索引和搜索算法,能夠快速處理海量數(shù)據(jù)。
實時搜索:數(shù)據(jù)一旦被索引,就可以立即進行搜索和分析。
2. Logstash
功能:Logstash 是一個強大的日志收集、處理和轉(zhuǎn)發(fā)工具,用于從不同的數(shù)據(jù)源收集數(shù)據(jù),進行過濾、轉(zhuǎn)換和增強,然后將處理后的數(shù)據(jù)發(fā)送到 Elasticsearch 或其他存儲系統(tǒng)中。
特點:
多種輸入源:支持從文件、數(shù)據(jù)庫、消息隊列、網(wǎng)絡等多種來源收集數(shù)據(jù)。
豐富的過濾器:提供多種內(nèi)置的過濾插件,可以對日志數(shù)據(jù)進行清洗、格式化和結(jié)構(gòu)化處理。
輸出插件:支持將數(shù)據(jù)輸出到多種目標,如 Elasticsearch、Kafka、文件等。
3. Kibana
功能:Kibana 是用于數(shù)據(jù)可視化的前端工具,提供了一個易于使用的界面,讓用戶能夠在 Elasticsearch 中存儲的數(shù)據(jù)上執(zhí)行分析、創(chuàng)建圖表、儀表盤等可視化效果。
特點:
數(shù)據(jù)可視化:支持生成各種類型的圖表、儀表盤和報告,幫助用戶快速理解數(shù)據(jù)的趨勢和模式。
查詢和分析:用戶可以通過 Kibana 進行簡單的查詢和復雜的分析,快速發(fā)現(xiàn)數(shù)據(jù)中的問題或規(guī)律。
交互式儀表盤:創(chuàng)建動態(tài)和交互式的儀表盤,實時監(jiān)控和展示重要的指標。
ELK 堆棧的工作流程:
數(shù)據(jù)收集:Logstash 從不同的數(shù)據(jù)源收集原始日志數(shù)據(jù)。
數(shù)據(jù)處理:Logstash 對數(shù)據(jù)進行格式化、解析和增強等處理。
數(shù)據(jù)存儲:經(jīng)過處理的數(shù)據(jù)被存儲在 Elasticsearch 中。
數(shù)據(jù)可視化:用戶通過 Kibana 查詢 Elasticsearch 中的數(shù)據(jù),并通過圖表、儀表盤等方式進行可視化分析。
ELK 的優(yōu)勢:
高效處理大規(guī)模日志數(shù)據(jù):ELK 能夠處理和分析來自多個來源的大規(guī)模日志數(shù)據(jù)。
實時分析:能夠?qū)崟r進行日志查詢和分析,幫助運維和開發(fā)人員及時發(fā)現(xiàn)問題。
可視化:Kibana 提供了強大的數(shù)據(jù)可視化功能,幫助用戶從海量日志數(shù)據(jù)中提取有價值的信息。
開放源代碼:ELK 項目是開源的,用戶可以自由地定制和擴展功能。
應用場景:
日志管理和分析:對服務器、應用程序、網(wǎng)絡設備等產(chǎn)生的日志進行集中存儲、處理和分析。
安全事件監(jiān)控:監(jiān)控網(wǎng)絡安全事件、異常行為、入侵檢測等。
性能監(jiān)控:監(jiān)控應用程序和系統(tǒng)的性能指標,幫助發(fā)現(xiàn)瓶頸或故障。
故障排除:通過分析日志數(shù)據(jù),幫助快速定位和解決問題。
總結(jié)來說,ELK 項目(現(xiàn)在也叫 Elastic Stack)是一個強大的日志收集、存儲、分析和可視化工具集,廣泛應用于日志管理、性能監(jiān)控、安全分析等領(lǐng)域。
?安裝部署?Elasticsearch
更新系統(tǒng)(非必要)
sudo dnf update -y
步驟 一:
安裝jdk ?保證版本兼容Elasticsearch 所需要的 Java 運行環(huán)境。
sudo dnf install java-21-openjdk-devel
配置系統(tǒng)使用哪個 Java 版本作為默認版本。
sudo alternatives --config java
查看當前系統(tǒng)中安裝的 Java 版本。
java -version
步驟二:
導入 Elasticsearch 的 GPG 公鑰:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
配置 Elasticsearch 的 YUM 倉庫:
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
安裝 Elasticsearch:
sudo dnf install -y elasticsearch
查詢 Elasticsearch 包的詳細信息:
rpm -qi elasticsearch
步驟三:
編輯 Elasticsearch 的配置文件 elasticsearch.yml:
sudo vim /etc/elasticsearch/elasticsearch.yml
#設置集群名稱:
cluster.name: my-cluster
#設置節(jié)點名稱:
node.name: node-1
#設置網(wǎng)絡綁定地址(默認是綁定到本地環(huán)回地址,生產(chǎn)環(huán)境中可能需要改為 0.0.0.0 或具體的 IP 地址):
network.host: 0.0.0.0
#如果要設置 HTTP 端口:
http.port: 9200
:wq 保存退出。
步驟四:
啟動 Elasticsearch 服務:
sudo systemctl start elasticsearch
設置 Elasticsearch 服務在系統(tǒng)啟動時自動啟動:
sudo systemctl enable elasticsearch
檢查 Elasticsearch 服務的狀態(tài):
sudo systemctl status elasticsearch
步驟五:
創(chuàng)建自定義用戶并設置密碼(用戶:my_user ? 密碼:123456):
/usr/share/elasticsearch/bin/elasticsearch-users useradd my_user -p 123456 -r superuser
步驟 六:
配置防火墻
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
步驟七:
瀏覽器訪問 https://localhost:9200
登錄賬戶和密碼? 之前步驟五:設置的 用戶:my_user ? 密碼:123456
輸入以下內(nèi)容表示成功
補充內(nèi)容:
1、配置 Elasticsearch 的 Java 堆內(nèi)存
sudo vim /etc/elasticsearch/jvm.options
-Xms4g
-Xmx4g
上述設置會將 Elasticsearch 的最小和最大堆內(nèi)存大小都設置為 4GB。您可以根據(jù)您的硬件配置來調(diào)整這些值。
2、啟動和監(jiān)控 Elasticsearch 集群
運行健康檢查:
curl -X GET "localhost:9200/_cluster/health?pretty"
查看節(jié)點信息:
curl -X GET "localhost:9200/_nodes?pretty"
安裝部署Logstash
1、導入 Logstash 的 GPG 公鑰:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2、配置 Logstash 的 YUM 倉庫:
sudo tee /etc/yum.repos.d/logstash.repo <<EOF
[logstash-8.x]
name=Elastic Logstash repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
3、安裝 Logstash:
sudo dnf install -y logstash
4、查詢 Logstash 包的詳細信息:
rpm -qi logstash?
5、編輯 Logstash 的配置文件 logstash.yml:
sudo vim /etc/logstash/logstash.yml ?
添加以下內(nèi)容:
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"] ?
6、啟動 Logstash 服務:
sudo systemctl start logstash ?
設置 Logstash 服務在系統(tǒng)啟動時自動啟動:
sudo systemctl enable logstash
檢查 Logstash 服務的狀態(tài):
sudo systemctl status logstash
安裝部署Kibana
1、導入 Kibana 的 GPG 公鑰:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
?2、配置 Kibana 的 YUM 倉庫:
sudo tee /etc/yum.repos.d/kibana.repo <<EOF
[kibana-8.x]
name=Elastic Kibana repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
3、安裝 Kibana
sudo dnf install -y kibana
4、查詢 Kibana 包的詳細信息:
rpm -qi kibana
5、編輯 Kibana 的配置文件 kibana.yml:
sudo vim /etc/kibana/kibana.yml
6、添加以下內(nèi)容:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
7、啟動 Kibana 服務:
sudo systemctl start kibana
設置 Kibana 服務在系統(tǒng)啟動時自動啟動:
sudo systemctl enable kibana ?
檢查 Kibana 服務的狀態(tài):
sudo systemctl status kibana
8、配置防火墻
sudo firewall-cmd --list-ports
sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
9、瀏覽器訪問 Kibana:
打開瀏覽器,訪問http://localhost:5601。如果看到 Kibana 的 Web 界面,則表示安裝成功。
補充說明:
安裝目錄和配置文件目錄
Elasticsearch安裝目錄
cd /usr/share/elasticsearch/
編輯 Elasticsearch 的配置文件目錄
sudo vim /etc/elasticsearch/elasticsearch.yml
安裝 Logstash目錄
cd /usr/share/logstash/
編輯 Logstash 的配置文件
sudo vim /etc/logstash/logstash.yml
安裝 Kibana目錄
cd /usr/share/kibana/
編輯 Kibana 的配置文件 kibana.yml:
sudo vim /etc/kibana/kibana.yml?