7.1 ELK Stack 的元件
ELK Stack,由 Elasticsearch、Logstash 和 Kibana 組成,是一個強大的工具,用於集中化日誌記錄和數據分析。它允許從多種來源收集、存儲、分析和可視化日誌,比如 Docker 容器。在這次課程中,我們會詳細討論如何配置 ELK Stack 來集中記錄 Docker 容器的日誌。
ELK Stack 的元件
- Elasticsearch — 分佈式搜尋和分析系統,用於存儲和搜尋日誌。
- Logstash — 用於收集、處理和傳遞日誌到 Elasticsearch 的工具。
- Kibana — 用於可視化和分析存儲在 Elasticsearch 中數據的網頁界面。
7.2 安裝 Elasticsearch
在 Linux 上
1. 添加 Elasticsearch 儲存庫
下載並安裝儲存庫的公開金鑰:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
添加 Elasticsearch 儲存庫:
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
sudo apt-get install elasticsearch
3. 啟動並啟用 Elasticsearch 自動啟動
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
在 MacOS 上
1. 使用 Homebrew 安裝
brew update
brew install elasticsearch
2. 啟動 Elasticsearch
elasticsearch
在 Windows 上
1. 下載安裝檔案
從官方網站下載最新版本的 Elasticsearch: https://www.elastic.co/downloads/elasticsearch.
2. 安裝 Elasticsearch
執行下載的安裝檔案並按照螢幕上的指示操作。
3. 啟動 Elasticsearch
安裝後,切換到 Elasticsearch 的資料夾並通過 PowerShell 啟動服務:
.\bin\elasticsearch.bat
若要讓 Elasticsearch 自動啟動,可通過 services.msc
將其添加為 Windows 服務。
7.3 安裝 Logstash
在 Linux 上
1. 安裝 Logstash
從 Elastic 軟體庫安裝 Logstash:
sudo apt-get install logstash
2. 配置 Logstash
創建配置檔案 logstash.conf:
sudo nano /etc/logstash/conf.d/logstash.conf
Docker 日誌收集配置範例:
input {
beats {
port => 5044
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "docker-logs-%{+YYYY.MM.dd}"
}
}
3. 啟動和啟用 Logstash 自動啟動
啟動並啟用 Logstash 自動啟動:
sudo systemctl start logstash
sudo systemctl enable logstash
在 MacOS 上
1. 使用 Homebrew 安裝 Logstash
brew update
brew install logstash
2. 配置 Logstash
在 Logstash 配置文件夾中創建配置檔 logstash.conf:
nano /usr/local/etc/logstash/logstash.conf
配置範例:
input {
beats {
port => 5044
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "docker-logs-%{+YYYY.MM.dd}"
}
}
3. 啟動 Logstash
通過 Homebrew 啟動 Logstash:
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:
notepad C:\logstash\config\logstash.conf
配置範例:
input {
beats {
port => 5044
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "docker-logs-%{+YYYY.MM.dd}"
}
}
3. 啟動 Logstash
使用配置啟動 Logstash:
cd C:\logstash
bin\logstash.bat -f config\logstash.conf
7.4 安裝 Kibana
在 Linux 上
1. 安裝 Kibana
安裝 Kibana:
sudo apt-get install kibana
2. 啟動並啟用自動啟動 Kibana
啟動並啟用自動啟動 Kibana:
sudo systemctl start kibana
sudo systemctl enable kibana
Kibana 可以通過這個地址訪問 http://localhost:5601。
在 MacOS 上
1. 通過 Homebrew 安裝 Kibana
brew update
brew install kibana
2. 啟動 Kibana
通過 Homebrew 啟動 Kibana:
brew services start kibana
Kibana 可以通過這個地址訪問 http://localhost:5601。
在 Windows 上
1. 下載和安裝 Kibana
從官方網站下載最新版本的 Kibana:https://www.elastic.co/downloads/kibana。
解壓縮 Kibana 到一個方便的地方(例如 C:\kibana
)。
2. 啟動 Kibana
啟動 Kibana:
cd C:\kibana\bin
kibana.bat
Kibana 可以通過這個地址訪問 http://localhost:5601。
8.5 配置 Filebeat 收集 Docker 日誌
在 Linux 上
1. 安裝 Filebeat
從 Elastic 的倉庫中安裝 Filebeat:
sudo apt-get install filebeat
2. 配置 Filebeat
為收集 Docker 的日誌配置 Filebeat:
sudo nano /etc/filebeat/filebeat.yml
配置示例:
filebeat.inputs:
- type: docker
containers.ids:
- '*'
processors:
- add_docker_metadata: ~
output.logstash:
hosts: ["localhost:5044"]
3. 啟動並啟用 Filebeat 自啟動
啟動並啟用 Filebeat 的自啟動功能:
sudo systemctl start filebeat
sudo systemctl enable filebeat
在 MacOS 上
1. 使用 Homebrew 安裝 Filebeat
brew update
brew install filebeat
2. 配置 Filebeat
編輯 filebeat.yml
文件來配置 Filebeat:
nano /usr/local/etc/filebeat/filebeat.yml
配置示例:
filebeat.inputs:
- type: docker
containers.ids:
- '*'
processors:
- add_docker_metadata: ~
output.logstash:
hosts: ["localhost:5044"]
3. 啟動 Filebeat
通過 Homebrew 啟動 Filebeat:
brew services start filebeat
在 Windows 上
1. 下載並安裝 Filebeat
從官方網站下載最新的 Filebeat 版本:https://www.elastic.co/downloads/beats/filebeat。
將 Filebeat 解壓到方便的路徑(例如,C:\filebeat
)。
2. 配置 Filebeat
編輯 filebeat.yml
文件:
notepad C:\filebeat\filebeat.yml
配置示例:
filebeat.inputs:
- type: docker
containers.ids:
- '*'
processors:
- add_docker_metadata: ~
output.logstash:
hosts: ["localhost:5044"]
3. 啟動 Filebeat
啟動 Filebeat:
cd C:\filebeat
filebeat.exe -e -c filebeat.yml
GO TO FULL VERSION