ELK日志收集系统调研(五) -- ElasticSearch Java接口

如何通过ELK统计一段时间内接口被调用次数及平均响应时间 ELK,全名是: Elasticsearch,有了它,我们可以很方便地进行日志查询。 那么,假如想要统计某个服务的接口在某段时间内的被调用次数平均响应时间,类似于下面的效果: 阅读详情

在研究ELK日志收集系统时,顺便对于ElasticSearch的javaapi了解了下。
于是将自己写的测试代码上传做个备注。

Fileinfo.java
构造数据类,模拟的是文件的具体信息。

package com.elastic;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;

public class FileInfo 
{
    // 文件名称
    private String filename;

    // 文件路径
    private String filepath;

    // 文件大小
    private Long filesize;

    // 作者
    private String fileauthor;

    // 最后更新日期
    private Date filedate;

    public FileInfo()
    {
        super();
    }

    public FileInfo(String filename, String filepath, Long filesize, String fileauthor)
    {
        super();
        this.filename = filename;
        this.filepath = filepath;
        this.filesize = filesize;
        this.fileauthor = fileauthor;
    }

    /**
     * @return filename
     */
    public String getFilename() 
    {
        return filename;
    }

    /**
     * @param filename 要设置的 filename
     */
    public void setFilename(String filename) 
    {
        this.filename = filename;
    }

    /**
     * @return filepath
     */
    public String getFilepath() 
    {
        return filepath;
    }

    /**
     * @param filepath 要设置的 filepath
     */
    public void setFilepath(String filepath) 
    {
        this.filepath = filepath;
    }

    /**
     * @return filesize
     */
    public Long getFilesize() 
    {
        return filesize;
    }

    /**
     * @param filesize 要设置的 filesize
     */
    public void setFilesize(Long filesize) 
    {
        this.filesize = filesize;
    }

    /**
     * @return fileauthor
     */
    public String getFileauthor() 
    {
        return fileauthor;
    }

    /**
     * @param fileauthor 要设置的 fileauthor
     */
    public void setFileauthor(String fileauthor) 
    {
        this.fileauthor = fileauthor;
    }

    /**
     * @return filedate
     */
    public Date getFiledate() 
    {
        return filedate;
    }

    /**
     * @param filedate 要设置的 filedate
     */
    public void setFiledate(Date filedate) 
    {
        this.filedate = filedate;
    }

    /**
     * 
     * @return json对象(mapping)
     */
    public String toJsonStr()
    {
        String jsonData = null;

        try 
        {
            XContentBuilder jsonBuild = XContentFactory.jsonBuilder()
                .startObject()
                    .field("filename", filename)
                    .field("filepath", filepath)
                    .field("filesize", filesize)
                    .field("fileauthor", fileauthor)
                    .field("filedate", new Date(new File(filepath).lastModified()))
                .endObject();

            jsonData = jsonBuild.string();
        } 
        catch (IOException e)
        {
            System.out.println("build Json String failed!");
        }
        return jsonData;
    }
}

ESHandle.java
ES相关的方法接口

package com.elastic;

import java.util.List;

import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.deletebyquery.DeleteByQueryResponse;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.node.Node;
import org.elasticsearch.node.NodeBuilder;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;

public class ESHandler 
{   
    public Client client;

    // TransportClient方式
    public ESHandler(String clusterName, String ip)
    {
        if (null == client)
        {
            client = new TransportClient(ImmutableSettings.settingsBuilder()
                    .put("client.transport.sniff", true)
                    .put("cluster.name", clusterName)
                    .build())
                    .addTransportAddress(new InetSocketTransportAddress(ip, 9300));
        }
    }

    // Node方式,指定clusterName
    public ESHandler(String clusterName)
    {
        if (null == client)
        {
            Node node = NodeBuilder.nodeBuilder().clusterName(clusterName).client(true).node();

            client = node.client();
        }
    }

    // 单条数据索引
    public IndexResponse IndexSingleDoc(String indexName, String type, String id, String jsondata)
    {
        IndexRequestBuilder requestBuilder = null;

        // 指定id,或者由ES随即生成ID
        if (isStringEmptyOrNull(id))
        {
            requestBuilder = client.prepareIndex(indexName, type);
        }
        else
        {
            requestBuilder = client.prepareIndex(indexName, type, id);
        }

        return requestBuilder.setSource(jsondata).execute().actionGet();
    }

