CodeGym /课程 /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 中数据的 Web 界面。

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

配置 Filebeat 以收集 Docker 日志:

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