当前位置: 首页 > news >正文

Zabbix对接Elasticsearch(ES)数据库(未成功)

0.需求分析

不管zabbix的后端数据库是oracle还是mysql,当zabbix监控的量级达到了一定程度后,那么对数据库的性能是一个非常严峻的挑战。特别是对历史数据的查询,将会变得非常非常的慢,别告诉我可以建索引优化,当量级达到一定的程度的时候,索引真的没啥效果了。如果再不继续寻找合适的解决方案,那么就一定会引发数据库层面的问题,最终导致服务不可用。当监控数据越来越大的时候,存储不足的时候,怎么办?那就删历史数据呗,但如果要求至少要保存半年甚至1年以上的历史数据,且又高端存储磁阵紧缺面临扩容难题的时候怎么办?而且又同时面临着单个历史表非常庞大的时候怎么办?分库、分表、分区?做读写分离?不!一切都是浮云,还有一个更值得推荐的解决方案,那就是利用Zabbix本身对ES支持的机制来将历史数据存储到ES集群。目前,官方虽然表示Zabbix对Elasticsearch的支持仍处于试验阶段,但笔者认为还是值得一试,且在测试阶段未发现有啥不妥。“生产环境”上也改造了几套对接ES的架构,目前运行均一切正常,ES可快速横向扩展的能力是人尽皆知啊!谁用谁知道。

1.架构图

在这里插入图片描述

2.环境搭建

这里只演示zabbix server对接ES的过程,其他集群将省略。
zabbix server :192.168.99.180
ES集群node1:192.168.99.111:9200

3.配置zabbix:

配置插件以便它可以连接到你的Elasticsearch实例。打开Zabbix服务器的配置文件zabbix_server.conf并添加以下行:

vim /etc/zabbix/zabbix_server.conf
HistoryStorageURL=http://192.168.99.111:9200
HistoryStorageTypes=uint,dbl,str,log,text

配置es前端页面

vim /etc/zabbix/web/zabbix.conf.php

添加

global $DB,$HISTORY;
…… 
// Elasticsearch url (can be string if same url is used for all types).$HISTORY['url'] = 'http://192.168.99.111:9200';// Value types stored in Elasticsearch.$HISTORY['types'] = ['uint', 'text', 'log', 'str', 'dbl'];

4.配置Elasticsearch模板:

设置sysctl.conf

vim /etc/sysctl.confvm.max_map_count=655360sysctl -p

设置limits.conf

#vim /etc/security/limits.confelasticsearch soft memlock unlimitedelasticsearch hard memlock unlimitedelasticsearch soft nofile 65536elasticsearch hard nofile 131072elasticsearch soft nproc 65536elasticsearch hard nproc 65536/etc/elasticsearch/jvm.option

禁用swap

#vi /etc/fstab#/dev/mapper/cryptswap1 none swap sw 0 0 注释

添加Elasticsearch mapping
Zabbix监控项数据类型
在这里插入图片描述

curl -H "Content-Type:application/json" -XPUT http://192.168.99.111:9200/uint -d ' { "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "type" : "long" } } } } } 'curl -H "Content-Type:application/json" -XPUT http://192.168.99.111:9200/dbl -d ' { "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "type" : "double" } } } } } 'curl -H "Content-Type:application/json" -XPUT http://192.168.99.111:9200/log -d ' { "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } } 'curl -H "Content-Type:application/json" -XPUT http://192.168.99.111:9200/text -d ' { "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } } 'curl -H "Content-Type:application/json" -XPUT http://192.168.99.111:9200/str -d ' { "settings" : { "index" : { "number_of_replicas" : 1, "number_of_shards" : 5 } }, "mappings" : { "values" : { "properties" : { "itemid" : { "type" : "long" }, "clock" : { "format" : "epoch_second", "type" : "date" }, "value" : { "fields" : { "analyzed" : { "index" : true, "type" : "text", "analyzer" : "standard" } }, "index" : false, "type" : "text" } } } } } '

5. 重启Zabbix服务器:

最后,重启Zabbix服务器以使更改生效。

 systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

多台elasticsearch集群可按以下格式配置

$HISTORY['url'] = [ 'uint' => 'http://192.168.1.230:9200 ', 'text' => 'http://192.168.1.234:9200 ''log' => 'http://192.168.1.235:9200 ' ];$HISTORY['types'] = ['uint', 'text','log'];

相关文章:

Zabbix对接Elasticsearch(ES)数据库(未成功)

0.需求分析 不管zabbix的后端数据库是oracle还是mysql,当zabbix监控的量级达到了一定程度后,那么对数据库的性能是一个非常严峻的挑战。特别是对历史数据的查询,将会变得非常非常的慢,别告诉我可以建索引优化,当量级达…...

【unity实战】使用Unity实现动作游戏的攻击 连击 轻重攻击和打击感

最终效果 文章目录 最终效果前言素材下载:玩家移动跳跃控制攻击动画配置轻攻击重攻击 攻击时禁止移动和攻击移动补偿敌人击退和播放受击动画受击特效攻击停顿和屏幕震动局部顿帧(补充)参考源码完结 前言 注意本文为自己的学习记录笔记&#…...

ELK 企业实战7

ELKkafkafilebeat企业内部日志分析系统 1、组件介绍 1、Elasticsearch: 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的&#xff…...

linux 下neo4j的安装

一、neo4j简介 Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。 neo4j与jdk版本对应 neo4j的版本需要与jdk版本相适配,否则容易出现安装失…...

Flink ProcessFunction不同流异同及应用场景

