热门标签 | 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

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

一个人的时候,总是在想

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


推荐阅读
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • 本文记录了在Windows 8.1系统环境下,使用IIS 8.5和Visual Studio 2013部署Orchard 1.7.2过程中遇到的问题及解决方案,包括503服务不可用错误和web.config配置错误。 ... [详细]
  • 本文详细介绍了如何使用Rufus工具制作一个兼容UEFI启动模式的Windows Server 2008 R2安装U盘,包括必要的软件和步骤。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
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社区 版权所有