JAVA进阶之路-ELK搭建以及使用

使用ELK搭建社工库 from:https://www.t00ls.net/thread-32593-1-1.html ELK是什么东西?ELK是ElasticSearch、Logstash、Kibana三个应用的缩写。 ElasticSearch简称ES,主要用来存储和检索数据。Logstash主要用来往ES中写入数据。Kibana主要用来展示数据。为什么用ELK?传统的社工库通常用MySQL数据库来进行搭建,在... 阅读详情

首先说下为啥要写ELK,刚进公司,因为公司以前有项目说是缺少日志系统,需要搭建一个ELK,所以就开始了我的摸坑之旅。下面进入正文。

ELK需要支持的技术有以下:

     1、Elasticsearch(以下简称为es)

            主要用于存入日志以及查询日志,为啥不用mysql存储查询呢,别问,问就是效率问题。(这个要说的太多,大家自己去慢慢查资料吧)

     2、Logstash

             用于实施的日志抓取,然后进行日志输出(有几种方法,一是输入到es里面,2就是传统的输入到数据库里面)

             Logstash详细流程:input(输入)->decode(将数据按配置解码)->filter(过滤数据)->encode(将输出数据编码)->output (输出) 

             以上流程都是通过自己配置的配置文件进行:例如

input {
                    # 从文件读取日志信息 输送到控制台
                file {
                    path => "/Users/jack/Desktop/person/elk/elasticsearch-6.1.1/logs/elasticsearch.log"
                    #codec => "json" ## 以JSON格式读取日志
                    type => "elasticsearch"
                    start_position => "beginning"
                    }
                }

                 filter {
                    mutate {  
                        split => ["message", "|"]  
                     }  
                 }

                output {
                    # 标准输出 
                    # stdout {}
                    # 输出进行格式化,采用Ruby库来解析日志   
                     stdout { codec => rubydebug }
                }

     3、kibana

           实时以图形界面显示es的数据,更方便进行日志的查询以及支持数据的复杂查询。还能将数据进行报表化.(ps:有个点要注意,kibana和es的版本问题,要注意一下,官方文档说是两个版本不能差别太大.经过自己踩的坑知道kibana的版本尽量要比es的版本高,如果是相同的话kibana启动时会报waring,虽然这东西不管也没事,看自己需求嘛。logstarsh的版本也尽量别差太多,虽然这个不知道有没有影响.)

     4、JDK

           这个就不用多说了,因为elk是需要jdk的支持所以需要安装

接下来就到了安装环节 首先安装es

使用wget 下载elasticsearch安装包
        wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
    解压
        tar -zxvf elasticsearch-6.2.2.tar.gz 

       然后进入bin目录下面  elasticsearch这文件就是运行文件执行./elasticsearch就行了

     运行中你可能会遇到一些错误,比如以下的。

1、问题一
            Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
            #
            # There is insufficient memory for the Java Runtime Environment to continue.
            # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
            # An error report file with more information is saved as:
            # /usr/local/software/temp/elasticsearch-6.2.2/hs_err_pid1912.log
        解决:内存不够,购买阿里云的机器可以动态增加内存

        2、问题二
            [root@iZwz95j86y235aroi85ht0Z bin]# ./elasticsearch
            [2018-02-22T20:14:04,870][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
            org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
            at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]
            at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]
            at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]
            at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]
        解决:用非root用户
            添加用户:useradd -m 用户名  然后设置密码  passwd 用户名
            

        3、问题三
            ./elasticsearch
            Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/software/temp/elasticsearch-6.2.2/config/jvm.options
           解决:权限不够 chmod 777 -R 当前es目录

        常见配置问题资料:https://www.jianshu.com/p/c5d6ec0f35e0

        4、问题4ERROR: bootstrap checks failed
            max virtual memory areas vm.max_map_count [65530] is too low, increase to at least 

            临时设置:sudo sysctl -w vm.max_map_count=262144
            永久修改:
            修改/etc/sysctl.conf 文件,添加 “vm.max_map_count”设置
            并执行:sysctl -p

         这时我还没法进行外网访问我们必须改下配置。

           1、用vim命令打开config下面的elasticsearch.yml文件,然后进入配置,找到netword.host这个单词 将注解去掉,然后将后面的ip改成0.0.0.0,找到node.name,设置自己的节点名,最后找到cluster.initial_master_nodes这个参数,将注释去掉,将后面的数组改成你的节点名,只需要一个就行,类似于这样。然后wq进行保存退出,最后再运行es。

      设置外网访问后可能会启动报错,接下来你可以对照下面这个blog进行错误的排除

       https://blog.youkuaiyun.com/qq_38486203/article/details/80149185