ProcessFunction系列对比概览 函数类别关键特性应用场景示例ProcessFunction基础类,处理单个事件,支持事件时间、水位线、状态管理、定时器。单独处理每个事件,执行复杂逻辑,如基于事件内容动态响应。KeyedProcessFunction基于键…...

Matplotlib 文本

可以使用 xlabel、ylabel、text向图中添加文本 mu, sigma 100, 15 x mu sigma * np.random.randn(10000)# the histogram of the data n, bins, patches plt.hist(x, 50, densityTrue, facecolorg, alpha0.75)plt.xlabel(Smarts) plt.ylabel(Probability) plt.title(Histo…...

信创产业政策,信创测试方面

信创产业的政策支持主要体现在多个方面,这些政策旨在推动产业的快速发展,加强自主创新能力,保障国家信息安全,以及促进产业结构的优化升级。 首先,政府通过财政支持、税收优惠等方式,加大对信创产业的资金…...

微信云数据库迁移到unicloud云数据库

背景 早期只有一个微信小程序,后来了解到uniapp的跨端解决方案,开始从小程序代码迁移到uniapp。对于后端采用的微信云开发方案,迁移的时候主要要解决从openid的用户体系转移到unicloud提供的uni-id体系(使用uid)。 方案 利用微信云数据库的…...

快速上手文心一言指令

“文心一言”指的是百度公司开发的自然语言处理与生成技术,它类似于ChatGPT,是一种基于大规模语言模型的AI对话系统,能够理解和生成自然语言文本,进行问答、创作等多种任务。由于“文心一言”是一个复杂的系统,其内部指…...

零基础STM32单片机编程入门(五)FreeRTOS实时操作系统详解及实战含源码视频

文章目录 一.概要二.什么是实时操作系统三.FreeRTOS的特性四.FreeRTOS的任务详解1.任务函数定义2.任务的创建3.任务的调度原理 五.CubeMX配置一个FreeRTOS例程1.硬件准备2.创建工程3.调试FreeRTOS任务调度 六.CubeMX工程源代码下载七.讲解视频链接地址八.小结 一.概要 FreeRTO…...

leetCode.96. 不同的二叉搜索树

leetCode.96. 不同的二叉搜索树 题目思路 代码 // 方法一:直接用卡特兰数就行 // 方法二:递归方法 class Solution { public:int numTrees(int n) {// 这里把 i当成整个结点,j当成左子树最左侧结点,并一次当根节点尝试// f[ i ] f[ j - 1…...

PyAutoGUI 使用详解

文章目录 简介PyAutoGUI 的原理安装 PyAutoGUI基本使用示例鼠标控制键盘控制截屏图像识别消息框 高级功能防止误操作多屏幕支持鼠标平滑移动 结论 简介 PyAutoGUI 是一个用于自动化控制鼠标和键盘的 Python 库。它可以帮助开发者编写脚本,以模拟用户在计算机上的操…...

MySQL——备份

为什么要备份? 保证重要的数据不丢失 方便数据转移 MySQL数据库备份方式: 1. 直接拷贝物理文件 2. 在可视化工具中手动导出 —— 在想要导出的表或者库中,右键选择备份或导出 3. 使用命令行导出 mysqldump ——cmd打开命令行 —…...

科东软件精彩亮相华南工博会,展现未来工业前沿技术

近日,华南国际工业博览会在深圳成功举办。科东软件携众多前沿技术、解决方案及最新应用案例精彩亮相,为参展观众带来了一场工业智能的科技盛宴。 鸿道操作系统(Intewell) 科东软件重点展示了鸿道操作系统(Intewell&…...

详解flink sql, calcite logical转flink logical

文章目录 背景示例FlinkLogicalCalcConverterBatchPhysicalCalcRuleStreamPhysicalCalcRule其它算子FlinkLogicalAggregateFlinkLogicalCorrelateFlinkLogicalDataStreamTableScanFlinkLogicalDistributionFlinkLogicalExpandFlinkLogicalIntermediateTableScanFlinkLogicalInt…...

PostgreSQL的系统视图pg_statio_all_indexes

PostgreSQL的系统视图pg_statio_all_indexes 在 PostgreSQL 数据库中,pg_statio_all_indexes 视图提供了有关所有索引的 I/O 活动的统计信息。这些统计信息对于了解索引的使用情况和性能调优非常有帮助。 pg_statio_all_indexes 视图的结构 以下是 pg_statio_all…...

【C++ Primer Plus学习记录】函数和C-风格字符串

将字符串作为参数时意味着传递的是地址,但可以使用const来禁止对字符串参数进行修改。 假设要将字符串作为参数传递给函数,则表示字符串的方式有三种: (1)char数组 (2)用引号括起来的字符串常…...

力扣双指针算法题目:移动零

1.题目 . - 力扣&#xff08;LeetCode&#xff09; 2.思路解析 这个题目的思路和“使用递归排序快速排序解决数组的排序问题”相同 class solution { public:void QuickSort(vector<int>& nums, int left, int right){if (left > right) return;int key left…...

day60---面试专题(微服务面试题-参考回答)

微服务面试题 **面试官&#xff1a;**Spring Cloud 5大组件有哪些&#xff1f; 候选人&#xff1a; 早期我们一般认为的Spring Cloud五大组件是 Eureka : 注册中心Ribbon : 负载均衡Feign : 远程调用Hystrix : 服务熔断Zuul/Gateway : 网关 随着SpringCloudAlibba在国内兴起 , …...

laravel+phpoffice+easyexcel实现导入

资源包下载地址 https://download.csdn.net/download/QiZong__BK/89503486 easy-excel下载&#xff1a; "dcat/easy-excel": "^1.0", 命令行&#xff1a; composer require dcat/easy-excel 前端代码 <!doctype html> <html lang"en&…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...