热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker快速部署ELK

一、背景笔者所在项目组的项目要做安全等保:用到部署日志审计系统;此前听说有ELK这种神器,搜索了一下,发现利用docker

一、背景

笔者所在项目组的项目要做安全等保:用到部署日志审计系统;此前听说有ELK这种神器,搜索了一下,发现利用docker搭建似乎并不麻烦,于是进行了一番尝试(运维人家觉得做个样子,不想让接入他们的ELK),那就自己搞呗,结果还比较顺利,blog很多比较详细版本,这里仅限记录,希望留给有需要的读者进行参考。

笔者这次实践的过程当中参考了较多的文档与笔记,参考的链接地址有:

elk docker-configuration说明:https://elk-docker.readthedocs.io/
Docker logstash configuration说明文档 、
Docker Hub官网、
Docker ELK使用文档

这哥们写的也挺不错的:https://www.cnblogs.com/soar1688/p/6849183.html

用这家伙的可以跑起来:使用Docker快速部署ELK分析Nginx日志实践


二、操作概要


  1. 服务安装与运行
  2. 数据导入与校验
  3. 绘图配置与展示

ElasticSearch是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。这是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。

Logstash是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集,过滤与解析,并将其存入ElasticSearch中。

Kibana是一款 基于Apache开源协议,为ElasticSearch提供分析和可视化的Web平台,它可以在Elasticsearch的索引中查找,交互数据,并生成各种维度的表图。 
        image

5、安装前提条件:

Docker至少得分配3GB的内存;

Elasticsearch至少需要单独2G的内存;

防火墙开放相关端口;

vm.max_map_count至少需要262144,附永久修改vm.max_map_count方法如下图:

执行命令:sysctl -p 查看

 注意:如果看到这样的报错信息 Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting. 请执行命令:service logstash stop 然后在执行就可以了。 

 部署Logstash服务

添加 ~/logstash/logstash.conf 配置文件如下:具体参数解释:https://blog.csdn.net/weixin_41436549/article/details/82222344

参考官档   Logstash Configuration Examplesedit

input {file {path => "/alex/data/alex-oas/logs/kafkaData.log"start_position => "beginning"}
}filter {if [path] =~ "kafkaData" {mutate { replace => { "type" => "apache_kafkaData" } }grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}}date {match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch {hosts => ["localhost:9200"]}stdout { codec => rubydebug }
}

 ps:附上创建挂载指令

-----bash
#!/bin/bash
#把文件挂载elk容里面进行收集目录
mkdir -p /alex/data/"$1"/data
mkdir -p /alex/data/"$1"/elasticsearch/config
mkdir -p /alex/data/"$1"/kibana/config
mkdir -p /alex/data/"$1"/logstash/config
mkdir -p /alex/data/"$1"/logstash/logs
mkdir -p /alex/data/"$1"/elasticsearch/logs#docker run -itd --privileged --name="$1" -p "$2":5601 -p "$3":9200 -p "$4":5044 -e ES_HEAP_SIZE="2g" -e LS_HEAP_SIZE="1g" --log-driver=json-file -v /alex/data/"$1"/data:/data docker.io/sebp/elk#docker run -itd --privileged --name="$1" -p "$2":5601 -p "$3":9200 -p "$4":5044 -e ES_MIN_MEM=526m -e ES_MAX_MEM=1024m --log-driver=json-file -v /alex/data/"$1"/config/:/data docker.io/sebp/elkdocker run -itd --privileged --name="$1" -p "$2":5601 -p "$3":9200 -p "$4":5044 -p "$5":9300 -e ES_MIN_MEM=526m -e ES_MAX_MEM=1024m --log-driver=json-file -v /alex/data/"$1"/data:/data-v /alex/data/"$1"/logstash/config/:/opt/logstash/config/ -v /alex/data/"$1"/logstash/logs/:/opt/logstash/logs/-v /alex/data/"$1"/elasticsearch/config/:/opt/elasticsearch/config/ -v /alex/data/"$1"/elasticsearch/logs/:/opt/elasticsearch/logs/-v /alex/data/"$1"/kibana/config/:/opt/kibana/config/ docker.io/sebp/elk#docker run -itd --privileged --name="$1" -p "$2":5601 -p "$3":9200 -p "$4":5044 --log-driver=json-file -v /extracme/data/"$1"/data:/data docker.io/sebp/elk

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

一个人的时候,总是在想

    我的生活到底在期待什么……


推荐阅读
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • PHP 各版本对比:标准版与最新顶级版的详细分析 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文精选了几个结合 Vue 和 Spring Boot 的优质开源项目,适合开发者学习和参考。这些项目不仅涵盖了前后端分离的最佳实践,还提供了丰富的功能示例和详细的文档,有助于提升开发效率和技术水平。项目地址:https://github.com/ 示例链接。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化
    PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化 ... [详细]
  • 腾讯与阅文集团在技术领域展开合作,共同推进微服务框架Tars的发展。此次合作中,Tars新增了对PHP语言的支持,不仅强化了Tars-PHP作为客户端的功能,还显著提升了其在服务端的应用能力。这一改进旨在满足不同业务场景下的多样化需求,为开发者提供更加灵活和高效的技术解决方案。 ... [详细]
author-avatar
Belief
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有