轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
elk-aws-discovery

eternaltyro/elk-aws-discovery

eternaltyro
自动构建

在AWS ECS服务上使用ELK(Elasticsearch、Logstash、Kibana)收集、搜索和可视化日志数据。

6 次收藏下载次数: 0状态:自动构建维护者:eternaltyro仓库类型:镜像最近更新:8 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。
点击查看

Elasticsearch、Logstash、Kibana (ELK) Docker镜像文档

本文档介绍如何使用https://hub.docker.com/r/sebp/elk/ Docker镜像,该镜像通过打包Elasticsearch、Logstash和Kibana(统称为ELK),提供便捷的集中式日志服务器和日志管理Web界面。

目录

  • 前提条件
  • 安装
  • 使用方法
    • 选择性启动服务
    • 覆盖启动变量
  • 日志转发
    • 使用Filebeat转发日志
  • 构建镜像
  • 调整镜像
    • 更新Logstash配置
    • 安装Elasticsearch插件
    • 安装Logstash插件
    • 安装Kibana插件
  • 持久化日志数据
  • 设置Elasticsearch集群
    • 在不同主机上运行Elasticsearch节点
    • 在单主机上运行Elasticsearch节点
    • 优化Elasticsearch集群
  • 安全注意事项
    • 证书说明
    • 禁用SSL/TLS

前提条件

您需要:

  1. 具有Web控制台和/或API密钥的Amazon AWS账户
  2. 具有EC2、ECS权限的IAM用户
  • Docker至少分配3GB内存 - Elasticsearch alone至少需要2GB内存才能运行。

  • mmap计数限制等于或大于262,144

    在Linux上,使用sysctl vm.max_map_count在主机上查看当前值。注意,这些限制必须在主机上更改;无法从容器内更改。

安装

要从https://hub.docker.com/r/eternaltyro/elk-aws-discovery/%E6%8B%89%E5%8F%96%E6%AD%A4%E9%95%9C%E5%83%8F%EF%BC%8C%E8%AF%B7%E6%89%93%E5%BC%80 shell 提示符并输入:

bash
$ sudo docker pull sebp/elk

注意 – 此镜像已从https://github.com/eternaltyro/elk-docker-ec2-discovery%E4%B8%AD%E7%9A%84%E6%BA%90%E6%96%87%E4%BB%B6%E8%87%AA%E5%8A%A8%E6%9E%84%E5%BB%BA%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E6%83%B3%E8%87%AA%E5%B7%B1%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F%E9%83%A8%E5%88%86%E3%80%82

此镜像仅在ELK版本5.4.0上测试过。

使用方法

注意 – 将启动整个ELK栈。有关选择性启动部分栈的信息,请参见选择性启动服务部分。

以下命令会发布ELK栈正常运行所需的端口:

  • 5601(Kibana Web界面)。
  • 9200(Elasticsearch JSON接口)。
  • 5044(Logstash Beats接口,接收来自Beats(如Filebeat)的日志 – 参见使用Filebeat转发日志部分)。

注意 – 镜像还在9300端口上公开Elasticsearch的传输接口。使用docker命令的-p 9300:9300选项发布该端口。此传输接口主要用于Elasticsearch的Java客户端API,以及运行Elasticsearch集群。

选择性启动服务

默认情况下,启动容器时,所有三个ELK服务(Elasticsearch、Logstash、Kibana)都会启动。

可使用以下环境变量选择性启动部分服务:

  • ELASTICSEARCH_START:如果设置且值不为1,则不启动Elasticsearch。

  • LOGSTASH_START:如果设置且值不为1,则不启动Logstash。

  • KIBANA_START:如果设置且值不为1,则不启动Kibana。

例如,以下命令仅启动Elasticsearch:

bash
$ sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it \
  -e LOGSTASH_START=0 -e KIBANA_START=0 --name elk sebp/elk

