使用 Docker 搭建 ELK 日志系统

在前端开发中,日志系统是十分重要的一个环节。它能帮助我们快速定位问题,提高开发效率。在这里,我将为大家介绍使用 Docker 搭建 ELK 日志系统的方法,帮助大家快速搭建自己的日志系统。

什么是 ELK 日志系统

ELK 是由三个开源组件组成的日志系统,包括:

  • Elasticsearch:分布式搜索引擎,用于存储和搜索数据。
  • Logstash:日志收集、处理和转换工具。
  • Kibana:数据可视化工具,用于展示 Elasticsearch 中的数据。

三者搭配使用能够方便快捷地存储、搜索、分析和可视化大量数据。

Docker 安装

Docker 官网提供了各平台的安装版本,选择适合自己操作系统的版本进行下载安装即可。

使用 Docker 安装 ELK

在进行 ELK 安装前,我们需要了解一下 Docker 的基本概念:

  • 镜像(Image):Docker 执行的文件系统,可以用来创建容器。
  • 容器(Container):容器是镜像的一个运行实例。一个镜像可以运行多个容器。
  • 仓库(Repository):用来保存多个镜像的位置。

在安装 ELK 前,我们需要下载 ELK 镜像。使用 docker pull 命令下载 ELK 镜像,具体命令如下:

- -- ------------- --
------ ---- --------------------
- -- -------- --
------ ---- ---------------
- -- ------ --
------ ---- -------------

镜像下载完成后,我们可以通过运行容器来启动 ELK 日志系统。

启动 Elasticsearch 容器

首先,我们需要启动 Elasticsearch 容器。在 Docker 中,可以使用 docker run 命令创建容器。具体命令如下:

------ --- -- ------ ------------- -- --------- -- --------- --------------------

命令参数说明:

  • -d:表示在后台运行。
  • --name elasticsearch:为容器指定名称。
  • -p 9200:9200 -p 9300:9300:将容器的 9200 和 9300 端口映射到主机的 9200 和 9300 端口,方便外部访问。
  • elasticsearch:7.12.0:使用 elasticsearch:7.12.0 镜像创建容器。

容器启动后,可以通过 docker ps 命令查看容器是否正在运行。

启动 Logstash 容器

接下来,启动 Logstash 容器。启动 Logstash 容器需要使用到配置文件,下面是一个简单的配置文件示例:

----- -
  ----- -
    ---- -- ----
  -
-

------ -
  ------------- -
    ----- -- -------------------------
    ----- -- ---------------------
  -
-

上述配置文件中,我们指定了 Logstash 监听的 beat 端口为 5044,将收集到的日志数据存储到 Elasticsearch 的 logs-%{+YYYY.MM.dd} 索引中。这里的 %{+YYYY.MM.dd} 是一个时间格式化标识,表示将日志按照日期进行索引。

保存好配置文件,我们可以使用下面的命令启动 Logstash 容器:

------ --- -- ------ -------- -- --------- -- ------------------------------------------- ------ --------------------------- ---------------

命令参数说明:

  • -d:表示在后台运行。
  • --name logstash:为容器指定名称。
  • -p 5044:5044:将容器的 5044 端口映射到主机的 5044 端口,方便外部访问。
  • -v <配置文件路径>:/etc/logstash/conf.d/logstash.conf:将本地文件挂载到容器内的 /etc/logstash/conf.d/logstash.conf 文件。
  • --link elasticsearch:elasticsearch:将该容器连接到 Elasticsearch 容器。

容器启动后,可以通过 docker ps 命令查看容器是否正在运行。

启动 Kibana 容器

最后,启动 Kibana 容器。Kibana 容器是一个基于 Node.js 的 Web 应用,用于展示 Elasticsearch 中的数据。启动命令如下:

------ --- -- ------ ------ -- --------- ------ --------------------------- -------------

命令参数说明:

  • -d:表示在后台运行。
  • --name kibana:为容器指定名称。
  • -p 5601:5601:将容器的 5601 端口映射到主机的 5601 端口,方便外部访问。
  • --link elasticsearch:elasticsearch:将该容器连接到 Elasticsearch 容器。

容器启动后,可以通过 docker ps 命令查看容器是否正在运行。

访问 Kibana

容器启动后,可以通过浏览器访问 Kibana 页面:http://localhost:5601。在 Kibana 页面中,选择左侧导航栏的“Discover”选项卡,查看 Elasticsearch 中的数据。

总结

本文介绍了使用 Docker 搭建 ELK 日志系统的方法。通过使用 Docker 来安装 ELK,我们可以方便快捷地搭建自己的日志系统。希望本文能够帮助到大家。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/649794ac48841e9894491892


