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. LocalDate的使用

    LocalDate的一些使用方法 今天半天的时间都用在了LocalDate上,然后呢,也是自己的第一次写博客. 首先来看看会用上的方法吧. 两个构造器,用的是静态工厂方法 static   Local ...

  2. 使用quaggaJS识别图片中的条形码

    quaggaJS是一个纯JS的插件,用于识别图片中的条形码,很方便.一般用于移动端拍照识别,也可以在网页端上传图片识别. github下载地址 首先要指定正确格式的条形码,常见的条形码编码类型有EAN ...

  3. 微信小程序如何实现和微信客服通话?

    微信小程序如何实现和微信客服通话?

  4. 19-05【icloud】照片备份

    icloud提供了免费的存储空间,5G,超过这个量需要单独购买空间:我用的是50G,每月6元. 如果在mac或者iphone上开启了本地的照片流,则会自动同步到icloud,同时各个设备的客户端(ip ...

  5. nltk分词

    1.安装nltk 2.运行如下 >>>import nltk>>> nltk.download('punkt') 3.代码: import nltk sentenc ...

  6. VS code 代码格式整理的配置

    { "workbench.iconTheme": "material-icon-theme", "vetur.validation.template& ...

  7. IDEA访问不到SpringBoot项目webapp下的内容

    参考:https://blog.csdn.net/weixin_43105335/article/details/87863847 https://blog.csdn.net/qq_34797335/ ...

  8. Solidity-让合约地址 接受ETH的转账充值的 三种方式

    以太坊智能合约开发:让合约接受转账 在以太坊智能合约开发中,通常会有向合约地址进行转账的需求,那么有几种向合约地址进行转账的方式呢? 有三种方式: 部署合约时转账 调用合约提供的方法 直接向合约地址进 ...

  9. redhat 7 dns 配置

    dns 配置(安装环境是neokylin7.4) #后为需要在root权限下执行的命令 一.安装 修改配置文件1.需要安装的包 bind . bind-chroot .bind-utils #yum ...

  10. js学习之原生js实现懒加载

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...