    // 单条数据获取
    public GetResponse getSingleDoc(String indexName, String type, String id)
    {
        return client.prepareGet(indexName, type, id)
                     .execute()
                     .actionGet();
    }

    // 单条数据删除
    public DeleteResponse deleteSingleDoc(String indexName, String type, String id)
    {
        return client.prepareDelete(indexName, type, id)
                     .setOperationThreaded(false)
                     .execute().actionGet();
    }

    // 通过Query删除数据
    public DeleteByQueryResponse deleteByQuery(String indexName, QueryBuilder querybuilder)
    {
        return client.prepareDeleteByQuery(indexName)
                     .setQuery(querybuilder)
                     .execute()
                     .actionGet();
    }

    // 批量数据索引
    public BulkResponse bulkIndex(String indexName, String type, List<String> jsondata)
    {
        BulkRequestBuilder bulkRequest = client.prepareBulk();

        for(int i = 0; i < jsondata.size(); i++)
        {
            IndexRequestBuilder requestBuilder = client.prepareIndex(indexName, type).setRefresh(true);
            bulkRequest.add(requestBuilder.setSource(jsondata.get(i)));
        }

        BulkResponse response = bulkRequest.execute().actionGet();

        if (response.hasFailures())
        {
            System.out.println("Buld Index failed!Msg: " + response.buildFailureMessage());
        }

        return response;
    }

    // 处理搜索结果
    public void dealWithResponse(SearchHits hits)
    {
        SearchHit[] searchHits = hits.getHits();

        System.out.println(searchHits.length);

        for(SearchHit hit:searchHits)
        {   
            System.out.println((String)hit.getSource().get("type") 
                    + "|"
                    + (String)hit.getSource().get("message"));
        }
    }

    public void close()
    {
        client.close();
    }

    public static boolean isStringEmptyOrNull(String str)
    {
        if (null == str || "".equals(str))
        {
            return true;
        }

        return false;
    }
}
使用 ELK 收集日志 在这种情况下,ELK 为我们提供了统一的日志管理解决方案,它能很好的支持 Logback 等日志框架,使得我们可以集中的管理不同应用输出的日志信息。创建完成后,返回 Kibana 的首页,选择 Discover 选项,切换到我们新建的 logstash-* 选项下,然后选择时间段,就可以看到相应的日志信息了。在上图中应用日志框架直接将日志发送给 Logstash,然后 Logstash 将接收的日志写入 ElasticSearch 中,开发人员通过可视化的 Kibana 可以进行日志的查询和分析。 阅读详情

相关推荐

Elk和splunk的区别调研报告

Splunk(商业软件,收费)介绍: 从功能上讲,Splunk是一款功能完善、强大的机器数据(MachineData)分析平台,涵盖机器数据收集、索引、搜索、监控、分析、可视化、告警等功能。 Splunk还提供了强大API集,语言实现是用C/C++,Python,开发人员可以使用Python、Java、JavaScript、Ruby、PHP、C# 编程语言开发应用程序。 从技术上讲,Splun...

qq_36719340的博客 9561

ELK实现接口调用统计

本文介绍了使用ELK(Elasticsearch、Logstash、Kibana)实现接口调用统计的方法。主要步骤包括:1)设置标准日志格式"系统名称-调用类-调用方法";2)使用Logstash的grok过滤器解析日志;3)通过Elasticsearch查询统计接口调用次数。文章提供了详细的Logstash配置文件示例,支持从TCP和Kafka两种方式收集日志,并强调了自定义字段不能与系统关键字冲突的注意事项。该方案可实现高效的接口调用监控和分析功能。

友莘居士的博客 3237

自动化运维之日志这件“小”事

本文由 GOPS2017 北京站大会供稿并整理发布,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长。作者简介:         赵舜东中国SaltStack用户组发起人江湖人称:赵班长,曾在武警某部负责指挥自动化的架构和运维工作,2008年退役后一直从事互联网运维工作,历任运维工程师、运维经理、运维架构师、运维总监。《SaltStack技术入门与实战》作者,《运维知识体系》作者,GOPS金

高效运维 3026

elasticsearch后台查询日志的API使用

本文由本人原创,仅作为自己的学习记录 elasticsearch官网提供了这个cat的api方法,具体使用如下: elasticsearch本身提供了9200端口(如果未做修改的话),可以在es的ip和端口后加/_cat查看可用的cat api 首先需要获取9200的账号密码,这个账号密码在生产elasticsearch.yml的时候会随机生成,在文本最后来查看账号密码,账号一般为root ...