猜你喜欢

  • ES6 中的 Set 和 Map 数据类型及其应用场景

    随着 JavaScript 的不断发展,ES6 带来了很多新的特性,其中包括 Set 和 Map 数据类型。它们的出现不仅丰富了 JavaScript 的数据类型,更使得开发人员能够更加高效地处理数据...

    1 年前
  • 大型项目中使用 GraphQL 的技巧和经验总结

    前言 GraphQL 是一种由 Facebook 开发的新型 API 规范,它与传统的 RESTful API 相比,具有更加灵活、精确的查询控制和返回数据格式。在大型项目中,GraphQL 的使用可...

    1 年前
  • TypeScript 中常见的编译错误及解决方式

    TypeScript 是一种由微软开发的静态类型语言,它最初的目的是为 JavaScript 新增类型检查、类、接口等面向对象的特性。TypeScript 已经成为了前端界中的热门技术之一,越来越多的...

    1 年前
  • Enzyme 的概述:设置、使用和测试

    Enzyme 的概述:设置、使用和测试 Enzyme 是一个快速且功能强大的 React 测试工具,它允许开发人员在测试组件时进行渲染和交互。Enzyme 提供了许多有用的函数和工具,用于对 Reac...

    1 年前
  • 使用 Webpack 打包 ES6 代码时如何实现兼容性处理?

    对于前端开发者来说,ES6 已经成为一种必备的技能。然而,由于目前大多数浏览器并不完全支持 ES6,因此在实际项目中使用 ES6 代码可能会出现兼容性问题。为了解决这个问题,我们需要使用 Webpac...

    1 年前
  • Mocha + Chai + Enzyme 测试 React 组件的最佳实践

    Mocha + Chai + Enzyme 测试 React 组件的最佳实践 React 是一个广泛使用的 JavaScript 库,用于构建大型单页应用程序。开发人员通常需要对他们的 React 组...

    1 年前
  • Babel 在编译 JSX 语法时的问题及解决方法

    背景 随着 React 技术的流行,越来越多的前端开发者开始使用 JSX 语法来编写组件。JSX 语法可以让我们在组件中直接写 HTML 标签,让组件的代码更加直观和易读。

    1 年前
  • Headless CMS 数据安全问题及解决方案

    什么是 Headless CMS? Headless CMS 是一种以内容为中心的 CMS 架构,其中内容被存储在一个独立的后端系统中,而不是传统的绑定到前端界面的 CMS。

    1 年前
  • Next.js 实现代码分割

    在前端开发中,应用性能优化一直是非常重要的一部分。由于 JavaScript 的执行速度较慢,页面首次加载时往往需要下载大量的 JavaScript 代码。如果这些代码没有进行合理的优化,就可能导致页...

    1 年前
  • Koa-proxies 如何实现接口代理及注意事项

    在前端开发过程中,经常会遇到需要代理接口的情况,例如调用第三方接口或者解决跨域问题。而使用 Koa-proxies 可以很方便地实现接口代理。本文就将对 Koa-proxies 的使用以及相关注意事项...

    1 年前
  • 如何在 ES11 中使用 flatMap 方法简化数组操作

    JavaScript 中的数组操作是前端开发中非常常见的任务,本文将探讨如何使用 ES11 中引入的 flatMap 方法来简化数组操作。 什么是 flatMap 方法 flatMap 方法是在 ES...

    1 年前
  • Jest 中的 Mock 实战

    Mock 是前端测试框架中必备的技能之一,能够帮助我们模拟各种场景,方便测试代码的可靠性,提高测试的稳定性。这篇文章主要介绍 Jest 中的 Mock 实战,包括 Mock 的类型和使用方法。

    1 年前
  • Node.js 中 Mongoose 修改操作遇到的问题及解决方案

    在 Node.js 开发中,Mongoose 是一款常用的 ODM(Object Data Mapping)框架,用于操作 MongoDB 数据库。在使用 Mongoose 进行修改操作时,有时会遇到...

    1 年前
  • 如何使用 Tailwind CSS 实现固定宽度和铺满屏幕的两种布局

    前言 在 Web 开发中,我们经常会遇到需要设置固定宽度或铺满屏幕的布局需求。Tailwind CSS 是一个强大的 CSS 框架,提供了众多快速、灵活的布局工具,可以轻松实现这两种布局。

    1 年前
  • 重构后 ES10 新版本 esm 模块化引入问题的解决方法

    在前端开发中,模块化的引入方式一直是解决文件体积过大、代码复用率低等问题的关键所在。随着时代的发展,ES6 的发布让前端模块化引入变得简单易用,而 ES10 的发布更是在此基础上进行了增强。

    1 年前
  • 解决 AngularJS SPA 应用中的路由嵌套问题

    在 AngularJS 单页面应用程序中,路由负责展示视图,根据 URL 显示相应的内容。路由的嵌套是一种常用的技术,因为它允许我们组织应用程序的代码和视图,并避免代码冗余。

    1 年前
  • Web Components 的属性绑定和自定义事件绑定有什么区别?

    Web Components 可以让我们创建可复用的、自定义的组件并在 Web 上使用。其中,属性绑定和自定义事件绑定是组件开发的两个重要方面。本文将探讨 Web Components 中属性绑定和自...

    1 年前
  • RxJS 异步响应流程的试验

    前言 RxJS 是一个在现代 web 开发中逐渐流行的 JavaScript 库,它基于观察者模式,允许开发者以响应式编程的方式组织复杂的异步处理流程,使得代码更加简洁、易于理解和维护。

    1 年前
  • Sequelize 模型的建立和使用

    Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,它可以让我们使用 JavaScript 语言操作数据库,而不必直接使用 SQL 语...

    1 年前
  • Custom Elements 教程:实现简单的全局样式方案

    在前端开发中,我们通常会使用全局样式来定义网站的颜色、字体、布局等样式规则。但是,在传统的开发方式中,全局样式的定义和应用通常需要在多个文件中进行,而且在应用样式时经常需要冗长的选择器。

    1 年前

相关推荐

    暂无文章