如果成功启动后你可以在外网访问你的es,es默认的端口号是9200 如果想要修改可以在elasticsearch.yml里面的http:port修改即可。

运行成功的页面如下

如果还是无法成功 将防火墙关闭,如果是阿里云的服务器.要在后台将安全机制加入对应的端口 比如我的es端口是9201就需要将9201加入安全机制。 以下kibana的端口也是如此 kibana的端口是5601  我下面就不再赘述了。

    这样  es就算是大功告成了。

接下来就是我们的logstash了

下载安装包
        wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.2.tar.gz

        解压:tar -zxvf logstash-6.2.2.tar.gz


    快速启动(需要java8 jre,目前不支持java9)
        ./logstash -e 'input {stdin {}} output {stdout {}}'

       logstash相比es的配置就方便多了 基本安装就可以直接运行了,如果启动报错的话可以切换root用户试下,这个如果没有设置权限的只能默认为root用户才能启动哦。

以上那个快速启动是自己手动输入 然后自动输出来,我们需要编写一个配置文件来抓取log日志文件然后进行输入到es里面

详细的我就不多说了,我们现在目标是将elk搭建起来,具体的内容大家自行去了解,接下我直接给大家贴个配置内容 根据自己的状况去自行修改。

配置三 test3_es.conf
        ========================================

          # 输入
            input {
                    file {   # 这是你要抓取的日志文件路径
                            path => "/Users/jack/Desktop/person/elk/elasticsearch-6.1.1/logs/elasticsearch.log"
                              # 这是日志的类型自己定义,方便以后日志过多无法辨认类型。
                            type => "elasticsearch"
                            start_position => "beginning" #从文件开始处读写
                    }
            }

            # 输出

            output{ 
                elasticsearch{
                    hosts=>["127.0.0.1:9201"]  # es的地址后面端口按你们配置的去改。
                    index => "es-message-%{+YYYY.MM.dd}"# 这是创建索引的名字.以时间去命名(索引是啥 你们可以具体去看es的具体教程.我们这只需要搭建起来,就先不了解了.)
                 }
               # 输出进行格式化,采用Ruby库来解析日志 
               stdout{codec => rubydebug}
            }
        ========================================

我们这就省略了filter,就不需要去过滤了。这个文件可以新建在config目录下面,启动的时候用的命令就会有所不同了 我们需要用

      ./logstash -f   配置文件路径  这样进行启动 (启动logstash时必须保证你配置文件内配置的es是启动的状态,要不然logstash是无法启动的)

验证
            查看索引列表 http://localhost:9201/_cat/indices?v  //如果是外网访问的就将localhost改成相对应的ip
            查看数据 http://localhost:9201/es-message-2018.02.26/_search

ok,es和logstash安装并且连接完成了 接下来就是 最后一步 kinaba

下载安装kibana
        wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-linux-x86_64.tar.gz
        解压 tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz

外网访问
        开放端口,修改配置文件 confing目录下的kibana.yml
        server.host: "0.0.0.0" 

关联es

      修改配置文件 confing目录下的kibana.yml

      elasticsearch.hosts: ["http://localhost:9201"]//根据自己配置的es进行修改

     然后进入bin目录下面 输入./kibana 就能启动了 (跟logstash一样,必须确定配置的es启动才能启动成功)

     以上的启动命令都是无法退出的 一退出相对应的服务就直接关闭所以我们需要使用守护进程后台启动需要使用到

    nohup  XXX  &  例如  nohup   ./kibana    &    

这样就能让服务在后台运行了 不会因为退出而导致服务关闭。

最后说下 elk的三个服务的启动顺序 先是启动es 然后是启动logstash 最后启动kibana   kibana和logstash的启动顺序可以交换, 反正es是必须是最先启动,因为logstash和kibana的启动都需要es的支持

