版本控制: elasticsearch 版本控制: 内部版本控制 外部版本控制 内部版本控制: 内部版本会检查你提供的版本值和文档的版本值是否一致,如果不一致就报错,一致则可以更新. curl -XPUT 'http://192.168.1.151:9200/library/books/8' -d '{"title": "ElasticSearch", "name":{"first": "Feng", &q…
ELK概述: ElasticSearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等 Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用 Kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总.分析和搜索重要数据日志 ElasticSearch 安装部署: 安装: tar…
问题出现的环境: OS版本:CentOS-7-x86_64-Minimal-1708 ES版本:elasticsearch-6.2.2 1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量 ulimit -Hn ulimit -Sn 修改/etc/security/limits.conf文件,…
0x00 ElasticSearch的索引和MySQL的索引方式对比 Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询. 倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢? 笼统的来说,b-tree索引是为写入优化的索引结构.当我们不需要支持快速的更新的时候,可以用预先排序等方式换取更小的存储空间,更快的检索速度等好处,其代价就是更新…
0x00 什么是Elasticsearch Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的,Elasticsearch是面向文档型数据库,这意味着它存储的 整个对象或者文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了.你可以在 Elasticsearch 中索引.搜索.排序和过滤这些文档,不需要成行成列的数据,ElasticSearch 提供了一套基 于restful风…
elasticsearch启动时Warning解决办法: 转载:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt=1214 问题一:   [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter:   Java.lang.UnsupportedOperationException: seccomp unav…
Shard和segment概念: 转载: http://blog.csdn.net/likui1314159/article/details/53217750 Shard(分片) 一个Shard就是一个Lucene实例,是一个完整的搜索引擎.一个索引可以只包含一个Shard,只是一般情况下会用多个分片,可以拆分索引到不同的节点上,分担索引压力. Segment elasticsearch中的每个分片包含多个segment,每一个segment都是一个倒排索引:在查询的时,会把所有的segment…
elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: true node.data: false 子节点,存储数据 node.master: false node.data: true 该节点是一个负载均衡器,什么都不做 node.master: false node.data: false 分片数 index.number_of_shards 副本数…
elasticsearch bool组合查询: 相当于sql:where _type = 'books' and (price = 500 or title = 'bigdata') Note: must: 相当于and should:相当于or must_not:相当于not 判断属性为null: Query与Filter 转载:http://www.cnblogs.com/xing901022/p/4975931.html 查询在Query查询上下文和Filter过滤器上下文中,执行的操作是…
elasticsearch 基本查询: 基本查询: term查询: terms查询: from和size查询: match查询: match_all查询: match_phrase查询: multi_match查询: 控制范围查询: 返回某些字段查询:…
elasticsearch基本概念和CRUD: 基本概念: CRUD: 创建索引: curl -XPUT 'http://192.168.1.151:9200/library/' -d '{"settings": {"index": {"number_of_shards": 5,"number_of_replicas": 1}}}' 查看索引: curl -XGET 'http://192.168.1.151:9200/lib…
elasticsearch head插件安装: 准备工作: 安装nodejs和npm https://nodejs.org/en/download/ node-v6.11.2-linux-x64.tar.xz 由于是xz压缩文件,所以要先安装 yum -y install xz $xz -d ***.tar.xz $tar -xvf  ***.tar 配置环境变量 # set node environment export NODE_HOME=/usr/local/node-v6.11.2-li…
0x00 问题引出 以下两个导出问题来自Elastic中文社区. 问题1.kibana怎么导出查询数据?问题2:elasticsearch数据导出就像数据库数据导出一样,elasticsearch可以么?或者找到它磁盘上存放数据的位置,拷贝出来,放到另一个es服务器上或者转成自己要的数据格式? 实际业务实战中,大家或多或少的都会遇到导入.导出问题.根据数据源的不同,基本可以借助: 1.程序写入 2.数据同步 logstash/flume/cana/es_hadoopl等来实现关系型数据库(如:O…
Bulk操作: Bulk操作用于批量插入数据: 请求体格式: 编辑一个文件:(插入2个新的文档) curl -XPOST 'http://192.168.1.151:9200/library/books/_bulk' --data-binary @requests 用mget查询文档: 已经成功插入.…
Mget操作: 查询多个文档: curl -XGET 'http://192.168.1.151:9200/_mget' -d '{"docs": [{"_index": "library","_type": "books", "_id": "1"}, {"_index": "library","_type"…
0x00 概述 目前使用的ES版本为6.3.x,经过长时间的积累,ES内数据越来越多,需要删除指定日志之前的日志. 例如只要求保留60天的日志,那么就要删除60天之前的所有索引和日志. 0x01 ES删除XX天之前的索引和数据 #!/bin/sh # ES版本为6.3.x function delIndex() { #此处输入要删除的索引名字,例如要删除filebeat-xxx索引的日志,此处要输入‘filebeat-’ index_name=$1 # 此处输入要数据保留的天数,例如要保留最近6…
[Cluster]集群,一个ES集群由一个或多个节点(Node)组成,每个集群都有一个cluster name作为标识------------------------------------------------[node]节点,一个ES实例就是一个node,一个机器可以有多个实例,所以并不能说一台机器就是一个node,大多数情况下每个node运行在一个独立的环境或虚拟机上.------------------------------------------------[index]索引,即一…
一.elk框架和java1.8环境搭建 1.1: 环境说明 约定: centos6 iptables关闭 如果不关闭的话,需要开放对应的端口访问 selinux关闭 1.2: ELK简介 els:ElasticSearch,Logstash,Kibana,Beats elk:ElasticSearch,Logstash,Kibana       ① ElasticSearch 搜索引擎 ElasticSearch 是一个基于Lucene的搜索引擎,提供索引,搜索功能.它提供了一个分布式多用户能力…
最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收…
0x00 _cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行curl -XGET localhost:9200/_cat 1. 获取所有_cat系列的操作 /_cat/allocation /_cat/shards /_cat/shards/{index} /_cat/master /_cat/nodes /_cat/indices /_cat/indices/{index} /_cat/segments /_cat/segments/{index…
0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经过仔细的分析和研究,确定下面的架构应该是比较合理的之一(Filebeat也支持直接写到ES),如果可以的话,Filebeat也可以不直接连到Logstash,先写到kafka,然后从kafka写到logstash的kafka插件. 关于ELK的各种架构以及优缺点,可以参考. 首先,不管是不是分布式架…
这次我们通过一个最简单的HelloWolrd来了解一下ELK的使用. 进入logstash的config目录,创建stdin.conf 文件. input{ stdin{ } } output{ stdout{ codec => rubydebug } elasticsearch{ hosts => ["192.168.25.129:9200"] index => "logstash-stdin" #我们会通过这个索引在Kibana中检索数据 us…
一般情况下单台服务器只会部署一个ElasticSearch node,但是在学习过程中,很多情况下会需要实现ElasticSearch的分布式效果,所以需要启动多个节点,但是学习开发环境(不想开多个虚拟机实现多个服务器的效果),所以就想着在一台服务器上部署多个结点(下文以2个结点作为例子),两个节点分别称为实例一.二. 1.首先将elasticsearch-5.4.0文件夹再复制一份 elasticsearch--node2 2.修改节点1的配置文件 # ====================…
废话不多说,直接上干货,首先看下整体应用的大致结构.(整个过程我用到了两台虚拟机  应用和Shipper 部署在192.168.25.128 上 Redis和ELK 部署在192.168.25.129上) Controller: @RestController @RequestMapping("/user") public class UserController { private Logger logger = LoggerFactory.getLogger(UserControl…
0x00 概述 测试搭建一个使用kafka作为消息队列的ELK环境,数据采集转换实现结构如下: F5 HSL–>logstash(流处理)–> kafka –>elasticsearch 测试中的elk版本为6.3, confluent版本是4.1.1 希望实现的效果是 HSL发送的日志胫骨logstash进行流处理后输出为json,该json类容原样直接保存到kafka中,kafka不再做其它方面的格式处理. 0x01 测试 192.168.214.138: 安装 logstash,c…
0x00 概述 很多客户使用GTM/DNS为企业业务提供动态智能解析,解决应用就近性访问.优选问题.对于已经实施多数据中心双活的客户,则会使用GSLB提供双活流量调度.DNS作为企业业务访问的指路者,在整个IT基础架构系统中有着举足轻重的作用,一旦DNS无法提供服务,将导致客户无法访问业务系统,造成重大经济损失.因此构建一套高弹性分布式的高安全DNS架构是IT系统建设的基础之石,通常为了保证系统的正常运行,运维人员为了实时掌握系统运行状态如解析速率.失败率.延迟.来源地址位置.智能选路.解析类型…
0x00 概述 F5 BIGIP从应用角度位于网络结构的关键咽喉位置,可获取所有应用的流量,针对流量执行L7层处理,即便是TLS加密的流量也可以通过F5进行SSL offload.通过F5可以统一获取所有应用的请求元数据,而不用关心应用是部署在何种系统架构中,这可以大大简化针对不同应用系统进行应用性能分析.日志采集工作.BIGIP TMOS系统提供了多种方法帮助实现统一信息收集,包括: HTTP Request logging profile DNS logging profile Avr iR…
0x00 概述 logstash官方最新文档.假设有几十台服务器,每台服务器要监控系统日志syslog.tomcat日志.nginx日志.mysql日志等等,监控OOM.内存低下进程被kill.nginx错误.mysql异常等等,可想而知,这是多么的耗时耗力.logstash采用的是插件化体系架构,几乎所有具体功能的实现都是采用插件,已安装的插件列表可以通过bin/logstash-plugin list --verbose列出.或者访问https://www.elastic.co/guide/…
0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities.简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端:与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景. Logstash常用于日志关系系统中做日志采集设备…
0x00 为什么用到ELK 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办.如何多维度查询.需要集中化的日志管理,所有服务器上的日志收集汇总.常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问. 一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服…