ELK从5.6.3升级到6.3.0总结

由于6.3.0默认有es的监控功能,并且我们现在es总是有各种问题,原有的es开源插件head和HQ的监控都不够详细,所以决定升级es集群。我们目前es有5个node。我们的数据流向是filebeat logstash kafka logstash elasticsearch grafana

elasticsearch 升级总结

安装总结

由于各种配置文件问题,直接rpm -e elasticsearch, 然后安装6.3.0的es,/etc/elasticsearch/elasticsearch.yml 配置文件不变。

rolling update 总结

根据官网从5.6.3到6.3.0可以rolling upgrade,按照步骤直接操作,但是在升级完一个node之后,等es没有Initializing Shards和Relocating Shards的时候,等了两天的时候,Initializing Shards和Relocating Shards一直有,而且新的index貌似大部分都在升级的这个节点,导致数据严重不均衡,如果这样下去,这样这一个新升级的节点承受不了这么大的数据量,这时候找了是3台空闲机器,装上6.3.0的es加到整个集群中,这样一直等到了没有Initializing Shards和Relocating Shards的时候,但是按道理讲,es应该变成绿色,但是es集群还有UNASSIGNED shards,不过没有Initializing Shards和Relocating Shards。当时判断数据不会丢,所以接着升级,这样所有节点升级完成。后来发现UNASSIGNED shards应该是升级完后老的index有些逻辑问题,下面详细说下。

UNASSIGNED shards问题

在升级完所有index后发现还有UNASSIGNED shards的问题,确认集群的设置cluster.routing.allocation.enable已经由“none”设置成null了,看有人说要手动reroute这些shards,看了一下大概有500个shards,当时找了一个状态yellow的index发现replicas是1,有10个shards,5个UNASSIGNED,(当时认为replica应该是2,后来发现自己是错的,正常replica就是1,这样一共两副本)直接改成2,结果状态是15个shards,5个UNASSIGNED,我又改回了replicas=1,这样这个index状态就green了,然后就按照这个方法改,后来发现replica=2最后一个shard需要20分钟才确定到node上index才变green,这样把replica=3,在started shards是14的时候把replica=1,这样就修复了400多个shards,还剩下10个左右的shard UNASSIGNED,在反复执行一下这个流程,这样所有的UNASSIGNED shards就解决了。后来发现做这个过程中es报了大量的错误,估计这个有很多的逻辑错误,es需要反复修复,当时我们的ELK系统中logstash已经判断es不可用了,但是从es的监控来看es是正常的,估计就是es修复这个UNASSIGNED shards需要耗费写资源,下次要是再处理这个问题,需要慢慢的处理,不能短时间内修复所有的shards(我当时差不多1个小时就把500多个shards修复了,主要是分片的量小,整个index才不到5m),需要持续监控es的状态还有日志,最好在es比较闲的时候做。

最终都升级完成了,es整体的状态green了。

消费kafka的logstash5.6.3升级到6.3.0问题

配置文件沿用原有的没有问题,但是升级完后logstash template有问题,logstash无法往es里面放数据,具体的时间点是所有es节点都升级完成的第二天,(es需要所有节点都升级完成后,es的整个集群才是新版本的),logstash新建index的时候,原有template和新版本的不兼容,当时由于这些日志logstash已经在kafka里面commit了offset,如果不能及时解决,这段时间的所有日志都会丢失(可以找回,但是我们kafka 30多个topics,150多个partition,难度很大),百度了一个解决方案,直接删除原有logstash的template,重启logstash,logstash就会在es里面重新创建template。这样消费kafka的logstash就算升级完成。后来又仔细看了一下其实只要删除template中带_all的配置就行了,新老的区别就只是这一个。

kibana升级总结

这个没有太多操作,由于kibana的数据放到了es的.kibana index,升级完成后,说kibana数据需要升级,界面也给了升级链接,直接按照步骤升级就ok了。升级链接

grafana升级总结

这个是这次升级一起搞的,grafana从4.X升级到5.X,直接安装新的软件,拷贝/var/lib/grafana/grafana.db就行了。然后启动grafana就ok了。

收集端filebeat和logstash升级

这个还在计划中,预计就是停止所有filebeat,然后停止logstash,收集端备份/var/lib/filebeat/registry,和/etc/filebeat/filebeat.yml文件。然后升级filebeat,修改原有用到document_type的地方改成fields。然后logstash也要升级完后对应的修改,然后这两个组件也要加上xpack.monitor的配置,接着把filebeat和logstash起来就行了。需要注意的是之前装过filebeat6.2版本,这个版本在centos6上用/etc/init.d/filebeat restart,总是停出问题来,如果文件还是这样,建议用supervisor启动filebeat,可以尝试supervisor的这个配置(stopasgroup = true): stopsignal = KILL。

