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

从零构建:STM32与EC800 4G模块的工业物联网数据透传实战

本文详细介绍了如何从零构建STM32与EC800 4G模块的工业物联网数据透传系统。内容涵盖硬件选型、抗干扰电路设计、AT指令稳定性优化、网络连接管理、可靠数据透传协议以及低功耗策略,为开发者提供了一套可直接应用于工业场景的完整实战方案。

uran的专栏 1014

ELK日志分析系统

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

tgzh123的博客 577

地图可视化类型大全

地图可视化类型大全: 散点地图 网格地图 聚合地图 气泡地图 热力图 Choropleth地图/分级设色地图/分级区域地图/着色地图/分级统计地图(百度百科这样翻译)/等值域地图/分段设色地图 Cartogram地图/变形地图/示意地图 规则形状地图 /RecMap/Demers Cartogram/瓷砖网格地图/DorlingMap 流型图(Flow Map)\流线图\流向图\轨迹地图 复合地图

codeuniverse的博客 3534

[deprecated]第二章:DRM 框架概述:2.2 GEM显存管理概述

本文深入分析了Linux DRM子系统中GEM(Graphics Execution Manager)的显存管理机制。GEM通过核心数据结构drm_gem_object抽象显存buffer,结合drm_vma_offset_manager和drm_mm实现高效的地址空间分配与管理。该系统支持显存动态分配/回收、用户空间mmap映射、多进程访问隔离和跨设备共享等关键功能,并通过引用计数和同步机制确保并发安全。

图形/计算GPU的驱动与虚拟化技术分享园地 2544

搭建ELK+minio及配置

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

weixin_67363416的博客 1878

【AI黑话日日新】什么是AI云原生?

云原生赋能AI:利用容器、微服务、Serverless、DevOps等云原生技术,解决AI应用(尤其是大模型)在部署、扩展、运维、成本控制方面的痛点,让AI服务具备高可用、高性能、易运维、易扩展的特性AI赋能云原生:将AI技术(如智能调度、异常检测、自动优化)融入云基础设施管理,使云平台具备自我感知、自我优化、自我修复的能力,从"被动响应"升级为"主动适配"其本质是实现从""(AI运行在云上)到""(为AI量身打造的云)的根本性转变。

专注:太空算力、AI infra、异构调度、大模型成本工程 627

SpringBoot整合ELK使用详解

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

Chujun123528的博客 1532

华为OD机试真题 新系统 9月20号 【字符串分组求和】

华为OD新系统机试真题【字符串分组求和】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串分组求和】解析。

qq_45776114的博客 624

ASPICE学习笔记

ASPICE的全称是Automotive SPICE。

汽车电子软件领域知识分享 1355

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

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

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

智能园艺:AI Agent控制的室内种植系统

随着城市化进程的加速和人们对健康生活的追求,室内种植逐渐成为一种流行的生活方式。然而,传统的室内种植方式往往需要人工进行大量的监测和管理,效率低下且难以保证植物的生长质量。智能园艺:AI Agent控制的室内种植系统旨在利用先进的人工智能技术和传感器设备,实现室内种植的自动化和智能化管理,提高种植效率和植物生长质量。本系统的范围涵盖了从植物生长环境的监测到种植过程的自动化控制,包括温度、湿度、光照、土壤水分等环境参数的实时监测,以及灌溉、施肥、通风等种植操作的自动执行。

AI天才研究院 784

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

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

lingqu+wx bjmsb06 2706

动量因子在A股市场的有效性分析:量化实证研究

验证动量因子在A股市场的有效性及时间周期性分析不同时间窗口(短期/中期/长期)对动量效应的影响量化交易成本、市场流动性对动量策略收益的侵蚀程度比较A股与成熟市场(如美股)动量效应的差异特征理论框架:行为金融学解释动量效应的产生机制技术实现:Python全流程代码实现动量因子计算与回测实证分析:统计检验、风险收益指标、敏感性分析应用拓展:结合市场微观结构的策略优化方案动量因子(Momentum Factor)

2501_92132293的博客 2483

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

实战elk搭建

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

weixin_48687824的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

入门级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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

在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、付费专栏及课程。

余额充值