zabbix 使用 elasticsearch 来存储历史数据

本文介绍了将Zabbix的历史数据从MySQL迁移到Elasticsearch的过程,包括遇到的问题、解决方案以及配置步骤。迁移后发现Elasticsearch仅存储了itemID、时间戳和值,不利于运维管理。提出了通过转换程序重新格式化索引或使用Prometheus check的两种新方案,同时详细说明了zabbix server和前端的配置调整。
摘要由CSDN通过智能技术生成

Author mogd 2022-06-14
Update mogd 2022-06-14
Adage Life is like riding a bicycle. To keep your balance you must keep moving.

zabbix 使用 elasticsearch 来存储历史数据

一、前言

需求

目前 zabbix 使用 mysql 作为存储,很占用数据盘,磁盘不易于扩容,并且数据量很大导致查找的效率不高。设想通过 elasticsearch 来展示监控图表,能够快速检索想要查看的信息

坑点

笔者是实验完才意识到的,其实这个坑点在认真阅读官方文档说明并且了解 zabbix 的历史数据表结构就很容易意识到
Elasticsearch setup

zabbix 支持使用 elasticsearch 替代数据库存储历史数据,但其他数据还是存储在数据库。

如果读者看过 zabbix 历史数据的表结果就会很快意识到:

  • elasticsearch 只是存储了历史数据,那么索引记录的只是 itemid、clock、value 和 ns,这样在 Kibana 上做图表时,还是不清楚对应的 item 名称和 key,只是知道一个 itemid,反而更加不利于运维人员管理了
  • elasticsearch 存储了历史数据后,数据库里面将不再存有历史数据,也就是 zabbix 前端的图表监控基本上都无法正常使用

新方案

  1. 写一个转换程序,建立新索引,将 zabbix server 发送到 elasticsearch 的索引按指定格式重写到新索引

监控的主机成千上万台,一分钟的数据量都很大,重写索引,速度慢,会导致 Kibana 图表的数据不是最新的,而在停机维护时,需要很精确的数据来检测

  1. zabbix 的监控项使用 Prometheus check

官方有说明,待测试,下一篇文章会整理部署过程、测试结果和一些坑点

  1. 修改 zabbix_server 源码,将发送的格式更改为指定格式

指定格式: 主机名,item项,clock,value, ns
指定格式需要联合查询数据库,数据量太多,频繁查询数据库会加大数据库负担,并且多表查询也会导致延迟
源码是 C 语言写的,笔者不太熟悉,不好改,还不如重写

二、zabbix 配置

2.1 zabbix server

修改 zabbix server 的配置文件 zabbix_server.conf,修改完成后重启 zabbix server

### Option: HistoryStorageURL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值