EFK 部署安裝

一窗骑、環(huán)境

  • 系統(tǒng)版本:Ubuntu
  • jdk版本:openjdk11
  • Elasticsearch 版本:8.8
  • fluentd版本:1.14.3
  • kibana版本:8.8.0

二智什、更新系統(tǒng)依賴源

sudo apt update
sudo apt upgrade -y

三榨乎、 jdk安裝配置

這里我們使用jdk11,當(dāng)然你要使用jdk8也是可以的负饲,不過堤魁,建議使用 JDK 11喂链,因?yàn)樗?Elasticsearch 7.x 的推薦版本。如果你已經(jīng)有 JDK 8姨涡,可以繼續(xù)使用衩藤,但注意可能會(huì)遇到一些兼容性問題。

wget https://download.java.net/java/GA/jdk11/openjdk-11_linux-x64_bin.tar.gz

jdk的配置這里就不展開講了涛漂,可以翻一下博主以往的筆記赏表,有詳細(xì)的配置記錄。
配置成功后 匈仗,版本信息:


image.png

四瓢剿、安裝 Elasticsearch

Elasticsearch下載地址:https://www.elastic.co/cn/downloads/elasticsearch

1. 下載 Elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.0-linux-x86_64.tar.gz

2. 解壓 Elasticsearch:

tar -xzf elasticsearch-8.8.0-linux-x86_64.tar.gz

3. 配置 Elasticsearch 的配置文件,vi ./elasticsearch-8.8.0/config/elasticsearch.yml

# ======================== Elasticsearch Configuration =========================
# 集群名稱
cluster.name: my-application
# 節(jié)點(diǎn)名稱
node.name: node-1
# 日志存放地址
path.logs: /opt/EFK/elasticsearch-8.8.0/Logs
# 允許所有IP訪問
network.host: 0.0.0.0
# HTTP端口號(hào)
http.port: 9200
# 啟用跨域請(qǐng)求悠轩,允許從任何域名訪問Elasticsearch API
http.cors.enabled: true
http.cors.allow-origin: "*"

# 啟用X-Pack安全功能间狂,確保只有經(jīng)過身份驗(yàn)證的用戶才能訪問Elasticsearch集群
xpack.security.enabled: true
# 啟用安全注冊(cè)功能,允許新的節(jié)點(diǎn)以安全的方式加入到現(xiàn)有的Elasticsearch集群中
# 新節(jié)點(diǎn)會(huì)自動(dòng)獲取必要的證書和密鑰材料火架,確保通信的安全性
xpack.security.enrollment.enabled: true
# 啟用HTTP接口上的SSL/TLS加密鉴象,確保客戶端與Elasticsearch之間的所有通信都是加密的
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

# 啟用傳輸層的SSL/TLS加密何鸡,確保Elasticsearch節(jié)點(diǎn)之間以及客戶端與節(jié)點(diǎn)之間的內(nèi)部通信也是加密的
xpack.security.transport.ssl:
  enabled: true
  # 設(shè)置傳輸層SSL/TLS連接的驗(yàn)證模式纺弊,確保節(jié)點(diǎn)將驗(yàn)證其他節(jié)點(diǎn)提供的證書
  verification_mode: certificate
  # 指定用于傳輸層SSL/TLS連接的密鑰庫文件路徑
  keystore.path: certs/transport.p12
  # 指定用于傳輸層SSL/TLS連接的信任庫文件路徑,包含一組受信任的證書
  truststore.path: certs/transport.p12

# 初始主節(jié)點(diǎn)列表骡男,指定哪些節(jié)點(diǎn)可以成為主節(jié)點(diǎn)
cluster.initial_master_nodes: ["node-1"]

4. 配置服務(wù)內(nèi)存占用
找到你的jvm.options文件:vi /opt/EFK/elasticsearch-8.8.0/config/jvm.options
打開文件淆游,找到 -Xms 和 -Xmx 設(shè)置,將它們都改為 1g:
這意味著分配給 Elasticsearch 的最小和最大內(nèi)存都是 1GB隔盛。

-Xms1g
-Xmx1g

5. 創(chuàng)建系統(tǒng)用于管理 elasticsearch 的用戶和組:

