es中的index大小信息存入mysql

135 阅读2分钟

前言

直接上干货



一、数据库信息


mysql -h172.21.240.11 -P3307 -uroot -p"123456" -D elk
# 数据量增长情况
# 一张表,一天增量500条,一年182500条,5年共912500条。5年满打满算才100w条。


  1. 数据库信息 mysql -h172.21.240.11 -P3307 -uroot -p"123456" -D elk

  2. 表信息

create table ks_indices
(
`index_name` varchar(255) not null,
`topic_name` varchar(255),
`index_date` date,
`index_idc` varchar(255),
`index_size` varchar(255),
`index_size_t` BIGINT,
`create_time` date,
`update_time` date,
`delete_time` date,
`is_tag` BOOLEAN,
PRIMARY KEY (index_name)
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

#
CREATE TABLE wg_indices (
`index_name` VARCHAR(255) not null,
`topic_name` VARCHAR(255),
`index_date` DATE,
`index_idc` VARCHAR(255),
`index_size` VARCHAR(255),
`index_size_t` BIGINT,
`create_time` DATE,
`update_time` DATE,
`delete_time` DATE,
`is_tag` BOOLEAN,
PRIMARY KEY (index_name)
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;


图片.png

二、python处理逻辑

Prometheus的es exporter地址为: http://172.25.178.245:9114/metrics,其中有一个metrics为elasticsearch_indices_store_size_bytes_total,形式为 elasticsearch_indices_store_size_bytes_total{cluster="00g0sr8qbpab",index=".kibana_1"} 1.523535e+06

现在取 elasticsearch_indices_store_size_bytes_total 指标中的index(日期为前一天的所有index)和最后的size值,如果size为科学计数法1.523535e+06则需要换算成int型的数字,index插入到elk.ks_indices的index_name中;

size插入到lk.ks_indices的index_size中; index的名字中剔除日期部分(如: -2024.11.05 后缀剔除),然后插入到elk.ks_indices的topic_name中; 插入时间获取当前时间,然后插入到elk.ks_indices的create_time 字段中; 在elk.ks_indices的index_idc 中写入yumc3 其余字段保持空。



三、插入后的数据信息

图片.png

图片.png



四、补充

  1. 相关命令
#
select count(1) from elk.ks_indices\G

#
select * from elk.ks_indices limit 5;
select * from elk.ks_indices limit 1,20 \G
select * from elk.ks_indices where topic_name="mid-uh" limit 10;
select count(1) from elk.ks_indices limit 5;
delete from elk.ks_indices limit 5;
alter table elk.ks_indices modify index_size varchar(255) comment '单位GB';

#
select * from elk.wg_indices limit 5;
select * from elk.wg_indices limit 1,20 \G
select * from elk.wg_indices where topic_name="mid-uh" limit 10;


  1. python执行方式

python3 /data/jenkins/jenkins_home/workspace/ELK/get.elk.log.size/ks_elk_indices_size.py >> ./elk_topic.log

python3 /data/jenkins/jenkins_home/workspace/ELK/get.elk.log.size/wg_elk_indices_size.py >> ./elk_topic.log