索鸟网

  1. 首页
  2. 统计elasticsearch中月每天索引量的脚本

统计elasticsearch中月每天索引量的脚本


  随着业务量的不断上升,最近一段时间需要对生产环境中的elasticsearch集群中的历史索引数据做迁移,而在做迁移前需要对被迁移的elasticsearch索引数据做统计用于迁移后的验证统计,所以就写了一个脚本用于es数据中查询历史索引的量生成报表文件,而在其中有使用过jq工具用于取数,jq的介绍可以查看http://jim123.blog.51cto.com/4763600/1966964

#!/bin/bash
#es_count_report.sh
#used for elasticsearch monthly numbers index
#you must install jq and curl
#writer jim
#2017.09.19
#Position parameter judgment
datetime=$(date +"%Y%m")

if [ $# -lt 1 ];then
    echo "Please enter the date "year month""
    echo "ex> $0 ${datetime}"
    exit 1
fi
 
if [ $# -gt 1 ]; then
        echo "The input host address are too much"
    echo "ex> $0 ${datetime}"
    exit 1
fi
#这里在elasticsearch中取数时有用到curl和jq
rpm -qa | grep jq && rpm -qa | grep curl
if [ $? -ne 0 ];then
    yum -y install jq curl
fi

es_ip="192.168.2.200"
es_port="9200"
monthtime=$1
#elasticsearch的相关信息及传入的时间
data_index="data-${monthtime}"
index_name_all=$(curl -s "http://${es_ip}:${es_port}/_cat/indices?v" | grep ${data_index} | awk "{print $3}" | sort)
report_file="$(pwd)/index_num_"${monthtime}".txt"
cat /dev/null > $report_file
#至空生成一个新文件用于记录
for i in $index_name_all
do
    index_num=$(curl -s -XGET "http://${es_ip}:${es_port}/${i}/poll/_search/?pretty" -d "{"_source":true,"size": 0}"|jq ".hits.total") && echo "$i:$index_num" >> $report_file
done

总之在平时可以根据elasticsearch的api接口实现各种不同的数据统计

本文出自 “Jim的技术随笔” 博客,谢绝转载!

jq elasticsearch

来源地址:http://jim123.blog.51cto.com/4763600/1966969 版权归作者所有!

相关教程

  • Springboot轻量实时统计服务

    DataM DataM是基于Spring boot,Redis,Mysql,阻塞队列组成的实时数据采集服务,采用Spring boot作为运行框架,多线程异步执行任务, 并通过线程安全队列缓冲达到较高可用的目的 内容: 使用Redis做消息队列,实时数据上报 data-app-service用于接收http上报数据 data-app-consumer用于
  • elasticsearch的索引自动清理及自定义清理

          近发现elasticsearch近期索引文件大的吓人,清理了下之前的索引文件,发现服务器性能大大的减轻了一半,想一直保留近一个月的索引文件,但是又不想每个月手动清楚,在此写了一个小脚本一、 手动删除rm -rf *2016-07-*二、api删除curl -XDELETE "http://127.0.0.1:9200/
  • 用于Nagios中监控elasticsearch健康状态脚本

        在Nagios社区中上找了下相关用于监控elasticsearch索引的脚本,再经过修改下,可以在平时用于传入elasticsearch的监听ip用于在Nagios中使用监控elasticsearch健康状态的脚本#!/bin/bash #check_elasticsearch_health.sh #Memo for&nb
  • 创业公司如何做好监控报警

    前言 可靠稳定的产品背后需要有靠谱的监控报警框架做支撑。本文为创业公司搭建监控和报警框架提供思路。 从大公司投身到创业型的小公司,最深的感受就是“由奢入俭难”这五个字。 以前公司里有完善的框架体系,涵盖了分布式log、监控、实时报警、大数据存储等等方面,并且有成熟的团队来运营,使用者大部分时间只要做好集成就行; 换到了小公司,以我们bigsec岂安科技
  • Django 博客开发教程 16 - 统计文章阅读量

    如何精确地记录一篇文章的阅读量是一个比较复杂的问题,不过对于我们的博客来说,没有必要记录的那么精确。因此我们使用一种简单但有效的方式来记录博客文章的阅读量:文章每被浏览一次,则其阅读量 +1,即所谓的文章页面 PV(Page View)数。虽然简单粗暴,但却高效实用。 增加新字段 为了记录文章的浏览量,需要在文章的数据库表中新增一个用于存储阅读量的字段。
  • ELK初体验-Nginx日志实时分析

    写在前面从初次了解elastic产品到正式投入使用,拖拖拉拉的也有小半年了,刚接触的时候看到一些帖子都是安装教程,后来看到一些都是深入教程,此篇文章较居中一点,总结了我在踩的一些坑和记录一些周边插件的使用方式、方法,便于自己后续回顾,也希望能给新用户一些引导,少走一些弯路;核心其实是想表达一下对rockybean和KennyW的爱,这期间非常感谢两位的协
  • MySQL自动化(全量+增量)备份脚本

    一、MySQL的日常备份方案:全备+增量备份:1、周日凌晨三点进行全备;2、周一到周日增量备份。不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少周日一天的数据量,所以七天增量备份,周日全备可以更好的保全数据。这是备份周期演示表:Sun 3:00------Mon 3:00-----------------Tue&
  • 【Mysql】xtrabackup全量增量备份脚本

    全量备份脚本 #!/bin/sh # add ling INNOBACKUPEX=innobackupex INNOBACKUPEXFULL=/usr/bin/$INNOBACKUPEX TODAY=`date +%Y%m%d%H%M` YESTERDAY=`date -d"yesterday" +%Y%m%d%H%M` USEROPTIONS="-