注意,如果要在禁用Elasticsearch的情况下启动容器:

  • 如果启用Logstash,则需要确保Logstash的Elasticsearch输出插件配置文件(/etc/logstash/conf.d/30-output.conf)指向Elasticsearch集群的主机,而不是localhost(这是ELK镜像中的默认值,因为默认情况下Elasticsearch和Logstash一起运行),例如:

    output {
      elasticsearch { hosts => ["elk-master.example.com"] }
    }
    
  • 类似地,如果启用Kibana,则必须先更新Kibana的kibana.yml配置文件,使elasticsearch.url设置(默认值:"http://localhost:9200")指向运行中的Elasticsearch实例。

覆盖启动变量

以下环境变量可用于覆盖服务启动的默认值:

  • TZ:容器的时区(参见有效时区列表),例如America/Los_Angeles(默认是Etc/UTC,即UTC)。

  • ES_HEAP_SIZE:Elasticsearch堆大小(默认是最小256MB,最大1G)

    指定堆大小(例如2g)将把最小和最大堆大小都设置为提供的值。要分别设置最小和最大堆大小,请参见下面的ES_JAVA_OPTS。

  • ES_JAVA_OPTS:Elasticsearch的其他Java选项(默认:"")

    例如,要将最小和最大堆大小分别设置为512MB和2G,可将此环境变量设置为-Xms512m -Xmx2g。

  • ES_CONNECT_RETRY:启动Logstash和/或Kibana前等待Elasticsearch启动的秒数(默认:30)

  • CLUSTER_NAME:Elasticsearch集群名称(默认:如果Elasticsearch不需要用户认证,容器启动时自动解析)。

    Elasticsearch集群名称用于设置容器运行时显示的Elasticsearch日志文件名称。默认情况下,集群名称在启动时通过***查询Elasticsearch的REST API自动解析(并填充CLUSTER_NAME)。但是,当Elasticsearch需要用户认证时(例如默认运行X-Pack时),此查询失败,容器停止,因为它认为Elasticsearch未正常运行。因此,CLUSTER_NAME环境变量可用于指定集群名称并绕过(失败的)自动解析。

  • LS_HEAP_SIZE:Logstash堆大小(默认:"500m")

  • LS_OPTS:Logstash选项(默认:标签为es231_l231_k450和es232_l232_k450的镜像中为"--auto-reload",latest标签中为"";参见重大更改)

  • NODE_OPTIONS:Kibana的Node选项(默认:"--max-old-space-size=250")

  • MAX_MAP_COUNT:mmap计数限制(默认:系统默认)

    警告 – 此设置依赖系统:并非所有系统都允许从容器内设置此限制,您可能需要在启动容器前从主机设置(参见前提条件)。

  • MAX_OPEN_FILES:最大打开文件数(默认:系统默认;Elasticsearch需要此值至少为65536)

例如,以下命令启动栈,运行Elasticsarch的堆大小为2GB,Logstash的堆大小为1GB,且禁用Logstash的配置自动重载:

bash
$ sudo docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it \
  -e ES_HEAP_SIZE="2g" -e LS_HEAP_SIZE="1g" -e LS_OPTS="--no-auto-reload" \
  --name elk sebp/elk

日志转发

从主机转发日志依赖于收集日志(例如从日志文件、syslog守护进程)并将其发送到Logstash实例的转发代理。

使用Filebeat转发日志

在要收集和转发日志的主机上安装Filebeat(参见参考资料部分获取详细说明链接)。

注意 – 确保Filebeat的版本与ELK镜像的版本相同。

Filebeat设置和配置示例

注意 – https://github.com/spujadas/elk-docker%E7%9A%84%60nginx-filebeat%60%E5%AD%90%E7%9B%AE%E5%BD%95%E5%8C%85%E5%90%AB%E7%A4%BA%E4%BE%8B%60Dockerfile%60%EF%BC%8C%E5%8F%AF%E7%94%A8%E4%BA%8E%E5%88%9B%E5%BB%BA%E5%AE%9E%E7%8E%B0%E4%BB%A5%E4%B8%8B%E6%AD%A5%E9%AA%A4%E7%9A%84Docker%E9%95%9C%E5%83%8F%E3%80%82

以下是Filebeat的示例/etc/filebeat/filebeat.yml配置文件,用于转发syslog、身份验证日志以及nginx日志。

yaml
output:
  logstash:
    enabled: true
    hosts:
      - elk:5044
    ssl:
      certificate_authorities:
        - /etc/pki/tls/certs/logstash-beats.crt
    timeout: 15