a1496785的博客 1万+

Chkdsk误删文件?5步教你从FOUND.000文件夹找回重要数据(附工具推荐)

本文详细介绍了当Chkdsk误删文件后,如何从FOUND.000文件夹中找回重要数据的5个步骤。包括理解Chkdsk与FOUND.000的关系、定位与访问FOUND.000文件夹、手动恢复CHK文件的技巧、使用UnCHK工具自动化恢复以及预防数据丢失的关键措施。适用于Windows用户解决数据丢失问题,特别是NTFS文件系统下的文件恢复。

weixin_30687051的博客 383

SAP ERPsim生产拓展实验报告

ERP课的实验和实践,也是SAP竞赛玩的东西,除了界面不华丽外很像游戏而且是团队型的pvp大乱斗

m0_67262022的博客 2020

Spring Data Elasticsearch(java操作ELK)

uris: http://192.168.8.128:9200 # ES服务器所在位置。集群多节点地址用逗号分隔。默认http://localhost:9200。# data: # ElasticsearchTemplate客户端配置。# cluster-nodes: 192.168.137.128:9300 # ES集群多节点地址。多个地址用逗号分隔。# cluster-name: docker-cluster # ES集群的名称。# 注意: 地址一定不要有末尾字符 '/'

weixin_53455615的博客 1885

告别混乱接线!用EPLAN 3D布局图,手把手教你搞定电气柜的3D建模与自动布线

本文详细介绍了如何使用EPLAN 3D布局图进行电气柜的3D建模与自动布线,帮助工程师告别混乱接线。从项目准备、基础结构建模到智能设备布局与逻辑定义,再到高级布线技术与问题排查,提供了一套完整的实战指南。通过EPLAN的3D功能,显著提升设计效率与系统可靠性。

weixin_30680385的博客 339

ELK日志套件安装与使用

1、ELK介绍 ELK不是一款软件,而是elasticsearch+Logstash+kibana三款开源软件组合而成的日志收集处理套件,堪称神器。其中Logstash负责日志收集,elasticsearch负责日志的搜索、统计,而kibana则是ES的展示神器,前端炫丽,点几下鼠标简单配置,就可以完成搜索、聚合功能,生成华丽的报表。 目前我们的日志方案: flume负责收集,服

刘彦的博客 3216

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 445

面试日志elk之ES数据查询与数据同步

文章摘要:本文系统介绍了Elasticsearch持久层技术及其应用场景,重点分析了传智教育研究院开发的ElegentData框架。该框架采用类似MyBatisPlus风格操作ES,简化了开发流程。文章详细演示了订单搜索功能的实现过程,包括ElegentData的集成、查询服务开发等。同时介绍了三种数据同步方案(MQ、Canal、ElegentPipe),并以ElegentPipe为例展示了MySQL到ES的数据同步实现,包括binlog配置、服务端/客户端开发等。最后通过订单数据同步案例,展示了完整的ES

qq_33665793的博客 1309

Starlink第三代终端和第二代终端的差异性有哪些?

starlink第三代终端和第二代终端的额差异

chen2jiang3的博客 2924

ELK 企业级日志分析系统 -- 企业必用

ELK 企业级日志分析系统前言一、ELK简介二、完整日志系统基本特征三、ELK 的工作原理四、部署ELK日志分析系统1、配置elasticsearch环境2、部署elasticsearch软件3、安装elasticsearch-head插件4、安装logstash5、安装kibana总结 前言 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

kele_baba 554

ADS1299寄存器配置与应用实战指南

本文提供了ADS1299高精度生物电信号采集芯片的寄存器配置与应用实战指南。详细解析了采样率、增益、转换模式等核心寄存器的设置方法,并分享了数据读取、高级功能配置及常见问题的调试心得,帮助开发者快速掌握ADS1299的配置技巧,实现稳定的ECG/EEG信号采集。

weixin_28278377的博客 194

3D视觉入门必看:深度图、点云图、IR图、RGB图像到底有什么区别?

本文深入解析了3D视觉中深度图、点云图、IR图与RGB图像的核心区别。深度图记录像素距离,是连接2D与3D的桥梁;点云图是显式的三维坐标集合;IR图感知红外光强度;RGB图像则提供颜色纹理。理解其信息维度和应用场景,是进行机器人导航、三维重建等任务的基础。

year5的博客 342

elk日志分析系统_Spring Cloud微服务系统添加ELK+logback可视化日志分析管理工具