elasticsearch 不能使用root用戶直接啟動(dòng)犹菱。所以一定要配置普通用戶。

  • (1) 創(chuàng)建一個(gè)名為 elasticsearch 的用戶組吮炕。
    sudo groupadd elasticsearch
  • (2) 創(chuàng)建一個(gè)名為 elasticsearch 的系統(tǒng)用戶腊脱,并將其加入到剛才創(chuàng)建的 elasticsearch 用戶組中。
    -r 選項(xiàng)表示創(chuàng)建一個(gè)系統(tǒng)用戶龙亲,通常用于系統(tǒng)服務(wù)虑椎,通常這些用戶沒有登錄權(quán)限。
    -g elasticsearch 指定新用戶所屬的用戶組為 elasticsearch俱笛。
    sudo useradd -r -g elasticsearch elasticsearch
  • (3) 將 /opt/elasticsearch 目錄及其所有子文件和目錄的所有者和用戶組更改為 elasticsearch。
    sudo chown -R elasticsearch:elasticsearch /opt/elasticsearch

6. 將 Elasticsearch 注冊(cè)到systemct传趾,vi /etc/systemd/system/elasticsearch.service

[Unit]
# 描述
Decription=Elasticsearch
# 穩(wěn)定地址
Documentation=http://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
# 表示該服務(wù)在網(wǎng)絡(luò)在線后啟動(dòng)
Wants=network-online.target
# 確保網(wǎng)絡(luò)已完全可用迎膜,再啟動(dòng) Elasticsearch。
After=network-online.target

[Service]
# 指定運(yùn)行該服務(wù)的用戶
User=elasticsearch
# 指定運(yùn)行該服務(wù)的用戶組浆兰。
Group=elasticsearch
# 這是啟動(dòng) Elasticsearch 的命令磕仅,指向?qū)嶋H的執(zhí)行文件路徑
ExecStart=/opt/EFK/elasticsearch-8.8.0/bin/elasticsearch
# 指定服務(wù)在失敗時(shí)會(huì)自動(dòng)重啟珊豹。
Restart=on-failure
# 用于控制服務(wù)可以鎖定的內(nèi)存大小
LimitMEMLOCK=infinity

[Install]
WantedBy=multi-user.target

7. 重啟systemctl 服務(wù)

sudo systemctl daemon-reload
sudo systemctl start elasticsearch
sudo systemctl stop elasticsearch

8. 查看是否成功啟動(dòng)

image.png

9. 創(chuàng)建 elasticsearch 賬戶密碼

cd /opt/EFK/elasticsearch-8.8.0/bin/
sudo ./elasticsearch-users useradd elastic -p abcd123 -r superuser
  • useradd:
    添加一個(gè)新用戶。
  • elastic:
    要添加的用戶的用戶名榕订。通常是 Elasticsearch 的內(nèi)置超級(jí)用戶店茶。
  • -p abcd123:
    參數(shù)用于指定用戶的密碼。
  • -r superuser:
    參數(shù)用于指定用戶的角色劫恒。角色設(shè)置為 superuser贩幻,這意味著該用戶擁有完全訪問權(quán)限,可以執(zhí)行所有操作两嘴。

如果密碼忘記了丛楚,可以重置成隨機(jī)密碼

sudo ./elasticsearch-reset-password -u elastic

回車后,輸入elastic 密碼

 sudo ./bin/elasticsearch-reset-password -u elastic -i

10. 訪問:9200端口憔辫,到這里elasticsearch 就配置結(jié)束了
elasticsearch 地址:https://localhost:9200/_cluster/health?pretty

image.png

五趣些、Fluentd 安裝配置

1. 從 Fluentd 的官方網(wǎng)站或 GitHub 上下載。

wget https://github.com/fluent/fluentd/archive/v1.14.3.tar.gz

2. 解壓下載的文件

tar -zxvf fluentd-1.14.3

3. 安裝依賴

sudo apt update
sudo apt install -y ruby ruby-dev build-essential
sudo gem install bundler

4. 安裝 Fluentd

cd fluentd-1.14.3
sudo gem build fluentd.gemspec
sudo gem install fluentd-*.gem
image.png

5. 配置Fluentd 的可執(zhí)行環(huán)境
將 Fluentd 的可執(zhí)行文件路徑添加到用戶的環(huán)境變量 PATH 中

echo 'export PATH="$PATH:/opt/EFK/fluentd-1.14.3/bin"' >> ~/.bashrc

重新加載 .bashrc 文件贰您,使剛才添加的路徑立即生效

source ~/.bashrc

6. 驗(yàn)證安裝

fluentd --version
image.png

7. 配置 Fluentd 要監(jiān)控的日志文件
創(chuàng)建或編輯配置文件 fluent.conf坏平,通常放在 /etc/fluent 目錄下〗跻啵可以參考以下示例:

cd /opt/EFK/fluentd-1.14.3
mkdir config
cd ./config
touch  fluent.conf

將一下內(nèi)容寫入至 fluent.conf 文件

<system>
  # 記錄提示信息舶替、警告和錯(cuò)誤。
  log_level info
  # 日志文件存放路徑
  log /opt/EFK/fluentd-1.14.3/logs/fluentd_service.log
