在zabbix的使用过程中,随着监控对象的增多,历史数据量逐日相应的增加,往往会造成前端页面卡顿、采集队列堆积、MySQL或POSTGRESQL数据库读写压力激增等情况。除了优化zabbix参数和数据库性能外,还有一个方法就是把监控数据从MySQL或POSTGRESQL中剥离出来,利用Elasticsearch存储历史监控数据。以下介绍如何使用Elasticsearch存储zabbix的历史监控数据。
1. Elasticsearch部署
Eticsearch 版本:7.10.0,端口:9200
1.1. 更新系统软件包到最新版本
1.2. 安装Java 11运行时环境
1.3. 下载Elasticsearch的RPM安装包
1.4. 安装Elasticsearch
1.5. 启动Elasticsearch
1.6 验证Elasticsearch是否正常运行
1.7 配置Elasticsearch
配置Java 内存限制
根据需要修改配置参数,例如修改监听地址、集群名称等
重启Elasticsearch
2.zabbix 安装
2.1.组件安装
yum源安装
切换php版本
安装zabbix server、web、agent
安装postgresql
2.1. Elasticsearch数据库配置
Elasticsearch索引说明
Elasticsearch支持以下几种监控项类型
原来Zabbix 的数据是存储在 MySQL/POSTGRESQL 中的,按照数据格式的不同分别存储的五个表中:history、history_uint、history_str、history_log、history_text。这五个表和 es 中相对应的索引关系如下。
Elasticsearch索引创建
添加数字(无符号)类型的索引
添加数字(浮点型)类型的索引
添加字符类型的索引
添加日志类型的索引
添加文本类型的索引
2.3修改Zabbix 的配置文件
修改zabbix server配置
修改zabbix web配置
重启服务
检查所有索引和文档数量
登录web查看监控数据
此后历史监控数据都会录入elasticsearch,而不会存放在postgresql数据库了,这样可以有效解决数据库的读写性能瓶颈问题。