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. Go语言编程读书笔记:Go channel(1)

    Channel是Go语言在语言级别提供的goroutine间的通信方式.我们可以用channel在两个或多个goroutine之间传递消息.channel是进程内的通信方式,因此通过channel传递 ...

  2. 大数据入门到精通15--hive 对 date类型的处理

    一.基础日期处理 //date 日期处理select current_date;select current_timestamp;//to_date(time) ;to_date(string)sel ...

  3. spring boot + apache camel 传输文件

    一 sftp搭建略 这里简单说一下为什么使用sftp.ftp和sftp各有优点,差别并不是太大.sftp安全性好,性能比ftp低.ftp对于java来说并不复杂,效率也高.之所以使用sftp主要是可以 ...

  4. vim高级工能入门

    一.多文件编辑 1.vim   1.txt  2.txt  3.txt同时打开3个文件在vim缓冲区, 命令模式下输入:n 切换到下一个文件,可以加!:n! 强制切换,之前那个没有保存,仅仅是切换. ...

  5. Spring:MVC

    摘要 Spring MVC 是一个开源的.基于MVC架构的WEB应用框架.这里记录MVC模型的概念以及Spring MVC 的请求处理流程. 关键词:Spring MVC 一.什么是Spring MV ...

  6. selemium 常用查找方法

    1.selemium.FindElement(By.LinkText("下一步")) 2.selemium.FindElement(By.Id("userNumber&q ...

  7. aws

    名称 对应的技术 EC2 虚拟机技术 Virtual Machine 抽象了物理机,看到的是多台虚拟的机器 需要配置管理存储.网络.操作系统等 数分钟启动,运行数周或数月 ECS 容器 Contain ...

  8. C51汇编典型代码&一些org-mode技巧

    C51汇编典型代码&一些org-mode技巧 文档存放 具体内容可见存放的数据. 下面主要介绍关键代码. ASM 部分 1;; LCD数据发送========================= ...

  9. 【漫画】程序员永远修不好的Bug——情人节

    盼望着,盼望着,周五来了 情人节的脚步近了 一切都像热恋时的样子 飘飘然放开了买 购物车满起来了…… 不要指望着能在女生面前蒙混过关 是时候展现真正的技术了 这道坎过去了是情人节 过不去就是清明节了 ...

  10. Numpy 数组属性

    Numpy 数组的维数称为秩(rank),一维数组的秩为 1 , 二维数组的秩为 2 , 以此类推:在Numpy中, 每一个线性的数组称为是一个轴(axis),也就是维度(dimensios).比如说 ...