</system>

<source>
  @type tail
  path /var/log/your_log.log
  pos_file /var/log/your_log.log.pos
  tag your_log
  format none
</source>

<match your_log>
  @type elasticsearch
  host localhost
  port 9200
  logstash_format true
  scheme https
  ssl_verify false
# Elasticsearch的賬戶
  user "elastic"
# Elasticsearch的密碼
  password "Lq3FDhZ39E2GvnUr3Lw4"
</match>
  • <source> 配置:

    • <source>:定義數(shù)據(jù)的來源孽亲。
    • @type tail:指定數(shù)據(jù)來源的類型為 tail坎穿,即實(shí)時(shí)讀取文件的末尾數(shù)據(jù),類似于 tail -f 命令返劲。
    • path /var/log/your_log.log:指定要監(jiān)控的日志文件的路徑玲昧。在這里,F(xiàn)luentd 會(huì)讀取這個(gè)文件的新內(nèi)容篮绿。
    • pos_file /var/log/your_log.log.pos:指定一個(gè)位置文件孵延,用于記錄已讀取到文件的哪個(gè)位置。這樣亲配,當(dāng) Fluentd 重啟時(shí)尘应,可以從上次停止的地方繼續(xù)讀取文件。文件不存在會(huì)自動(dòng)創(chuàng)建吼虎,但不能不指定文件名犬钢。
    • tag your_log:為讀取的數(shù)據(jù)設(shè)置一個(gè)標(biāo)簽,后續(xù)處理時(shí)可以使用這個(gè)標(biāo)簽來匹配數(shù)據(jù)思灰。
    • format none:指定文件內(nèi)容的格式玷犹,這里設(shè)置為 none,表示 Fluentd 將直接讀取原始文本洒疚。
  • <match> 配置:

    • <match your_log>:定義如何處理帶有 your_log 標(biāo)簽的數(shù)據(jù)歹颓。
    • @type elasticsearch:指定數(shù)據(jù)的輸出類型為 elasticsearch坯屿,表示要將數(shù)據(jù)發(fā)送到 Elasticsearch。
    • host localhost:指定 Elasticsearch 服務(wù)的主機(jī)名或 IP 地址巍扛,這里使用 localhost 表示 Elasticsearch 運(yùn)行在同一臺(tái)機(jī)器上领跛。
    • port 9200:指定 Elasticsearch 服務(wù)的端口,9200 是 Elasticsearch 默認(rèn)的端口撤奸。
    • logstash_format true:將數(shù)據(jù)格式化為 Logstash 格式吠昭,這樣可以確保與 Elasticsearch 的兼容性。

8. 安裝 Elasticsearch 插件:

sudo /opt/EFK/fluentd-1.14.3/bin/fluent-gem install fluent-plugin-elasticsearch

驗(yàn)證插件是否正確安裝:

/opt/EFK/fluentd-1.14.3/bin/fluent-gem list | grep elasticsearch
image.png

9. 創(chuàng)建服務(wù)文件:
創(chuàng)建服務(wù)文件:sudo tounch /etc/systemd/system/fluentd.service
編輯服務(wù)文件:sudo vi /etc/systemd/system/fluentd.service

[Unit]
Description=Fluentd
After=network.target

[Service]
User=ubuntu
Group=ubuntu
# 以指定配置文件啟動(dòng)fluentd
ExecStart=/opt/EFK/fluentd-1.14.3/bin/fluentd -c /opt/EFK/fluentd-1.14.3/config/fluent.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

重新加載 systemd 配置:sudo systemctl daemon-reload
啟動(dòng):sudo systemctl start fluentd
停止:sudo systemctl enable fluentd
狀態(tài):sudo systemctl status fluentd

10. 啟動(dòng) Fluentd
-o 將日志文件寫入指只當(dāng)路徑

fluentd -c /opt/EFK/fluentd-1.14.3/config/fluentd.conf -o /opt/EFK/fluentd-1.14.3/logs/fluentd_service.log

六寂呛、Kiban安裝

Kiban 官方文檔:https://www.elastic.co/guide/cn/kibana/current/access.html

1. 下載 Kiban :

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.8.0-linux-x86_64.tar.gz

2. 解壓

tar -xzf kibana-8.8.0-linux-x86_64.tar.gz

3.修改kibana_system用戶密碼
通過API的方式修改kibana_system用戶的密碼
kibana_system 賬戶是由Elasticsearch服務(wù)創(chuàng)建的怎诫,是Elasticsearch中的一個(gè)內(nèi)置用戶,專門用于Kibana與Elasticsearch之間的通信贷痪。

image.png

4. 配置Kibana:

