阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ELK之ES2.4.1双实例平滑升级至5.2.1问题解决及supervisor管理记

436次阅读
没有评论

共计 3917 个字符,预计需要花费 10 分钟才能阅读完成。

ES 老集群用的 2.4.1 版本,跑的比较好就一直没动,最近看资料 ES5.X 已经稳定,并且性能有较大提升,心里就发痒了,但由于业务要保持高可用的属性,就得想一个平滑升级的方案,最后想到了多实例过度的办法,5.X 版本网上介绍配置变化较大,也做好了踩坑准备,确定好要升级后,立刻动手。

一、对应升级改造方案

  使用端口 9220 和 9330 安装并配置好新的 ES5.2.1 实例 ——> 关掉 logstash 并将 ES2.4.1 实例堆栈调小重启(kafka 保留 3 个小时日志所以不会丢失)——>启动 ES5.2.1 并将 logstash 开启指向 ES5.2.1——>安装新版 kibana 实例做好指向,老数据用 http://host/old 访问——>ES5.2.1 配置调优。

二、升级后统一用 supervisord-monitor 管理

github:https://github.com/mlazarov/supervisord-monitor 

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

 

三、优化前后 ES 的 cpu、IO 和 thread_pool 的监控数据如下

优化前:

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

 

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

 

优化后:

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

 

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

从监控数据看最高的活跃进程数还是 bulk 的批量处理操作,如果不调优,直接会 block。

四、升级过程——编写了 ES5.2.1 的安装脚本如下

  之前用的 rpm 包,后考虑直接使用 tar 包安装,对于需要系统做的调优操作,直接编写自动化安装脚本,一键将所有系统参数配置后,将环境搭建好。

#/bin/sh
#writer:gaolixu
id elasticsearch || useradd elasticsearch -s /sbin/nologin   # 添加用户
grep "* - nofile 512000" /etc/security/limits.conf || echo  "* - nofile 512000"  >> /etc/security/limits.conf  # 修改文件描述符数量
grep "elasticsearch - nproc unlimited" /etc/security/limits.conf || echo "elasticsearch - nproc unlimited"   >> /etc/security/limits.conf  # 修改最大打开进程数数量
grep "fs.file-max = 1024000" /etc/sysctl.conf || echo "fs.file-max = 1024000"  >> /etc/sysctl.conf  # 修改系统文件描述符
grep "vm.max_map_count = 262144" /etc/sysctl.conf || echo "vm.max_map_count = 262144"  >>  /etc/sysctl.conf  # 修改程序最大管理的 vm
sysctl -p
cd /usr/local/src
[! -f /usr/local/src/elasticsearch-5.2.1.zip ] && wget 
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.zip
[! -d /usr/local/src/elasticsearch-5.2.1 ] && unzip elasticsearch-5.2.1.zip
mv elasticsearch-5.2.1 /usr/local/
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch-5.2.1  # 修改拥有者所有组
sed -i 's/-XX:+UseConcMarkSweepGC/-XX:+UseG1GC/' /usr/local/elasticsearch-5.2.1/config/jvm.options    #GC 方式修改为 G1
sed -i 's/-XX:CMSInitiatingOccupancyFraction=75/-XX:MaxGCPauseMillis=200/' /usr/local/elasticsearch-5.2.1/config/jvm.options
sed -i 's/-XX:+UseCMSInitiatingOccupancyOnly/#-XX:+UseCMSInitiatingOccupancyOnly/' /usr/local/elasticsearch-5.2.1/config/jvm.options

五、升级过程——配置文件、索引相关的更新调优

   升级期间着实踩了不少坑,老版 ES 索引配置可以直接写到配置文件里,新版是不行的,必须使用 api 去设置,另外 ES2.X 版本的进程数调优,在 ES5.X 我发现调整与否没有影响。配置文件如下:

cluster.name: yz-5search
path.data:  /data1/LogData5/
path.logs:  /data1/LogData5/logs
bootstrap.memory_lock: false   #CentOS6 内核不支持,必须要关闭
bootstrap.system_call_filter: false
network.host: 10.39.40.94
http.port: 9220
transport.tcp.port: 9330
discovery.zen.ping.unicast.hosts: ["10.39.40.94:9330","10.39.40.95:9330","10.39.40.96:9330","10.39.40.97:9330"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"

为了加快索引效率,编写 index 的模板配置(index 配置不允许写到配置文件了),将参数 put 到 es 的里,当然模板也可以通过前端 logstash 指定(要改 logtash 觉得麻烦),template 脚本如下:

#/bin/sh
#writer:gaolixu
#index template
curl -XPUT 'http://10.39.40.94:9220/_template/cms_logs?pretty' -d '{
     "order": 6,                                    # 优先级
      "template""logstash-cms*",                  # 正则匹配索引
      "settings": {
             "index.refresh_interval" "60s"# 索引刷新时间
             "index.number_of_replicas" "0"# 副本数设置为 0
             "index.number_of_shards" "8",    # 分片数设置为 8,共 4 台服务器
             "index.translog.flush_threshold_size" "768m"#translog 触发 flush 的阀值
             "index.store.throttle.max_bytes_per_sec" "500m"# 存储的阀值
             "index.translog.durability""async",              # 设置 translog 异步刷新到硬盘,更注重性能
             "index.merge.policy.segments_per_tier""25"# 每一轮 merge 的 segment 的允许数量, 默认是 10
             "index.merge.policy.floor_segment""100mb"# 小于这个值的 segment 会四舍五入,防止很小的 segment 的频繁 flush
             "index.merge.scheduler.max_thread_count""1",     # 机械盘设置为 1
             "index.routing.allocation.total_shards_per_node""2"  # 每个节点上两个分片
      }
}'

备:如果是更改,将 PUT 改为 POST

日志保留 7 天,清除的脚本如下,写入计划任务:

#!/bin/bash
#writer:gaolixu
DATE=`date +%Y.%m.%d.%I`
DATA2=`date +%Y.%m.%d -d'-7 day'`
curl -XDELETE http://10.39.40.97:9220/logstash-*-${DATA2}*?pretty

   由于单个索引达到了 35G 甚至 40G 以上,于是在 logstash 层面对建索引数量进行修改,把每天 12 个索引修改为每天 24 个索引:

ELK 之 ES2.4.1 双实例平滑升级至 5.2.1 问题解决及 supervisor 管理记

logstash 的修改如下:

index => "logstash-cms-front-nginx-%{+YYYY.MM.dd.hh}"  修改为
index => "logstash-cms-front-nginx-%{+YYYY.MM.dd.HH}"

备注:supervisor 的安装

easy_install meld3
easy_install pip
easy_install supervisor

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142226.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3917字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7992939
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...