7.1 ELK Stack 的组件
ELK Stack 包括 Elasticsearch、Logstash 和 Kibana,是一种强大的工具,用于集中式日志记录和数据分析。它可以收集、存储、分析和可视化来自各种来源(包括 Docker 容器)的日志。在本次课程中,我们将详细讨论如何设置 ELK Stack 来集中记录 Docker 容器的日志。
ELK Stack 的组件
- Elasticsearch — 一个分布式搜索和分析系统,用于存储和搜索日志。
- Logstash — 一个工具,用于收集、处理和传输日志到 Elasticsearch。
- Kibana — 一个用于可视化和分析存储于 Elasticsearch 中数据的 Web 界面。
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
配置 Filebeat 以收集 Docker 日志:
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