filebeat:
  prospectors:
    -
      paths:
        - /var/log/syslog
        - /var/log/auth.log
      document_type: syslog
    -
      paths:
        - "/var/log/nginx/*.log"
      document_type: nginx-access

在示例配置文件中,确保将elk:5044中的elk替换为ELK服务主机的主机名或IP地址。

您还需要将logstash-beats.crt文件(包含Logstash的Beats输入插件的证书颁发机构证书(或自签名证书的服务器证书);有关证书的更多信息,请参见安全注意事项)从https://github.com/spujadas/elk-docker%E5%A4%8D%E5%88%B6%E5%88%B0%60/etc/pki/tls/certs/logstash-beats.crt%60%E3%80%82

注意 – 或者,在Windows机器上使用Filebeat时,无需使用certificate_authorities配置选项,可将logstash-beats.crt中的证书安装到Windows的“受信任的根证书颁发机构”存储中。

注意 – ELK镜像包含解析由上述Filebeat实例转发的nginx访问日志的配置项(/etc/logstash/conf.d/11-nginx.conf和/opt/logstash/patterns/nginx)。

首次启动Filebeat前,运行以下命令(将elk替换为相应的主机名)以在Elasticsearch中加载默认索引模板:

bash
curl -XPUT 'http://elk:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json

启动Filebeat:

bash
sudo /etc/init.d/filebeat start

构建镜像

要从源文件构建Docker镜像,请先克隆https://github.com/eternaltyro/elk-docker-ec2-discovery%EF%BC%8C%E8%BF%9B%E5%85%A5%E5%85%8B%E9%9A%86%E7%9B%AE%E5%BD%95%E7%9A%84%E6%A0%B9%E7%9B%AE%E5%BD%95%EF%BC%88%E5%8D%B3%E5%8C%85%E5%90%AB%60Dockerfile%60%E7%9A%84%E7%9B%AE%E5%BD%95%EF%BC%89%EF%BC%8C%E7%84%B6%E5%90%8E%EF%BC%9A

  • 如果使用普通docker命令,运行sudo docker build -t <repository-name> .,其中<repository-name>是应用于镜像的仓库名称,之后可使用docker run命令运行镜像。

  • 如果使用Compose,运行sudo docker-compose build elk,这将使用源仓库中的docker-compose.yml文件构建镜像。然后可使用sudo docker-compose up运行构建的镜像。

调整镜像

有多种调整镜像的方法:

  • 将镜像用作基础镜像并扩展它,添加文件(例如处理日志生成应用发送的日志的配置文件、Elasticsearch插件)和覆盖文件(例如配置文件、证书和私钥文件)。有关编写Dockerfile的更多信息,请参见Docker的Dockerfile参考页面。

  • 通过将本地文件绑定挂载到容器中的文件来替换现有文件。有关卷和绑定挂载的更多信息,请参见Docker的管理容器中的数据页面。

  • Fork源Git仓库并进行修改。

以下小节介绍一些典型用例。

更新Logstash配置

镜像包含多个Logstash配置文件(例如01-lumberjack-input.conf、02-beats-input.conf),均位于/etc/logstash/conf.d。

要修改现有配置文件,可在运行时将本地配置文件绑定挂载到容器中的配置文件。例如,如果要将镜像的30-output.conf Logstash配置文件替换为本地文件/path/to/your-30-output.conf,可在docker命令行中添加以下-v选项:

bash
$ sudo docker run ... \
  -v /path/to/your-30-output.conf:/etc/logstash/conf.d/30-output.conf \
  ...

要创建包含更新或其他配置文件的自己的镜像,可创建扩展原始镜像的Dockerfile,内容如下:

dockerfile
FROM sebp/elk

# 覆盖现有文件
ADD /path/to/your-30-output.conf /etc/logstash/conf.d/30-output.conf

# 添加新文件
ADD /path/to/new-12-some-filter.conf /etc/logstash/conf.d/12-some-filter.conf

然后使用docker build语法构建扩展镜像。

安装Elasticsearch插件

