docker-elasticsearch-kibana-logstash
一、安装 Elasticsearch
尝试直接拉取 Elasticsearch 镜像:
执行 docker pull docker.elastic.co/elasticsearch/elasticsearch,拉取失败,错误提示为 “Error response from daemon: manifest for docker.elastic.co/elasticsearch/elasticsearch:latest not found: manifest unknown: manifest unknown”。
然后输入具体版本号进行拉取,如 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.3,这次成功拉取了镜像。
运行 Elasticsearch:
首先创建一个网络,因为后面还有其他组件会用到,便于让这些容器之间通信。执行命令 docker network create es-net。
接着运行 Elasticsearch 容器,命令如下:
plaintext
Copy
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms1024M -Xmx1024m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.14.3 #也可以是镜像 ID
这里设置的内存为 1G,如果不设置,在资源有限的虚拟机(如 2 核 2G 内存加上 2G 虚拟内存,或者重新分配为 4 核 4G 内存和 4G 虚拟内存)上可能会直接卡爆。刚开始运行时,CPU 会占用较大,运行一会儿就会降下来。
设置密码:
访问 https://IP:9200,注意是 https,这个版本不能通过 http 访问。此时会提示输入用户名密码,但密码在哪里呢?可以先自己设置密码。
进入 Elasticsearch 容器,执行 docker exec -it es bash,当前目录为 /usr/share/elasticsearch/。
执行 ./bin/elasticsearch-setup-passwords interactive,会出现提示 “Initiating the setup of passwords for reserved users elastic, apm_system, kibana, logstash_system, beats_system, remote_monitoring_user. You will be prompted to enter passwords as the process progresses. Please confirm that you would like to continue [y/N]”。建议设置相同的密码,方便记忆。按 Y 后,输入多遍相同的密码。
然后重启容器,docker restart es。再次输入 https://IP:9200,输入 “elastic” 和刚才设置的密码就可以了。
另一种重设密码的方法:
进入 es 容器,执行 elasticsearch-reset-password -u elastic,按 Y 回车会在 SSH 界面中输出一串密码。
设置 kibana 密码,执行 elasticsearch-reset-password -u kibana_system。
新建用户,执行 elasticsearch-users useradd logadmin,然后输入密码。
设置角色,执行 elasticsearch-users roles -a superuser logadmin 和 elasticsearch-users roles -a kibana_system logadmin。
移除授权,执行 elasticsearch-users roles -r kibana_admin logadmin。
查看授权,执行 elasticsearch-users roles -v logadmin。
二、安装 Kibana
拉取 Kibana 镜像:
docker pull docker.elastic.co/kibana/kibana:8.14.3。
运行 Kibana:
执行命令 docker run -d --name kibana -p 5601:5601 --network es-net docker.elastic.co/kibana/kibana:8.14.3。
配置 Kibana:
先进入 Elasticsearch 容器,修改 elasticsearch.yml,可以修改以下内容:
plaintext
Copy
xpack.security.http.ssl:
enabled:
也可以把 xpack.security.enabled: true改为false,这样 Kibana 就不需要配置密码了。然后重启 Elasticsearch 容器。
进入 Kibana 容器,修改 kibana.yml,增加以下内容:
plaintext
Copy
i18n.locale: zh-CN
elasticsearch.username: logadmin
elasticsearch.password: 123456
elasticsearch.hosts: [ "http://es:9200" ] #容器名,这一句不改可能启动不了 Kibana,有的不改也能启动 Kibana 然后在网页初始界面配置地址,还有的改为容器网关 ip 172.18.0.1...
修改后重启 Kibana 容器,就可以用 “logadmin” 登录了。如果把 “logadmin” 改为 “kibana_system” 也能进入登录界面,但用这个账户登录可能会提示没有权限,而用 “elastic” 账户登录可以进入。
三、安装 Logstash
拉取 Logstash 镜像:
docker pull docker.elastic.co/logstash/logstash:8.14.3。
运行 Logstash:
先创建一个临时的 Logstash 容器,执行命令:
plaintext
Copy
docker run -d --name logstash --network es-net \
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
--privileged=true \
-p 5044:5044 \
-p 9600:9600 \
docker.elastic.co/logstash/logstash:8.14.3
复制文件,执行以下命令:
plaintext
Copy
docker cp -a logstash:/usr/share/logstash/config /root/elk/logstash-config
docker cp -a logstash:/usr/share/logstash/pipeline /root/elk/logstash-pipeline
删除临时容器,docker rm logstash -f。
重新创建容器,执行命令:
docker run -d --name logstash --network es-net \
-v /root/elk/logstash-config:/usr/share/logstash/config \
-v /root/elk/logstash-pipeline:/usr/share/logstash/pipeline \
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
--privileged=true \
-p 5044:5044 \
-p 9600:9600 \
docker.elastic.co/logstash/logstash:8.14.3
但可能会出现启动后能访问 http://ip:9600,却不能访问 http://ip:5044的情况。
另外,如果直接映射目录创建 Elasticsearch 容器,可能会导致无法启动容器。可以先临时创建一个没有映射目录的容器,然后用docker cp把几个目录复制出来,再删除这个容器,最后就能用映射的目录创建容器了。具体命令如下:
plaintext
Copy
docker run -d \
--name es \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms1024M -Xmx1024m" \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.14.3
docker cp -a es:/usr/share/elasticsearch/data /root/elk/es-data
docker cp -a es:/usr/share/elasticsearch/config /root/elk/es-config
docker cp -a es:/usr/share/elasticsearch/logs /root/elk/es-logs
docker cp -a es:/usr/share/elasticsearch/plugins /root/elk/es-plugins
docker rm es -f
docker run -d \
--name es \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms1024M -Xmx1024m" \
-v /root/elk/es-data:/usr/share/elasticsearch/data \
-v /root/elk/es-config:/usr/share/elasticsearch/config \
-v /root/elk/es-logs:/usr/share/elasticsearch/logs \
-v /root/elk/es-plugins:/usr/share/elasticsearch/plugins \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.14.3
相关文章:
docker-elasticsearch-kibana-logstash
一、安装 Elasticsearch 尝试直接拉取 Elasticsearch 镜像: 执行 docker pull docker.elastic.co/elasticsearch/elasticsearch,拉取失败,错误提示为 “Error response from daemon: manifest for docker.elastic.co/elasticsearch/elasticse…...
C#设计模式——抽象工厂模式(重点)
文章目录 项目地址一、抽象工厂模式1.1 特性1.2 使用反射获取特性标记的类1.3 完整代码 项目地址 教程作者:教程地址: 代码仓库地址: 所用到的框架和插件: dbt airflow一、抽象工厂模式 工厂方法模式依然存在一个问题就是&…...

全新AI模型家族登场:完全可复现的开源语言模型OLMo 2
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

用Matlab和SIMULINK实现DPCM仿真和双边带调幅系统仿真
1、使用SIMULINK或Matlab实现DPCM仿真 1.1 DPCM原理 差分脉冲编码调制,简称DPCM,主要用于将模拟信号转换为数字信号,同时减少数据的冗余度以实现数据压缩。在DPCM中,信号的每个抽样值不是独立编码的,而是通过预测前一…...

RabbitMQ的交换机总结
1.direct交换机 2.fanout交换机...

Android so库的编译
在没弄明白so库编译的关系前,直接看网上博主的博文,常常会觉得云里雾里的,为什么一会儿通过Android工程cmake编译,一会儿又通过NDK命令去编译。两者编译的so库有什么区别? android版第三方库编译总体思路: 对于新手小白来说搞明白上面的总体思路图很有必…...
2024年底-Arch linux或转为0BSD许可证!
原文:https://archlinux.org/news/providing-a-license-for-package-sources/ 解读:Arch Linux社区通过RFC 40达成共识,决定将所有软件包源代码更改为0BSD许可证。 0BSD许可证是什么?:这是一个非常自由的开源许可证&a…...
深入解析音视频流媒体SIP协议交互过程
一、引言 在音视频流媒体传输过程中,SIP(Session Initiation Protocol)协议发挥着举足轻重的作用。本文将详细全面地介绍音视频流媒体传输中的SIP协议,包括其基本概念、交互过程、关键信令以及应用场景 二、SIP协议基本概念 1.…...

linux安装mysql8.0.40
一、下载MySQL安装包 1.查看glibc版本 rpm -qa | grep glibc 2.到mysql官网下载安装包 二、解压安装 1.上传压缩包纸/usr/local 目录下,解压: tar -xvf mysql-8.0.40-linux-glibc2.17-x86_64.tar.xz 2.重命名: mv mysql-8.0.40-linux-…...

Java基础之控制语句:开启编程逻辑之门
一、Java控制语句概述 Java 中的控制语句主要分为选择结构、循环结构和跳转语句三大类,它们在程序中起着至关重要的作用,能够决定程序的执行流程。 选择结构用于根据不同的条件执行不同的代码路径,主要包括 if 语句和 switch 语句。if 语句有…...
如何还原 HTTP 请求日志中的 URL 编码参数?详解 %40 到 @
在记录HTTP请求的日志中出现了这样的情况: 2024-11-20 11:12:49 INFO network_request gz_login 96 Body: countryAbbrCN&countryCode86&email1222405567%40qq.com&password12354e50456db124f9f34e2789308733&type1 出现这种情况的原因是&#x…...
usb_cam ros包话题说明,image transport包使用
1. /usb_cam/image_raw 类型: sensor_msgs/Image 内容: 摄像头采集的原始图像数据。 用途: 图像处理和分析,例如使用 OpenCV 处理图像。视频流可达10MB/s 图像流查看,例如用 rqt_image_view 进行显示: 2./usb_cam/image_raw/compressed …...

微前端-MicroApp
微前端即是由一个主应用来集成多个微应用(可以不区分技术栈进行集成) 下面是使用微前端框架之一 MicroApp 对 react微应用 的详细流程 第一步 创建主应用my-mj-app 利用脚手架 npx create-react-app my-mj-app 快速创建 安装 npm install --save rea…...
Unity UGUI 垂直循环复用滚动
一 基础类 在unity里面新建这几个类 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// 垂直方向滚动 /// </summary> public class CustomScroll:MonoBehaviour {public …...
Spring MVC 深度剖析:优势与劣势全面解读
文章目录 Spring MVC 优势1. **松耦合**2. **易于测试**3. **灵活性**4. **强大的配置机制**5. **异常处理**6. **国际化支持**7. **数据验证**8. **安全性**9. **性能优化** Spring MVC 劣势1. **学习曲线**2. **配置复杂性**3. **性能开销**4. **视图技术限制**5. **社区和支…...
力扣hot100-->前缀和/前缀书/LRU缓存
前缀和 1. 560. 和为 K 的子数组 中等 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2&#…...

Three.js CSS2D/CSS3D渲染器
在Three.js开发过程中,有时需要将 HTML 元素与 Three.js 渲染的 3D 场景相结合,这就需要用到 CSS2DRenderer 和 CSS3DRenderer。本文将详细介绍这两种渲染器的原理及其应用 一、CSS2DRenderer 渲染器 概述 CSS2DRenderer 渲染器用于在 3D 场景中渲染纯…...
mongodb文档字符串批量替换
【mongodb文档字符串批量替换脚本语句】 前言: 1、本方式对于数据量大的情况不适用,执行可能比较慢; 2、数据量大的情况,个人推荐代码层面解决,多线程替换更快: (1)写实体类的方式…...
前端安全和解决方案
提到这个我可能想到的就是不要暴露太多的账号密码信息。一些页面的请求和操作要加上权限。 然后下面就详细的介绍前端可能遇到的安全问题以及解决方法。 首先比较常见的前端的安全性问题就是跨站脚本攻击(XSS)。跨站请求伪造(csrfÿ…...
Tlias智能辅助学习系统-部门管理
包括查询、新增、删除、修改功能 控制层 package com.itheima.controller;import com.itheima.pojo.Dept; import com.itheima.pojo.Result; import com.itheima.service.DeptService; import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.XSlf4j; import org.spr…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
Netty自定义协议解析
目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…...
uniapp获取当前位置和经纬度信息
1.1. 获取当前位置和经纬度信息(需要配置高的SDK) 调用uni-app官方API中的uni.chooseLocation(),即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...
iOS 项目怎么构建稳定性保障机制?一次系统性防错经验分享(含 KeyMob 工具应用)
崩溃、内存飙升、后台任务未释放、页面卡顿、日志丢失——稳定性问题,不一定会立刻崩,但一旦积累,就是“上线后救不回来的代价”。 稳定性保障不是某个工具的功能,而是一套贯穿开发、测试、上线全流程的“观测分析防范”机制。 …...