vi /opt/EFK/kibana-8.8.0/config/kibana.yml

編輯kibana-8.8.0-linux-x86_64/config/kibana.yml幻妓,至少設(shè)置以下幾項(xiàng):

# kibana服務(wù)端口
server.port: 5601
# 0.0.0.0 表示允許所有請(qǐng)求訪問kibana
server.host: "0.0.0.0"
# elasticsearch 服務(wù)地址;如果elasticsearch 啟用了SSL/TLS協(xié)議劫拢,那么這里就要用https肉津。
elasticsearch.hosts: ["http://localhost:9200"]

# 當(dāng)elasticsearch 啟用了需要用戶名和密碼進(jìn)行身份驗(yàn)證情況下,那么需要配置
# 使用Elasticsearch中創(chuàng)建的kibana_system用戶舱沧。這個(gè)用戶是專門用于Kibana與Elasticsearch通信的妹沙。
elasticsearch.username: "kibana_system"
elasticsearch.password: "Lq3FDhZ39E2GvnUr3Lw4" 

# 配置Kibana信任Elasticsearch的SSL證書;這通常是Elasticsearch的根證書熟吏。
elasticsearch.ssl.certificateAuthorities: ["/opt/EFK/elasticsearch-8.8.0/config/certs/http_ca.crt"]
# 設(shè)置SSL驗(yàn)證模式距糖,確保Kibana驗(yàn)證Elasticsearch的證書
elasticsearch.ssl.verificationMode: full

5. 啟動(dòng)

/opt/EFK/kibana-8.8.0/bin/kibana
image.png

6. 瀏覽器訪問
訪問地址:http://localhost:5601/login

  • 可以用elastic 的超級(jí)用戶登錄
    elastic 用戶作為超級(jí)用戶,擁有所有權(quán)限牵寺,包括登錄 Kibana 界面的權(quán)限悍引。這是因?yàn)?elastic 用戶是 Elasticsearch 的內(nèi)置超級(jí)用戶,具有最高的權(quán)限級(jí)別帽氓,可以執(zhí)行所有操作趣斤,包括管理 Kibana。


    image.png

七 調(diào)試整個(gè)EFK堆棧

確保Elasticsearch正在運(yùn)行并且可以通過9200端口訪問黎休。
確認(rèn)Fluentd能夠正常讀取日志并將它們發(fā)送到Elasticsearch浓领。
如果您安裝了Kibana,請(qǐng)確保它能連接到Elasticsearch势腮,并且能夠看到由Fluentd發(fā)送的日志數(shù)據(jù)联贩。
安全性:考慮啟用Elasticsearch的安全特性,如SSL/TLS加密通信捎拯、基本認(rèn)證等撑蒜。
性能調(diào)優(yōu):根據(jù)實(shí)際負(fù)載調(diào)整Elasticsearch和Fluentd的資源配置,例如JVM堆大小、Fluentd的緩沖區(qū)大小等座菠。
日志輪轉(zhuǎn):配置日志文件的輪轉(zhuǎn)策略,避免單個(gè)日志文件過大影響性能藤树。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浴滴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子岁钓,更是在濱河造成了極大的恐慌升略,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屡限,死亡現(xiàn)場(chǎng)離奇詭異品嚣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钧大,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門翰撑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人啊央,你說我怎么就攤上這事眶诈。” “怎么了瓜饥?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵逝撬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我乓土,道長(zhǎng)宪潮,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任趣苏,我火速辦了婚禮狡相,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拦键。我一直安慰自己谣光,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布芬为。 她就那樣靜靜地躺著萄金,像睡著了一般。 火紅的嫁衣襯著肌膚如雪媚朦。 梳的紋絲不亂的頭發(fā)上氧敢,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音询张,去河邊找鬼孙乖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唯袄。 我是一名探鬼主播弯屈,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼恋拷!你這毒婦竟也來了资厉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蔬顾,失蹤者是張志新(化名)和其女友劉穎宴偿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诀豁,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窄刘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舷胜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娩践。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖逞带,靈堂內(nèi)的尸體忽然破棺而出欺矫,到底是詐尸還是另有隱情,我是刑警寧澤展氓,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布穆趴,位于F島的核電站,受9級(jí)特大地震影響遇汞,放射性物質(zhì)發(fā)生泄漏未妹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一空入、第九天 我趴在偏房一處隱蔽的房頂上張望络它。 院中可真熱鬧,春花似錦歪赢、人聲如沸化戳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽点楼。三九已至,卻和暖如春白对,著一層夾襖步出監(jiān)牢的瞬間掠廓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工甩恼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蟀瞧,地道東北人沉颂。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悦污,于是被迫代替她去往敵國(guó)和親铸屉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容