ELK从5.6.3升级到6.3.0总结的更多相关文章

  1. Hadoop-1.2.1 升级到Hadoop-2.6.0 HA

      Hadoop-1.2.1到Hadoop-2.6.0升级指南   作者 陈雪冰 修改日期 2015-04-24 版本 1.0     本文以hadoop-1.2.1升级到hadoop-2.6.0 Z ...

  2. DPA 9.1.85 升级到DPA 10.0.352流程

    SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...

  3. jackson2.5.0升级到2.7.0

    开发环境:spring-mvc4.1.7.jackson2.7.0 问题描述:项目中将原来的jackson2.5.0升级到2.7.0,导致服务调用出错. mvc相关的配置文件如下: <?xml ...

  4. ORACLE 10升级到10.2.0.5 Patch Set遇到的内核参数检测失败问题

    在测试ORACLE 10.2.0.4升级到10.2.0.5 Patch Set的过程中,遇到一个内核参数检查失败的问题,具体错误信息如下所示   实验环境: 操作系统:Oracle Linux Ser ...

  5. 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)

    探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言:       Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...

  6. linux内核升级(ubuntu12.04从3.13.0升级到3.4.0 )

    花了一天的时间,终于把ubuntu12.04 的linux内核版本从3.13.0升级到3.4.0 升级后,系统更加稳定.具体步骤:# wget http://www.kernel.org/pub/li ...

  7. mac版chrome升级到Version 65.0.3325.18后无法打开百度bing搜狗

    mac版本chrome升级到Version 65.0.3325.18后发现突然无法访问百度,搜狗,bing,神马等一系列的国内搜索引擎网站.连百度的儿子们比如知道,百度百科都无法访问. 1.首先想到的 ...

  8. 【Android Studio安装部署系列】三十一、从Android studio3.0.0升级到Android studio3.0.1

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 突然想要升级到较高版本.要跟随潮流嘛,不然就落后了. 下载IDE http://www.wanandroid.com/tools/i ...

  9. CoreProfiler升级到.NetStandard 2.0

    致所有感兴趣的朋友: CoreProfiler和相应的Sample项目cross-app-profiling-demo都已经升级到.NetStandrard 2.0和.NetCore 2.0. 有任何 ...

随机推荐

  1. Docker registry垃圾回收

    Docker registry垃圾回收 通过: docker run -p 5000:5000 -v /netdata/xxxx/registry:/var/lib/registry registry ...

  2. Python·——进程1

    1.进程背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序(的一个抽象). 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统 ...

  3. Vue中的~(静态资源处理)

    Webpacked 资源 首先要理解webpack是怎样处理静态资源的. 在*.vue组件中,所有的templates和css都会被vue-html-loader 和 css-loader解析,寻找资 ...

  4. ReentrantLock 实现

    ReentrantLock 实现:   关于锁的操作都是依赖于state 的值,当state =0 时候,表示 线程可以获取锁,state =1 表示锁已经占用,等待释放 获取锁的方法: protec ...

  5. Vue添加请求拦截器

    一.现象 统一处理错误及配置请求信息 二.解决 1.安装 axios  , 命令: npm install axios --save-dev 2.在根目录的config目录下新建文件 axios.js ...

  6. maven学习--1.项目结构及简单使用

    1.项目目录结构 MavenProjectRoot(项目根目录)   |----src   |     |----main   |     |         |----java ——存放项目的.ja ...

  7. windows任务栏IDEA图标变白色快速解决方法

    方案1:同时按Windows键+R键打开运行对话框,输入ie4uinit.exe -show然后回车即可修复. 方案2:打开计算机(Win7),此电脑(Win10)或任意文件夹,然后在地址栏输入cmd ...

  8. java学习(二)

    学号 20189214 <Java程序设计>第二周学习总结 教材学习内容总结 java类 创建java对象需要类似的模板,即类(class) java对象也拥有属性和能够执行的动作. 属性 ...

  9. bittorrent 学习(三) MSG

    msg.c中 int转化 char[4]  char[4]转化int的函数 如下(有多种方案) ]) { c[] = i % ; c[] = (i - c[]) / % ; c[] = (i - c[ ...

  10. List Leave

    本次作业是建立二叉树并输出叶结点 (1)首先是定义结点,包括左孩子,右孩子 typedef struct { int lch;//左孩子 int rch;//右孩子 }Node; (2)建立二叉树 c ...