CodeGym /Adesua ahorow /Docker SELF /集中化日誌記錄

集中化日誌記錄

Docker SELF
等級 22 , 課堂 1
開放

7.1 ELK Stack 的元件

ELK Stack,由 Elasticsearch、Logstash 和 Kibana 組成,是一個強大的工具,用於集中化日誌記錄和數據分析。它允許從多種來源收集、存儲、分析和可視化日誌,比如 Docker 容器。在這次課程中,我們會詳細討論如何配置 ELK Stack 來集中記錄 Docker 容器的日誌。

ELK Stack 的元件

  1. Elasticsearch — 分佈式搜尋和分析系統,用於存儲和搜尋日誌。
  2. Logstash — 用於收集、處理和傳遞日誌到 Elasticsearch 的工具。
  3. Kibana — 用於可視化和分析存儲在 Elasticsearch 中數據的網頁界面。

7.2 安裝 Elasticsearch

在 Linux 上

1. 添加 Elasticsearch 儲存庫

下載並安裝儲存庫的公開金鑰:

Terminal

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

添加 Elasticsearch 儲存庫:

Terminal

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > \
/etc/apt/sources.list.d/elastic-7.x.list'
sudo apt-get update

2. 安裝 Elasticsearch

Terminal

sudo apt-get install elasticsearch

3. 啟動並啟用 Elasticsearch 自動啟動

Terminal

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

在 MacOS 上

1. 使用 Homebrew 安裝

Terminal

brew update
brew install elasticsearch

2. 啟動 Elasticsearch

Terminal

elasticsearch

在 Windows 上

1. 下載安裝檔案

從官方網站下載最新版本的 Elasticsearch: https://www.elastic.co/downloads/elasticsearch.

2. 安裝 Elasticsearch

執行下載的安裝檔案並按照螢幕上的指示操作。

3. 啟動 Elasticsearch

安裝後,切換到 Elasticsearch 的資料夾並通過 PowerShell 啟動服務:

PowerShell

.\bin\elasticsearch.bat

若要讓 Elasticsearch 自動啟動,可通過 services.msc 將其添加為 Windows 服務。

7.3 安裝 Logstash

在 Linux 上

1. 安裝 Logstash

從 Elastic 軟體庫安裝 Logstash:

Terminal

sudo apt-get install logstash

2. 配置 Logstash

創建配置檔案 logstash.conf:

Terminal

sudo nano /etc/logstash/conf.d/logstash.conf

Docker 日誌收集配置範例:

plaintext

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "docker-logs-%{+YYYY.MM.dd}"
  }
}

3. 啟動和啟用 Logstash 自動啟動

啟動並啟用 Logstash 自動啟動:

Terminal

sudo systemctl start logstash
sudo systemctl enable logstash

在 MacOS 上

1. 使用 Homebrew 安裝 Logstash

Terminal

brew update
brew install logstash

2. 配置 Logstash

在 Logstash 配置文件夾中創建配置檔 logstash.conf:

Terminal

nano /usr/local/etc/logstash/logstash.conf

配置範例:

plaintext

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "docker-logs-%{+YYYY.MM.dd}"
  }
}

3. 啟動 Logstash

通過 Homebrew 啟動 Logstash:

Terminal

logstash -f /usr/local/etc/logstash/logstash.conf

在 Windows 上

1. 下載並安裝 Logstash

從官方網站下載最新版本的 Logstash: https://www.elastic.co/downloads/logstash.

將 Logstash 壓縮檔解壓縮到便利的目錄(例如 C:\logstash)。

2. 配置 Logstash

在 Logstash 配置文件夾中創建配置檔 logstash.conf:

PowerShell

notepad C:\logstash\config\logstash.conf

配置範例:

plaintext

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "docker-logs-%{+YYYY.MM.dd}"
  }
}

3. 啟動 Logstash

使用配置啟動 Logstash:

PowerShell

cd C:\logstash
bin\logstash.bat -f config\logstash.conf

7.4 安裝 Kibana

在 Linux 上

1. 安裝 Kibana

安裝 Kibana:

Terminal

sudo apt-get install kibana

2. 啟動並啟用自動啟動 Kibana

啟動並啟用自動啟動 Kibana:

Terminal

sudo systemctl start kibana
sudo systemctl enable kibana

Kibana 可以通過這個地址訪問 http://localhost:5601

在 MacOS 上

1. 通過 Homebrew 安裝 Kibana

Terminal

brew update
brew install kibana

2. 啟動 Kibana

通過 Homebrew 啟動 Kibana:

Terminal

brew services start kibana

Kibana 可以通過這個地址訪問 http://localhost:5601

在 Windows 上

1. 下載和安裝 Kibana

從官方網站下載最新版本的 Kibana:https://www.elastic.co/downloads/kibana

解壓縮 Kibana 到一個方便的地方(例如 C:\kibana)。

2. 啟動 Kibana

啟動 Kibana:

PowerShell

cd C:\kibana\bin
kibana.bat

Kibana 可以通過這個地址訪問 http://localhost:5601

8.5 配置 Filebeat 收集 Docker 日誌

在 Linux 上

1. 安裝 Filebeat

從 Elastic 的倉庫中安裝 Filebeat:

Terminal

sudo apt-get install filebeat

2. 配置 Filebeat

為收集 Docker 的日誌配置 Filebeat:

Terminal

sudo nano /etc/filebeat/filebeat.yml

配置示例:

Yaml

filebeat.inputs:
- type: docker
  containers.ids:
    - '*'
  processors:
    - add_docker_metadata: ~

output.logstash:
  hosts: ["localhost:5044"]

3. 啟動並啟用 Filebeat 自啟動

啟動並啟用 Filebeat 的自啟動功能:

Terminal

sudo systemctl start filebeat
sudo systemctl enable filebeat

在 MacOS 上

1. 使用 Homebrew 安裝 Filebeat

Terminal

brew update
brew install filebeat

2. 配置 Filebeat

編輯 filebeat.yml 文件來配置 Filebeat:

Terminal

nano /usr/local/etc/filebeat/filebeat.yml

配置示例:

Yaml

filebeat.inputs:
- type: docker
  containers.ids:
    - '*'
  processors:
    - add_docker_metadata: ~

output.logstash:
  hosts: ["localhost:5044"]

3. 啟動 Filebeat

通過 Homebrew 啟動 Filebeat:

Terminal

brew services start filebeat

在 Windows 上

1. 下載並安裝 Filebeat

從官方網站下載最新的 Filebeat 版本:https://www.elastic.co/downloads/beats/filebeat

將 Filebeat 解壓到方便的路徑(例如,C:\filebeat)。

2. 配置 Filebeat

編輯 filebeat.yml 文件:

PowerShell

notepad C:\filebeat\filebeat.yml

配置示例:

Yaml

filebeat.inputs:
- type: docker
  containers.ids:
    - '*'
  processors:
    - add_docker_metadata: ~

output.logstash:
  hosts: ["localhost:5044"]

3. 啟動 Filebeat

啟動 Filebeat:

PowerShell

cd C:\filebeat
filebeat.exe -e -c filebeat.yml
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION