使用docker部署ELK日志框架-Elasticsearch
一、ELK知识了解
1-ELK组件
工作原理:
(1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。
(2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
(3)Elasticsearch 对格式化后的数据进行索引和存储。
(4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。
2- ELK部署
1、环境
(1) 操作系统版本:
[root@kk ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
(2) docker版本( docker安装 --参考-http://t.csdnimg.cn/wiQTu)
[root@kk ~]# docker -v
Docker version 24.0.7, build afdd53b
(3) 本次ELK三个组件选择官网最新8.7.1版本
[root@kk ~]# systemctl start docker //启动docker
//拉取镜像文件
[root@kk ~]# docker pull docker.elastic.co/elasticsearch/elasticsearch:8.11.1 //这是最新版本
[root@kk ~]# docker pull elasticsearch:8.7.1 //本文用8.7版本
# 查看镜像 docker images
[root@kk ~]# docker images
2.创建一个ELK容器通信专用网络
[root@kk ~]# docker network create elastic
6d32f1379cdbe03a44fafd7445aae8dcb15c79825d9ec6f2e34234abcd633f26
查看建立的信道情况:docker network ls如下图所示:

3.创建ELK目录,方便容器启动后目录挂载
[root@kk ~]# mkdir -p /etc/{elasticsearch,kibana,logstash}
4. 拉取配置文件
# 启动elasticsearch
[root@kk ~]# docker run -d --name es --net elastic -P -e "discovery.type=single-node" elasticsearch:8.7.1
50d2ef8abc301f370664b137c6d6f93bf8dd72b2b7539d4509d8571a04591515# 进入容器内
# 进入配置文件目录
[root@kk ~]# docker exec -it es /bin/bash
elasticsearch@50d2ef8abc30:~$ cd /usr/share/elasticsearch/config
( 容器内工作目录为/usr/share/elasticsearch/config)
# 退出容器
elasticsearch@50d2ef8abc30:~/config$ exit
exit
# 复制文件
[root@kk ~]# docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /etc/elasticsearch/config
Successfully copied 2.56kB to /etc/elasticsearch/config# 修改权限
chmod -R 777 /etc/elasticsearch
5.重新启动容器并挂载目录
查看运行的容器
[root@kk ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c2a3a23141dd elasticsearch:8.7.1 "/bin/tini -- /usr/l…" 9 minutes ago Up 9 minutes 0.0.0.0:32769->9200/tcp, :::32769->9200/tcp, 0.0.0.0:32768->9300/tcp, :::32768->9300/tcp es# 删除临时启动容器
vibrant_blackwell
[root@kk ~]# docker rm -f es
es# 启动容器挂载目录
docker run -d --name es --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /etc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /etc/elasticsearch/data/:/usr/share/elasticsearch/data -v /etc/elasticsearch/plugins/:/usr/share/elasticsearch/plugins --privileged=true elasticsearch:8.7.1
[root@kk ~]# docker run -d elasticsearch:8.7.1
e48d06b30424b9d345431152cc69d0870fcbf2e0cbe60f48e3a3e9b51684788e# 若无加载的容器,那么需要重启docker
sudo systemctl restart docker# 查看容器状态
docker ps# 查看容器日志状态
docker logs -f es
总算启动成功。
插曲:
期间出现下面问题,删除容器docker 重装不成功,之后把容器删除,重新挂载,后再次启动容器反复尝试。
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/etc/elasticsearch/config/elasticsearch.yml" to rootfs at "/usr/share/elasticsearch/config/elasticsearch.yml": stat /etc/elasticsearch/config/elasticsearch.yml: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
查询解决方案:
这个错误通常是由于容器无法启动导致的。错误信息中提到了一个文件路径的问题,可能是由于文件路径不存在或者文件类型不匹配导致的。建议您检查一下容器的配置文件,确保文件路径正确,并且文件类型与容器内部的文件类型匹配。如果文件路径正确,但是文件类型不匹配,您可以尝试将文件复制到容器内部,并将其类型更改为正确的类型。如果问题仍然存在,您可以尝试重新安装Docker或者更新Docker版本,以确保Docker的正常运行。
没办法,只能重新安装下docker 版本再从头来。
6.验证elasticsearch是否正常启动
curl 172.20.193.85:9200
相关文章:
使用docker部署ELK日志框架-Elasticsearch
一、ELK知识了解 1-ELK组件 工作原理: (1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。 (2)Logstash 收集日志&#…...
第7章 模式匹配与正则表达式
目录 1. 不用正则表达式来查找文本模式2. 用正则表达式来查找文本模式2.1 创建正则表达式(Regex)对象2.2 匹配Regex对象 3. 用正则表达式匹配更多模式3.1 利用括号分组3.2 用管道匹配多个分组3.3 用问号实现可选匹配3.4 用星号匹配零次或多次3.5 用加号匹…...
单元测试实战(三)JPA 的测试
为鼓励单元测试,特分门别类示例各种组件的测试代码并进行解说,供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战(一)Controller 的测试 单元测试实战(二)Service 的测试 单元测试实战&am…...
初刷leetcode题目(3)——数据结构与算法
😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️…...
76基于matlab的免疫算法求解配送中心选址问题,根据配送地址确定最佳配送中心地址位置。
基于matlab的免疫算法求解配送中心选址问题,根据配送地址确定最佳配送中心地址位置。数据可更换自己的,程序已调通,可直接运行。 76matlab免疫算法配送中心选址 (xiaohongshu.com)...
C++二分查找算法:找到 Alice 和 Bob 可以相遇的建筑
本文涉及的基础知识点 二分查找算法合集 离线查询 题目 给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。 如果一个人在建筑 i ,且存在 i < j 的建筑 j 满足 heights[i] < heights[j] ,那么这个…...
建立跨层全栈的区块链安全保障系统-应用层,系统层,设施层
目录 建立跨层全栈的区块链安全保障系统 应用层 系统层 设施层...
程序员告诉你:人工智能是什么?
随着科技的快速发展,人工智能这个词汇已经逐渐融入了我们的日常生活。然而,对于大多数人来说,人工智能仍然是一个相对模糊的概念。 首先,让我们从人工智能的定义开始。人工智能是一种模拟人类智能的技术,它涵盖了多个领…...
飞书开发学习笔记(七)-添加机器人及发送webhook消息
飞书开发学习笔记(七)-添加机器人及发送webhook消息 一.添加飞书机器人 1.1 添加飞书机器人过程 在群的右上角点击折叠按键…选择 设置 群机器人中选择 添加机器人 选择自定义机器人,通过webhook发送消息 弹出的信息中有webhook地址,选择复制。 安…...
C/C++统计数 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C统计数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C统计数 2021年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定一个数的序列S,以及一个区间[L, R], 求序列…...
从一到无穷大 #19 TagTree,倒排索引入手是否是优化时序数据库查询的通用方案?
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 文章主旨时序数据库查询的一般流程扫描维度聚合时间聚合管控语句 TagTree整体结构索引…...
程序员带你入门人工智能
随着人工智能技术的飞速发展,越来越多的程序员开始关注并学习人工智能。作为程序员,我们可能会对如何开始了解人工智能感到困惑。今天,我将向大家介绍一些如何通过自学了解人工智能的经验和方法,帮助大家更好地入门这个充满挑战和…...
机器学习笔记 - 了解常见开源文本识别数据集以及了解如何创建用于文本识别的合成数据
一、部分开源数据集 以下是一些英文可用的开源文本识别数据集。 ICDAR 数据集:ICDAR 代表国际文档分析和识别会议。该活动每两年举行一次。他们带来了一系列塑造了研究社区的场景文本数据集。例如, ICDAR-2013和ICDAR-2015数据集。 MJSynth 数据集:该合成词数据集由牛津大…...
openssl开发详解
文章目录 一、openssl 开发环境二、openssl随机数生成三、openssl对称加密3.1 SM43.2 AES3.3 DES3.4 3DES 四、openssl非对称加密4.1 SM24.2 RSA4.3 ECC 五、openssl的hash5.1 SM35.2 md55.3 sha256 五、证书5.1 证书格式 六、openssl网络编程七、openssl调试FIDO流程 一、open…...
conda虚拟环境中安装的cuda和服务器上安装的cuda的异同
服务器上已安装Nvidia提供的cuda,nvcc -V时会出现已安装的CUDA版本。如下图所示,服务器上已安装好的cuda版本为10.1。 但是当我们在Anaconda虚拟环境下安装pytorch或者paddlepaddle等深度学习框架的GPU版本时,通常会选择较高版本的cuda&…...
股东入股可用的出资形式主要有哪些
股东入股,可用的出资形式主要包括货币以及实物、知识产权、土地使用权等可以用货币估价并可以依法转让的非货币财产。 第一,货币。设立公司必然需要一定数量的流动资金。以支付创建公司时的开支和启动公司运营。因此,股东可以用货币出资。 第…...
react中设置activeClassName的笔记
React是一种流行的JavaScript库,用于构建动态用户界面。它具有许多有用的组件,其中之一是NavLink组件。NavLink组件用于在React应用程序中创建链接,并且它具有许多有用的属性,例如选中的样式设置。 react-router-dom": “^6…...
JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
nodejs+vue实验室上机管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
用户:管理员、教师、学生 基础功能:管理课表、管理机房情况、预约机房预约;权限不同,预约类型不同,教师可选课堂预约和个人;课堂预约。 在实验室上机前,实验室管理员需要对教务处发来的上机课表…...
SpringBoot 注解开发
利用自定义注解,解决问题 例1 自定义注解限制请求 场景:前端发起的频繁的请求,导致服务器压力过大。需要对后端接口进行限流处理,每个接口都需要做限流处理的话就会导致代码冗余,此时就可以利用注解进行解决 非注解形…...
GTA5线上小助手:终极方案助你高效称霸洛圣都
GTA5线上小助手:终极方案助你高效称霸洛圣都 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 厌倦了在GTA5线上模式中重复枯燥的刷钱任务?想要快速解锁所有服装和载具却不知从何入…...
Midscene.js 实战(三):使用 LLMs.txt 机制完美适配复杂前端项目
前言:当 AI 测试遇到“看不懂”的前端项目 试想这样一个场景:你花了三天时间给公司的核心业务系统编写了一套 Midscene.js 自动化测试脚本,在开发环境跑得顺风顺水,绿色通过。然后你把脚本部署到测试环境——30 个用例红了 18 个。排查了半天你发现:测试环境的页面用的是…...
JMeter四层断言体系:从HTTP协议到业务语义的全链路校验
1. 为什么JMeter的断言不是“加个检查框”就完事了?很多人第一次在JMeter里点开“添加 → 断言 → 响应断言”,填上一个期望值,跑完线程组一看“绿色对勾”,就以为接口测试闭环完成了。我带过三届测试新人,90%都在这个…...
Unity IDE选型指南:Rider与VS2019在智能感知、调试、构建中的实战对比
1. 为什么Unity开发者还在为IDE选择反复纠结?我第一次在项目组里看到两位主程为“该用Rider还是VS2019”争得面红耳赤,是在一个上线前两周的迭代晨会。一位坚持用Rider调试协程状态机时断点命中率高、热重载快;另一位则指着CI流水线里一堆.NE…...
手动生成可信本地CA:OpenSSL构建X.509证书链实战
1. 为什么你真正需要的不是“买证书”,而是搞懂CA签发逻辑很多人一听到“SSL/TLS证书”,第一反应是去阿里云、腾讯云点几下鼠标,花几十块钱买一张带绿色锁头的域名证书——这确实快,但代价是:你永远不知道那张证书里到…...
CapyMOA:Python流式机器学习框架,高效应对概念漂移与在线持续学习
1. 项目概述:为什么我们需要CapyMOA?在现实世界的机器学习应用中,数据很少是静止不动的。想象一下,你正在构建一个金融欺诈检测系统,攻击者的策略会随时间不断演变;或者是一个工业物联网传感器监控平台&…...
用Python和Folium玩转上海电信数据集:手把手教你绘制用户移动轨迹地图
用Python和Folium玩转上海电信数据集:手把手教你绘制用户移动轨迹地图当你面对一个包含数百万条电信记录的数据集时,如何从中提取有价值的用户移动轨迹信息?本文将带你从零开始,使用Python和Folium库,将原始的电信基站…...
企业级MCP Server OAuth授权接入的七层防御实践
1. 这不是又一篇“OAuth流程图”——企业级MCP Server为什么必须自己实现授权接入你有没有遇到过这样的场景:公司新上线的内部运维平台(我们暂且叫它MCP,即Monitoring & Control Platform)需要对接钉钉、飞书或企业微信的组织…...
3D层析SAR与AutoML融合:实现高精度森林树种自动识别
1. 项目概述:当3D雷达“透视”森林,机器学习如何识别每一棵树?在森林资源管理与生态研究中,准确识别树种一直是个既基础又棘手的难题。传统的野外调查方法,依赖人力跋山涉水,不仅成本高昂、效率低下&#x…...
Linux内核启动时,你的isolcpus参数到底经历了什么?从GRUB到CPU掩码的完整旅程
Linux内核启动时,isolcpus参数的奇幻漂流:从GRUB配置到CPU隔离的完整解密当你在GRUB配置文件中写下isolcpus2-3这行看似简单的指令时,可能不会想到这个字符串将经历一场跨越多个软件层的奇妙旅程。本文将带你以侦探视角,追踪这个参…...


总算启动成功。