镜像中Elasticsearch的主目录是/opt/elasticsearch,其插件管理脚本(elasticsearch-plugin)位于bin子目录,插件安装在plugins中。

Elasticsearch以elasticsearch用户身份运行。为避免权限问题,建议使用gosu命令以elasticsearch用户身份安装Elasticsearch插件(参见下面的示例和参考资料了解更多详情)。

以下Dockerfile将扩展基础镜像并安装GeoIP处理器插件(用于添加IP地址的地理位置信息):

dockerfile
FROM sebp/elk

ENV ES_HOME /opt/elasticsearch
WORKDIR ${ES_HOME}

RUN gosu elasticsearch bin/elasticsearch-plugin install \
  -Edefault.path.conf=/etc/elasticsearch ingest-geoip

现在可以构建新镜像(参见上面的构建镜像部分),并以与基础镜像相同的方式运行容器。

安装Logstash插件

镜像中Logstash的主目录名称存储在LOGSTASH_HOME环境变量中(基础镜像中设置为/opt/logstash)。Logstash的插件管理脚本(logstash-plugin)位于bin子目录。

Logstash以logstash用户身份运行。为避免权限问题,建议使用gosu命令以logstash用户身份安装Logstash插件(参见下面的示例和参考资料了解更多详情)。

以下Dockerfile可用于扩展基础镜像并安装RSS输入插件:

dockerfile
FROM sebp/elk

WORKDIR ${LOGSTASH_HOME}
RUN gosu logstash bin/logstash-plugin install logstash-input-rss

有关构建新镜像的说明,请参见上面的构建镜像部分。然后可使用与使用方法部分相同的命令行运行基于此镜像的容器。

安装Kibana插件

镜像中Kibana的主目录名称存储在KIBANA_HOME环境变量中(基础镜像中设置为/opt/kibana)。Kibana的插件管理脚本(kibana-plugin)位于bin子目录,插件安装在installedPlugins中。

Kibana以kibana用户身份运行。为避免权限问题,建议使用gosu命令以kibana用户身份安装Kibana插件(参见下面的示例和参考资料了解更多详情)。

以下Dockerfile可用于扩展基础镜像并安装最新版本的Sense插件(一个用于与Elasticsearch的REST API交互的便捷控制台):

dockerfile
FROM seb

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 elk-aws-discovery 镜像标签

docker pull docker.xuanyuan.run/eternaltyro/elk-aws-discovery:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull eternaltyro/elk-aws-discovery:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
eternaltyro/elk-aws-discovery
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
商务合作:点击复制邮箱
用户协议·隐私政策·©2024-2026 源码跳动
用户协议·隐私政策©2024-2026 杭州源码跳动科技有限公司商务合作:点击复制邮箱

更多 elk-aws-discovery 镜像推荐

mirantis/ucp-node-feature-discovery logo

mirantis/ucp-node-feature-discovery

mirantis
暂无描述
100万+ 次下载
29 天前更新
mirantis/ucp-nvidia-gpu-feature-discovery logo

mirantis/ucp-nvidia-gpu-feature-discovery

mirantis
暂无描述
10万+ 次下载
29 天前更新
rancher/hardened-node-feature-discovery logo

rancher/hardened-node-feature-discovery

rancher
暂无描述
10万+ 次下载
6 个月前更新
solaceiotteam/solace-amplify-discovery-agent logo

solaceiotteam/solace-amplify-discovery-agent

solaceiotteam
将Solace事件API产品集成到Axway Amplify平台的工具
5万+ 次下载
3 年前更新
securecodebox/auto-discovery-kubernetes logo

securecodebox/auto-discovery-kubernetes

securecodebox
OWASP secureCodeBox是一个自动化且可扩展的开源解决方案,用于集成各种安全漏洞扫描器,支持DevSecOps团队在不同场景中实现安全漏洞测试自动化。
5万+ 次下载
1 个月前更新
cilium/node-discovery-perf logo

cilium/node-discovery-perf

cilium
用于模拟分布式环境中节点负载的测试工具,可在2个独立节点上执行2个任务,每个任务最多模拟1000个节点,总计支持2000个节点的模拟测试。
1.9千+ 次下载
7 年前更新

查看更多 elk-aws-discovery 相关镜像