日志分析

Elasticsearch 2.20入门篇:基本操作

假如想象 提交于 2021-02-02 06:59:40
前面我们已经安装了 Elasticsearch ,下一步我们要对 Elasticsearch进行一些基本的操作。基本的操作主要有,建索引库,插入数据,查询数据,修改数据,删除数据,删除索引库。 备注:如果没有特殊说明,本文章及后面所有的文章都在2.20版本中进行验证,其他版本不能确定是否可用。 由于官方文档都是使用curl来进行实例操作,不太直观,我更喜欢用图形化界面来进行验证。在本文及以后的例子中,我都是已RESTClient3.5来作为操作的工具。下载地址为http://code.fosshub.com/WizToolsorg-RESTClient/downloads,下载的文件是restclient-ui-3.5-jar-with-dependencies.jar。 程序运行: java -jar restclient-ui-3.5-jar-with-dependencies.jar 建索引库 执行PUT localhost:9200/customer?pretty 返回表示建库成功: { "acknowledged" : true } 说明:http方法PUT,url为 localhost:9200/customer?pretty 查询库 执行GET http://localhost:9200/_cat/indices?v 返回: health status index

logstash收集log4j日志

烂漫一生 提交于 2021-01-07 04:47:19
使用logstash收集log4j日志信息 log4j日志文件配置 重要参数详解 mode logstash工作模式,可选"server"或者"client",默认是"server",server就是把logstash看做是日志的服务器,接收log4j主机端生成的日志消息。client则是把logstash看做是tcp的发起者,请求log4j主机返回日志消息。 host 主机地址,字符串类型,如"localhost"或者"192.168.0.1",如果是server模式,就是监听的主机地址,如果是client模式,就是连接的目标地址。 port 端口号,数字类型,如 4567 或者 12345,如果是server模式,就是监听的端口号如果是client模式,就是连接的目标端口号。 data_timeout 超时时间,秒为单位。如果设置-1,则永不超时,默认是5,如果某个tcp连接闲置了,则超过该时间限制,就断开或者关闭连接。 Server模式 server模式就是把logstash作为服务器,输出日志消息的java程序所在的主机作为客户机, logstash配置 : input{ log4j { mode => "server" host => "localhost"#注意这里,这里是Logstash服务器的地址或者主机名 port => 4560 } } output{

Elasticsearch 2.2.0 快照和恢复

佐手、 提交于 2020-12-03 12:39:16
在Elasticsearch中的可以创建快照,它创建单个索引或整个群集到一个远程的存储库中。在以前的版本中,系统只支持共享存储的快照创建,最新的版本可以通过插件支持更多的方式。在执行快照操作前,需要在 Elasticsearch中进行注册快照仓库。注册仓库的设置需要执行仓库类型,例如: 请求:PUT /_snapshot/my_backup 参数: { "type": "fs", "settings": { ... repository specific settings ... } } 当注册后,可以通过查询来得到之前注册的信息。当然系统也支持用逗号分开来查询多个注册,支持通配符查询多个注册,甚至可以使用_all查询所有注册。 请求: GET / _snapshot / my_backup 返回值: { "my_backup": { "type": "fs", "settings": { "compress": "true", "location": "/mount/backups/my_backup" } } } 共享文件系统存储 ("type": "fs")使用共享文件系统来存储快照。为了注册共享的文件系统存储库,必须将同一个共享文件系统安装到所有主节点和数据节点上相同的位置上。这个位置(或它的父目录)必须在 所有主节点数据节点上 设置 path.repo参数

Elasticsearch 2.20 JAVA开发篇:索引文档操作

亡梦爱人 提交于 2020-11-24 09:38:44
既然是开发篇,主要以代码为主,辅助一些说明。所有的内容都是代码实际应该验证过的。 引入的头文件: import static org.elasticsearch.node.NodeBuilder.nodeBuilder; import java.io.IOException; import java.net.InetAddress; import java.util.Date; import java.util.Map; import java.util.Set; import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse; import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.Client; import org.elasticsearch.client

Elasticsearch 2.20 从新评分

荒凉一梦 提交于 2020-10-28 13:04:39
在Elasticsearch中,搜索单个单词是比较快的,当搜索短语的时候,效率会比较低。所以Elasticsearch提供了从新评分的方法来提高效率。他的原理主要是当在整个索引中搜索短语消耗的资源会比较多,但大多数时候,人们只关注最近发生一部分文档,所以可以先在最近的一段文档中先对短语进行从新评分,然后再查询,这个时候看起来效率会增加很多。 在返回搜索请求节点处理排序结果之前在每个分片上执行从新评分。通常情况下当我们用从新评分API来重新评分的过程只执行一次,在未来有可能会被调整。当search_type为 scan或者count的时候将不被执行。在用分页查询的时候,每一页查询的时候window_size尽量不要修改,如果修改了可能会引起排序的混乱,导致不可预知的结果。 查询评分时 在query或者post_filter 返回的top-k结果 ,在每个分片返回文档的数量有window_size控制,默认返回from到size的个数。 默认情况下对每个文档最终的得分(_score) 是原始的得分和从新评分后的得分进行线性组合后的结果。原始评分和从新评分的比例关系分布由query_weight 和rescore_query_weigh控制,默认都是1。例如从新评分查询: 请求:POST localhost:9200/_search 参数: { "query" : { "match" :

secilog 1.18 发布 增加了mysql审计,多个web报表等

拜拜、爱过 提交于 2020-05-04 00:08:14
日志分析软件 secilog 1.18发布,增加了mysql数据库审计,增加了多个web报表,对日志查询做了更多友好的新特性,上篇文章 1.17 ,有兴趣可以了解一下。本次升级主要增加以下功能: 增加了mysql数据库审计 mysql的审计主要有几种方式,常用的是分析mysql的binlog功能,而binlog的分析一般不能实时分析,还有个问题就是binlog是二进制内容,需要借助第三方系统才可以分析。还有一种常用的方式是通过sniffer来分析mysql的请求,我们目前主要采用的是sniffer来分析mysql的日志。 mysql的sniffer采集需要安装agent,agent是的源码位置如下: ‍ h ‍ ttps://github.com/zhulinu/secimysql, 下载后编译运行就可以到agent,编译完成后配置syslog, /etc/rsyslog.conf增加一行 local0.* @ip 同时修改message中的信息,不然会重复记录 *.info;mail.none;authpriv.none;cron.none /var/log/messages改为下面的内容 *.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages 然后后台启动监听 nohup .

Elasticsearch 分片错误failed shard recovery解决办法

ε祈祈猫儿з 提交于 2020-04-25 05:27:30
今天早上Elasticsearch莫名奇怪的报错了。整个控制台不停的打印出 [2016-06-07 08:55:00,976][WARN ][indices.cluster ] [secilog] [[seci-201 606][1]] marking and sending shard failed due to [failed recovery] org.elasticsearch.index.gateway.IndexShardGatewayRecoveryException: [seci-201606 ][1] failed recovery at org.elasticsearch.index.gateway.IndexShardGatewayService$1.run(IndexS hardGatewayService.java:162) [2016-06-07 08:40:41,967][WARN ][cluster.action.shard ] [secilog] [seci-201606][1] received shard failed for [seci-201606][1], node[xGIRwM34TdWcKgV95BI74g], [P], s[INITIALIZING], indexUUID [t75Egn6rT2WyBYQk_2X3IQ],

Elasticsearch 2.2.0 插件篇:安装

北慕城南 提交于 2020-02-28 18:38:45
Elasticsearch通过插件来增强其个性化功能需求。他们可以添加自定义映射类型,自定义分析器,本地脚本,自定义发现等等。在 Elasticsearch中,有三种类型的插件: java插件:这些插件只包含jar文件,并且必须安装在集群中的每个节点上。安装后,每个节点必须重新启动后才生效。 站点插件:这些插件包含了静态的Web内容,如JavaScript,HTML和CSS文件, 站 点插件只需要在一个节点上安装,并且不需要重新启动就可以使用。 站点插件通过url进行访问,例如:http://localhost:9200/_plugin/[plugin name]。 混合插件: 混合插件是即包含jar文件又站点插件。 插件管理 插件是通过脚本来进行管理的,可以安装插件,查询插件和删除插件。正常情况下插件位于$ES_HOME/bin下,通过rpm等安装的位置可能会不同。可以通命令获取插件帮助:在目录下执行, plugin -h plugin -h NAME plugin - Manages plugins SYNOPSIS plugin <command> DESCRIPTION Manage plugins COMMANDS install Install a plugin remove Remove a plugin list List installed plugins

Elasticsearch 2.2.0 基础篇:Lucene倒排索引

£可爱£侵袭症+ 提交于 2020-01-09 23:55:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.简介 倒排索引源于实际应用中需要 根据属性的值 来查找记录。这种索引表中的每一项都包括 一个属性值和具有该属性值的各记录的地址 。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。 倒排文件(倒排索引),索引对象是文档或者文档集合中的 单词 等,用来 存储这些单词在一个文档或者一组文档中的存储位置 ,是对文档或者文档集合的一种最常用的索引机制。 搜索引擎的关键步骤就是建立倒排索引 ,倒排索引一般表示为一个 关键词 ,然后是它的 频度 (出现的次数), 位置 (出现在哪一篇文章或网页中,及有关的日期,作者等信息),它相当于为互联网上几千亿页网页做了一个索引,好比一本书的目录、标签一般。读者想看哪一个主题相关的章节,直接根据目录即可找到相关的页面。不必再从书的第一页到最后一页,一页一页的查找。 2.Lucene倒排索引原理 Lucerne是一个开放源代码的高性能的java 全文检索引擎工具包 , 不是一个完整的全文检索引擎 ,而是一个 全文检索引擎的架构 ,提供了 完整的查询引擎和索引引擎 , 部分文本分析引擎 。目的是为软件开发人员提供一个简单易用的工具包,以方便

Spark Streaming结合Flume、Kafka最新最全日志分析

自闭症网瘾萝莉.ら 提交于 2019-12-18 11:40:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Spark Streaming结合Flume、Kafka最新最全日志分析 1.修改相应的配置文件 按照 http://my.oschina.net/sunmin/blog/692994 整合安装Flume+Kafka+SparkStreaming 将flume/conf/producer.conf将需要监控的日志输出文件修改为本地的log 路径: /var/log/nginx/www.eric.aysaas.com-access.log 2.导入相关 jar 包 (快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的“Modules”显示下图界面 jar 包自己编译,或者去载 http://search.maven.org/#search|ga|1|g%3A%22org.apache.spark%22%20AND%20v%3A%221.6.1%22 3.新建log/KafkaTest.scala 代码如下 import kafka.serializer.StringDecoder import org.apache.spark.SparkConf import org.apache.spark.streaming.dstream.DStream import