OK这样下来es就算是大功告成了,如果大家搭建途中遇到什么问题也欢迎大家积极留言,如果我会的话会给大家一一解答的。

bey!!

ELK搭建及Java程序接入 环境 centos7.5 下载 官网下载Elasticsearch、Logstash、Kibana https://www.elastic.co/ https://www.elastic.co/cn/downloads/ 我下载的都是7.1.1版本,最好统一版本 (注意,这几个都是试用版,过一段时间会过期,如果需要长期使用,得下载oss版本) 点击产品下面的下载按钮(有的在... 阅读详情

相关推荐

使用ELK搭建统一日志分析平台

使用ELK(Logstash+ElasticSearch+Kibana)搭建统一日志分析平台   一、背景分析     为了应付我们日益复杂的业务需求,系统设计趋近模块化,每个模块各司其职由不同人员开发,打印的日志格式也大都不一样,有些面向用户的接口模块还可能会多台一起做负载,这样就给运维带来了很大的工作量,定位一个问题需要四处翻日志,现有ELK这三个开源的部件(从日志的收集,统一存储,多维...

weixin_41229818的博客 1万+

Java开发 - ELK初体验

ELK是如今比较流行的一套框架,主要用于日志的采集保存和查询。线上情况,我们不能通过控制台来实时查看,但却可以通过日志输出来定位问题,查看必要的信息。如果保存成文件,也必然是极庞大的体量,并不适合我们去翻看,查找信息,这才有了ELH,其实对于ELK,大家也并不陌生,其中的E,就是我们前段时间学习的ES,全名Elasticsearch,中文名:全文搜索引擎。是不是很惊喜和意外?所以当然,L和K也是两个单独的系统,他们统称为ELK,下面,我们将逐一介绍这三个东西是什么。如果自己做,还是推荐官方的做法。

CodingFire的博客 3326

ELK+Kafka搭建日志系统

目录1.什么是ELK2.搭建ELK日志系统2.1 安装JDK2.2 安装Zookeeper2.3 安装Kafka2.4 安装ELK2.4.1 安装Elasticsearch2.4.2 安装Elasticsearch-head(可选)2.4.3 安装Logstash2.4.4 安装Kibana2.5 Nginx代理Kibana3.日志采集3.1 收集系统日志3.2 收集Nginx日志 1.什么是ELK 通俗来讲,ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成,这三

rightlzc的博客 5157

Java整合ELK实现日志收集 之 Elasticsearch、Logstash、Kibana

Elasticsearch:用于存储收集到的日志信息Logstash:用于收集并处理日志,将日志信息存储到Elasticsearch里面Kibana:通过Web端的可视化界面来查看日志(数据可视化)Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的存储库中。一、安装 Docker Compose 环境Docker Compose的安装# docker compose安装步骤设置权限。

myStyle的博客 4214

ELK集群搭建(基础教程)

ELK集群搭建(基础教程) 目录: 机器准备 集群内各台机器安装Elasticsearch 安装部署Kafka(注:每个节点都配置,注意ip不同) 安装logstash工具 安装filebeat ELK收集Nginx的json日志 ELK收集Nginx正常日志和错误日志 ELK收集Tomcat日志 ELK收集docker日志 配置filebeat收集单个docker日志 modules日志收集 使用redis作为缓存收集日志 使用Kafka做缓存收集日志

lqcbj的博客 4072

【微服务】SpringBoot 整合ELK使用详解

SpringBoot 整合ELK使用详解

congge_study的博客 1万+

ELK 基础使用 Java操作elasticseach (四)

可以看到运行代码之前customer文档索引是不存在的。再次查询,可以查询到对应文档索引了,证明代码执行成功。通过ApiPost查询可以看到如下数据文档列表。再次查询,可以看到查询失败,证明删除成功。再次查询user的id为1004的文档。可以看到之前批量插入的数据都获取到了。可以看到过滤后只剩下name字段。首先模拟插入数据以便后面的查询。可以看到sex已局部更新。可以看到该索引已被找到。可以看到条件查询的数据。可以看到数据已经更新。可以看到文档查询成功。可以看到批量插入成功。可以看到分页查询成功。

qq_50909707的博客 2857

电力抄表协议DL/T645和698.45到底有啥区别?一张图帮你选对协议

本文深入对比了电力抄表协议DL/T645和DL/T698.45的技术差异,从协议架构、报文结构、功能覆盖到实施成本进行全面分析。通过实际案例和数据,揭示698.45协议在通信效率、业务扩展性和长期成本上的优势,并提供清晰的选型决策流程图,帮助工程师根据具体需求选择最适合的电力抄表协议。

weixin_38168696的博客 402

ELK日志分析系统

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Loastash 和Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。提高安全性集中存放日志缺陷:对日志的分析困难ELK日志分析系统是基于Lucene (一个全文检索引擎的架构) 开发的分布式存储检索引擎,用来存储各类日志。是用 Java 开发的,可通过 RESTful Web接口,让用户可以通过浏览器与 Elasticsearch 通信。

tgzh123的博客 577

AUTOSAR AP平台开发避坑指南:基于华为MDC的接口配置与数据通道实战

本文详细解析了AUTOSAR AP平台与华为MDC的协同开发实践,涵盖接口配置、数据通道优化及资源分配策略。通过实战案例展示如何解决传感器接入、通信协议栈优化等常见问题,提升智能驾驶系统性能。特别针对MDC平台特性,提供执行管理、调试调优及安全设计的专业指导,助力开发者高效完成ADAS/AD系统开发。

julia4scientist的博客 1139

从仿真到部署:基于ROS2与Gazebo的UR5e机械臂全流程控制实践

本文详细介绍了基于ROS2与Gazebo的UR5e机械臂全流程控制实践,从环境准备、模型构建到控制器开发和仿真优化,最终实现真实机器人部署。通过实战案例和避坑指南,帮助开发者掌握机器人仿真与控制的关键技术,提升UR5e机械臂在物料分拣等任务中的性能与稳定性。

weixin_29184371的博客 288

搭建ELK+minio及配置

Elasticsearch:用于存储、搜索和分析大规模数据的分布式搜索引擎。Logstash:用于收集、过滤、转换和发送日志数据的数据处理管道。Kibana:用于可视化Elasticsearch中数据的开源数据分析和可视化平台。ELK监控通常用于收集、存储和分析各种类型的日志数据,以便实时监控系统性能、故障排除、安全审计等目的。通过将这三个组件整合在一起,用户可以轻松地构建强大的日志管理和监控系统,帮助他们更好地理解和利用其日志数据。

weixin_67363416的博客 1878

Gazebo仿真UUV水下机器人:从环境搭建到避障算法实战

本文详细介绍了使用Gazebo仿真平台进行UUV水下机器人开发的全流程,涵盖从环境搭建、uuv_simulator配置、传感器集成到核心避障算法实战。通过搭建水下仿真实验室并实现基于激光雷达数据的反应式避障算法,为水下机器人算法验证与开发提供了高效、低成本的解决方案。

weixin_28840591的博客 265

SpringBoot整合ELK使用详解

Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,适用于全文检索、结构化检索和分析。它提供了近实时的搜索和分析功能,并且能够很好地处理PB级别的数据。LogstashLogstash是一个具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端。在这个过程中,Logstash允许用户根据自己的需求在中间加上滤网,以实现对数据的处理和转换。Logstash提供了多种输入和输出插件,以及丰富的滤网功能,能够满足各种应用场景的需求。Kibana。

Chujun123528的博客 1532

在Cursor IDE中集成Datadog监控:自然语言查询实战指南

在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台

weixin_42519772的博客 348

【Bug已解决】Claude Team Plan 购买席位报错 Payment failed 解决方案

方案适用场景推荐指数检查账单历史状态排查的第一步⭐⭐⭐⭐⭐更换支付方式类型快速尝试是否能绕开问题⭐⭐⭐联系官方支持团队最终解决问题的正规渠道⭐⭐⭐⭐⭐临时过渡方案紧急用人需求的应急处理⭐⭐⭐关注官方修复进度确认属于系统性缺陷的场景⭐⭐⭐⭐Claude Team Plan 增购席位报的问题,社区反馈和实际排查表明很大概率属于平台计费系统在处理按比例分摊费用这类复杂计算链路时的系统性缺陷,而不是用户自身的支付信息填写有误。先排除自身账单历史是否存在异常。

一键难忘的博客 4184

徒手从零搭建一套ELK日志平台

日志分析是运维工程师解决系统故障,发现问题的主要手段日志主要包括系统日志、应用程序日志和安全日志系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误ELK是一个开源的数据分析平台,由三个开源项目Elasticsearch、Logstash和Kibana组成,因此被称为ELKELK主要用于处理和分析大量的日志数据,支持实时搜索、数据可视化和分析。

深入Java世界:探索编程之美与技术深度 3376

TIA西门子博途V19安装教程及注意事项

TIA西门子博途V19安装教程及注意事项

Robot_PLC_HMI_Automation 1万+

徒手从零搭建一套ELK日志平台(万字教程)

日志分析是运维工程师解决系统故障,发现问题的主要手段日志主要包括系统日志、应用程序日志和安全日志系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误ELK是一个开源的数据分析平台,由三个开源项目Elasticsearch、Logstash和Kibana组成,因此被称为ELKELK主要用于处理和分析大量的日志数据,支持实时搜索、数据可视化和分析。

lingqu+wx bjmsb06 2706

2025.05.28【读书笔记】|如何用SILVA和RFAM数据库高效去除rRNA污染

摘要: 在Ribo-seq等测序数据分析中,清除rRNA污染对结果准确性至关重要。仅使用SILVA数据库可能遗漏5S rRNA污染,建议结合RFAM数据库(特别是RF00001家族)全面清除。操作要点包括:下载两库序列、将RNA碱基U替换为DNA的T、合并序列建立索引,使用bowtie2过滤rRNA reads。注意U/T转换是关键,否则会导致比对失败。该方法能有效提升数据清洁度,为后续分析奠定基础。

980

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

实战elk搭建

一、ELK分析 对于ELK,主要是分为Elastic Search、Logstash和Kibana三部分:其中Logstash作为日志的汇聚,可以通过input、filter、output三部分,把日志收集、过滤、输出到Elastic Search中(也可以输出到文件或其他载体);Elastic Search作为开源的分布式引擎,提供了搜集、分析、存储数据的功能,采用的是restful接口的风格;Kibana则是作为Elastic Search分析数据的页面展示,可以进行对日志的分析、汇总...

weixin_48687824的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

入门级ELK环境搭建及使用教程

ELK环境搭建ELK环境搭建安装前准备1.获取安装包2.创建用户组及用户3.统一处理一、elasticsearch配置1.配置2.启动3.观察是否启动二、logstash配置1.配置文件准备2.修改配置3.启动4.观察是否启动三、kibana配置1.修改配置文件2.启动3.观察是否启动JAVA中使用(spring boot) ELK环境搭建 安装前准备 1.获取安装包 wget下载地址: https://artifacts.elastic.co/downloads/elasticsearch/elastic

qq_42483521的博客 6563

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

在linux上使用docker搭建ELK日志框架

本文介绍了使用Docker Compose快速部署ELK日志分析平台的方法。ELK由Elasticsearch(存储检索)、Logstash(收集处理)和Kibana(可视化)三个组件组成。通过docker-compose.yml文件可一键部署这三个服务,包含配置容器参数、端口映射和数据持久化。文中提供了启动脚本、系统参数设置和常用管理命令,并详细说明了访问Kibana界面的方法(端口5601)。部署完成后,应用程序可通过Logstash的5000端口发送JSON格式日志,最终在Kibana中查看分析。此外

每天学习一点点 1601

简易ELK搭建

ELK包括elasticsearch、logstash、kibana,是用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana)的一整套解决方案,本文搭建的为7.8版本,均为单节点部署(JDK要求1.8.0_73以上)

weixin_45617480的博客 1746

ELk日志平台搭建

服务器数量较少时,使用 rsyslog 或者 脚本(scp) 进行收集、分割日志,再统一汇总到专门存放日志的日志服务器保存管理。查看日志可以把需要的日志文件传到windows主机上,使用专业的文本工具打开分析日志。服务器数量较多时,使用 ELK 收集日志、存储日志、展示日志。对于在K8S平台运行的容器日志,可以使用 Loki+Granfana 收集日志、存储日志、展示日志。

2301_76838634的博客 6223
上一篇: JAVA知识获取-redis集群方法
下一篇: JAVA进阶之路-nginx设置密码
丘下两点vvv
博客等级 码龄9年 3粉丝 12原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值