为Spring Cloud微服务系统添加ELK+logback可视化日志分析管理工具一、问题起源 微服务架构中,除了Spring Cloud所需的组件,如网关、Eureka注册中心、配置中心等,还有大量经过业务拆分生成的微服务节点。如何有效地收集汇总各个微服务节点的日志,对于应对微服务架构的复杂性有很大的帮助。一个良好的微服务日志中心需具备方便查询、可视化展示等特点。二、技术调研 为此我们进行了深...

weixin_39815345的博客 678

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ELK(EFKE)日志告警监控系统集成笔记

前言 最近在搞公司项目系统架构优化,要弄一套日志监控管理系统,百度一下市面上比较火的就是Elastic公司的ELK框架,即Elasticsearch、Logstash和Kibana,日志监控用的是Elastalert,于是借鉴了一下网上的文章,开启自己搭建日志监控系统之路,顺便记录一下,方便以后忘记了再查阅巩固。 这里还要说明一下,Elasticsearch是用于日志的存储和检索,Logstash用于日志的收集并输出到Elasticsearch存储,Kibana则是前端界面,负责对Elasticsearch

DearLC的博客 8024

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

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

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

日志分析系统粗略调研

日志分析系统主要是通过搜索引擎来处理数据,所以先了解一下当前比较热门的搜索引擎 搜索引擎对比 数据库占比 根据最新的数据库引擎排名显示,ElasticSearch,Splunk和Solr分别占据了数据库搜索引擎的前三位。 各个引擎简介,优缺点 ElasticSearch 简介: Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,建立在全文搜索引擎 Apache Lucene™...

yyzhu的博客 396

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

centos7.6 配置ELK7.10版本(一)

一、java环境 二、下载、安装Elasticsearch 近期接到公司通知,最新的管理细则要求必须建立统一日志管理系统,调研loganalyzer和ELK后,直到loganalyzer后期调用mysql查询速度较慢,因而本次选择ELK来搭建一套日志监测环境,针对各个部分进行说明: 一、java环境 查找了网上很多安装配置教程,大部分提及java环境的重安装,这里经过我测试安装的经验,这里是可以使用自带的JDK版本的。 要求JDK版本1.8.0...

qq_27248929的博客 868

ELK

1. 场景定位 1.1 生命周期 任何一个产品从无到有,都至少要经历如下几个阶段:调研阶段、设计阶段、开发阶段、测试阶段、运营阶段 1.2 发展现状 随着公司业务的发展,我们所提供的产品规模越来越大,功能越来越多、架构越来越复杂。而到了这个时候,我们往往对产品的交付质量和项目的持续稳定运行的要求越来越高,虽然我们通过各种开发框架、开发模型、持续交付、DevOps等等,各种方法和手段来提高我们产品的质量,而且可以在一定程度上满足我们的需求。但是我们知道,对于任何一种产品来说,把它制造出来的时间和它运行的时间

weixin_46072106的博客 491

ELK日志收集系统调研(二) -- LogStash Shipper&Indexer

上篇文章中的架构图中提到了LogStash的Shipper和Indexer。

iov_aaron的专栏 5285

requirednew基于xml配置日志不回滚_为微服务保驾护航-添加ELK可视化日志分析

为Spring Cloud微服务系统添加ELK+logback可视化日志分析管理工具一、问题起源 微服务架构中,除了Spring Cloud所需的组件,如网关、Eureka注册中心、配置中心等,还有大量经过业务拆分生成的微服务节点。如何有效地收集汇总各个微服务节点的日志,对于应对微服务架构的复杂性有很大的帮助。一个良好的微服务日志中心需具备方便查询、可视化展示等特点。二、技术调研 为此我们进行了深...

weixin_39637545的博客 202

Mac下ELK日志中心环境的搭建以及spring boot集成logback与ELK对接

最近由于的公司业务系统出现问题,而排查问题只能从生产服务器拷贝日志到测试机,然后我们再去测试机上查看生成服务器的日志,排查问题,有时 由于日志的量太大,生产环境报错了,常常等拷贝完成就要十几分钟,到查到问题就要半小时以上,还好这段时间没有什么人用,要不然早就有人投诉了,所 以就想升级一下日志系统。 于是先调研了ELK,并且是用logback传输json...

weixin_30527323的博客 321
上一篇: Python笔记(八) -- Python Socket 编程 - 聊天室示例程序
下一篇: 使用Python-Diamond收集监控数据
Aaron.com
博客等级 码龄17年 25粉丝 39原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值