zabbix整合prometheus的数据

news2024/12/25 9:13:16

1 zabbix安装

官方文档参考

https://www.zabbix.com/download?zabbix=6.0&os_distribution=centos&os_version=7&components=proxy&db=mysql&ws=

https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&components=server_frontend_agent&db=mysql&ws=apache

1.1 zabbix软件安装

[root@zabbix zabbix]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm ## 安装zabbix仓库
[root@zabbix zabbix]# yum clean all
[root@zabbix zabbix]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent ##安装zabbix server、前端、代理

1.2 数据库安装配置

1.2.1 数据库安装

[root@zabbix zabbix]# yum install mariadb-server
[root@zabbix zabbix]# systemctl start mariadb
[root@zabbix zabbix]# systemctl enable mariadb
[root@zabbix zabbix]# mysql_secure_installation ##设置数据库root密码并进行安全配置

1.2.2 创建zabbix用户并授权

[root@zabbix zabbix]# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

1.2.3 导入数据库

[root@zabbix zabbix]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

1.3 配置文件中修改zabbix用户数据库密码

[root@zabbix zabbix]# cat /etc/zabbix/zabbix_server.conf |grep -v "^#"|grep DBPassword

1.4 修改前端显示时区

[root@zabbix zabbix]# grep timezone /etc/httpd/conf.d/zabbix.conf
      php_value date.timezone Asia/Shanghai

1.5 启动zabbix相关服务

[root@zabbix zabbix]# systemctl restart zabbix-server zabbix-agent httpd
[root@zabbix zabbix]# systemctl enable zabbix-server zabbix-agent httpd

1.6 访问zabbix

ui上输出zabbix服务器地址加/zabbix即可访问到zabbix初始化页面

http://172.18.100.137/zabbix

图片

2 zabbix初始化

2.1 环境检查

查看是否有包或插件不满足条件

图片

2.2 数据库配置

根据实际情况配置zabbix使用的数据库及用户名密码等信息

图片

2.3 zabbix服务配置

图片

2.4 信息确认

图片

2.5 配置完成

图片

2.6 登录zabbix

配置完成以后即可登录zabbix,默认zabbix的用户名为Admin,密码为zabbix

图片

2.7 修改页面为中文显示

图片

3 zabbix对接prometheus

3.1 前提条件

  • zabbix版本要大于4.2版本

  • zabbix服务器需要能访问被管控节点的9100端口

在4.2及以上版本的zabbix中,提供了prometheus pattern和prometheus to json两种监控项预处理方式来处理prometheus的监控数据,我们可以通过http代理的方式无需安装agent来管理prometheus中的主机。

3.2 zstack中主机监控介绍

ZStack云平台集成了promehtus来获取物理机及云主机的监控数据。其中cpu、内存、磁盘、网络等监控数据来源由安装在物理机上的Prometheus客户端node_exporter提供。node_exporter相关信息可参考

https://github.com/prometheus/node_exporter

可以通过http://{物理机ip}:9100/metrics来查看node_exporter获取到的监控数据

图片

上述输出中高亮部分,node_cpu_guest_seconds_total为metric名,cpu、mode为label名,26和user为两个lable的值。55184.82为metric的实际值。

3.3 创建一个主机群组

创建一个名为prometheus_node的主机群组

图片

3.4 创建一个主机

创建一个主机,填写好以下信息,主机无需安装任何zabbix代理

  • 主机名称:填写好主机名称

  • 群组:选择我们刚创建好的群组

  • 接口:填写要添加的主机的ip地址,后面的端口无需配置保持默认即可

  • 代理程序检测:选择无agent代理程序

图片

3.5 创建一个http代理类型的监控项

该代理的作用为为后续的监控项提供数据来源,进入刚创建的主机页面,点击监控项,填写以下信息,创建一个http代理类型的监控项。

  • 名称:填写监控项的名称

  • 类型:http代理

  • 键值:master

  • URL:填写物理机的监控数据地址

  • 主机接口:选择我们刚刚创建的主机

  • 信息类型:文本

  • 更新间隔:5s

  • 历史数据保留时长:do not keep history

其余项保持默认即可,设置完成后点击添加。

图片

图片

3.6 监控单项指标

下面通过创建一个指标来获取网卡br_bond1的传输包总量

3.6.1 创建一个Dependent item

首先查看相关的指标信息。监控项相关信息参考

https://lnsyyj.github.io/2019/05/27/prometheus-node-exporter-%E7%9B%91%E6%8E%A7%E9%A1%B9/

图片

主机下新建一个监控项

  • 名称:填写监控项的名称,可以以metric name和label name命名

  • 类型:相关项目(Dependent item)

  • 键值:transmit_br_bond1

  • 主要项:选择前面创建好的主要项(prometheus node exporter)

  • 信息类型:根据监控项的情况进行选择。数据包总量是一个非负整数,所以信息类型选择数字(无正负)

其它值保持默认

图片

给监控项配置一个进程

  • 名称:prometheus pattern

  • 参数:node_network_transmit_packets_total{device="br_bond1"}。参数的形式为"metric name{label name = label value}",根据具体的监控项而定。

图片

3.6.2 查看创建好的监控项的数据

在监测-->最新数据一栏可以看到监控项已经获取到了数据

图片

点击图形可以查看该监控项的相关监控图形信息

图片

3.7 同时监控多项相同的指标

单个监控项的配置相对简单,但当服务器上存在多个网卡需要监控时,一个个去配置监控项显然是非常麻烦的,而且当服务器上的网卡有增加或删除时,我们需要手动的去增加和删除监控项,非常的麻烦。这个时候就可以使用zabbix的低级自动发现(LLD)来自动发现相关的监控项。

3.7.1 prometheus to json介绍

https://www.zabbix.com/documentation/current/en/manual/discovery/low_level_discovery/examples/prometheus

zabbix的Prometheus to json预定步骤会将获取到的metrics数据转换为json格式。例如有以下metrics数据。

# HELP wmi_logical_disk_free_bytes Free space in bytes (LogicalDisk.PercentFreeSpace)
# TYPE wmi_logical_disk_free_bytes gauge
wmi_logical_disk_free_bytes{volume="C:"} 3.5180249088e+11
wmi_logical_disk_free_bytes{volume="D:"} 2.627731456e+09
wmi_logical_disk_free_bytes{volume="HarddiskVolume4"} 4.59276288e+08

获取到的json格式类似于下

[
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "C:"
                },
               "value": "3.5180249088e+11",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"C:\"} 3.5180249088e+11"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "D:"
                },
               "value": "2.627731456e+09",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"D:\"} 2.627731456e+09"
           },
           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "HarddiskVolume4"
                },
               "value": "4.59276288e+08",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
           }
       ]

3.7.2 LLD macro和JSONPath

https://www.zabbix.com/documentation/4.4/zh/manual/config/macros

https://www.zabbix.com/documentation/3.4/zh/manual/config/macros/usermacros

宏的格式为{#var_name}

jsonPath

https://www.zabbix.com/documentation/4.0/zh/manual/appendix/items/jsonpath?hl=JSONPath

macro是定义的一个变量。jsonPath指定变量的值从哪里获取

例如有下面这段数据

           {
               "name": "wmi_logical_disk_free_bytes",
               "help": "Free space in bytes (LogicalDisk.PercentFreeSpace)",
               "type": "gauge",
               "labels": {
                   "volume": "HarddiskVolume4",
                   "disk": "C"
                },
               "value": "4.59276288e+08",
               "line_raw": "wmi_logical_disk_free_bytes{volume=\"HarddiskVolume4\"} 4.59276288e+08"
           }

通过以下定义就能获取到name、help、lables等值

图片

3.7.3 创建LLD

在配置-->主机中选择我们之前创建好的主机,点击自动发现,创建自动发现规则

  • 名称:输入LLD的名称

  • 类型:相关项目

  • 键值:net_transmit_pack_total

  • 主要项:选择前面创建的prometheus node exporter

  • 资源周期不足:0

图片

添加进程预处理步骤

  • 名称:prometheus to json

  • 参数:node_network_transmit_packets_total{device=~".*"}  , 其中~". *"表示label value可以是任意值。

图片

添加LLD宏

我们添加三个宏,LLD宏分别为

  • {#DEVICE}

  • {#HELP}

  • {#METRIC}

json路径分别为

  • $.labels['device']

  • $['help']

  • $['name']

图片

设置完成后点击添加

3.7.4 设置自动发现规则的监控项原型

选择刚创建好的LLD自动发现规则,点击监控项原型,创建监控项原型。

  • 名称:

  • 类型:相关项目

  • 键值:Total_transmit_packets[{#DEVICE}],如果有多个宏需要将宏都写在[]中,如[{#DEVICE},{#MODE}]

  • 主要项:此前创建的prometheus node exporter

  • 信息类型:数字(无正负)

其余信息保持不变

图片

为监控项原型添加预处理步骤

一共需要添加两个预定步骤:

第一个:

  • 名称:prometheus pattern

  • 参数:{#METRIC}{device="{#DEVICE}"}

第二个:

  • 名称:每秒更改

图片

配置完成后点击添加

3.7.5 查看通过自动发现规则创建的监控项

点击配置-->主机-->监控项可以发现通过我们刚刚配置的自动发现规则已经自动创建了多个网卡相关的监控项

图片

3.7.6 查看监控数据

点击监测-->最新数据,可以看到各项监控项的监控数据

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/892107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【抖音直播小玩法】介绍

一、是什么 直播小玩法是基于抖音直播场景的新型实时互动内容。直播小玩法由开发者自主开发,接入平台并开放给抖音主播挂载使用。开发者提供创意,依托平台生态,获取收益。 介入标准: 企业开发者,暂不支持个人开发者…

8.文件存储空间管理

第四章 文件管理 8.文件存储空间管理 空闲表法:   空闲盘块表和在内存管理的动态分区分配中学习过的空闲分区表是类似的,空闲盘块表记录了每一个空闲区间的起始位置和这个空闲区间的长度这两个信息。像第一个空闲区间是0,1这两个空闲块&am…

【克罗恩病是银屑病及银屑病关节炎的因果风险因素】

克罗恩病是银屑病及银屑病关节炎的因果风险因素 ①纳入463372名欧洲人,包括12882例IBD患者、5621例银屑病患者、2063例银屑病关节炎患者;②单变量孟德尔随机化(MR)分析表明,基于遗传因素预测的IBD与较高的银屑病和银屑…

复数混频器、零中频架构和高级算法开发

文章里讲解了关于射频IQ调制器、零中频架构相关的原理及技术,全都是干货!其实好多同行对软件无线电的原理、IQ调制、镜像抑制都是一知半解,知其然不知其所以然。好好研读这篇文章,相信会让你有种恍然大悟的感觉。 RF工程常被视为…

【Selenium学习】环境搭建 API学习

目录 一、javaSelenium的环境搭建? 二、认识Selenium 1、什么是自动化? 2、什么是Selenium? (重点) 3、selenium的工作原理?(重点) 三、Selenium操作元素API(重点) 第一部分&#…

【数据结构OJ题】合并两个有序链表

原题链接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 可以先创建一个空链表,然后依次从两个有序链表中选取最小的进行尾插操作。(有点类似双…

【数据结构OJ题】环形链表

原题链接:https://leetcode.cn/problems/linked-list-cycle/description/ 1. 题目描述 2. 思路分析 整体思路:定义快慢指针fast,slow,如果链表确实有环,fast指针一定会在环内追上slow指针。 即慢指针一次走一步&…

分布式 | 如何搭建 DBLE 的 JVM 指标监控系统

本篇文章采用 Docker 方式搭建 Grafana Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者:文韵涵 爱可生 DBLE 团队开发成员,主要负责 DBLE 需求开发,故障排查和社区问题解答。 本文来源:原创投稿 爱可生开源社区出品&a…

“开发和运维”只是一个开始,最终目标是构建高质量的软件工程

随着技术的飞速发展,软件行业不断寻求改进和创新的方法来提供更高质量的产品。在这方面,DevOps已经展现出了巨大的潜力。通过打破开发和运维之间的壁垒,DevOps将持续集成、持续交付和自动化流程引入到软件开发中,使团队能够更快地…

PSP - 开源可训练的蛋白质结构预测框架 OpenFold 的环境配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132334671 Paper: OpenFold: Retraining AlphaFold2 yields new insights into its learning mechanisms and capacity for generalization Open…

循环队列的实现(c语言)

前言 循环队列是队列的一种特殊的结构,在生产者——消费者模型中常常使用它, 它在逻辑上是一个环形的连续的结构。在物理可以使用数组来实现。 目录 1.循环队列的逻辑结构 2.空的循环队列和满的循环队列 3.循环队列插入和删除 4.代码实现 …

关于小程序收集用户手机号行为的规范

手机号在日常生活中被广泛使用,是重要的用户个人信息,小程序开发者应在用户明确同意的前提下,依法合规地处理用户的手机号信息。 而部分开发者在处理用户手机号过程中,存在不规范收集行为,影响了用户的正常使用体验&a…

如何使用ChatGPT创建个性化的健身锻炼计划

ChatGPT广泛应用于各个行业,健身也不例外。 ChatGPT 在健身领域的一个常用案例是创建个性化的锻炼计划。 在要求 ChatGPT 创建锻炼计划时,简单地输入自己的目标和当前的健身水平是一个很好的开始。完成此操作后,你还可以使用其他提示和措施来…

视频汇聚集中存储EasyCVR平台调用iframe地址视频无法播放,该如何解决?

安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝…

Git 删除 GitHub仓库的文件

新建文件夹 git bash here 在新建的文件夹里右键git bash here打开终端&#xff0c;并执行git init初始化仓库 git clone <你的地址> 找到github上要删除的仓库地址&#xff0c;并复制&#xff0c;在终端里输入git clone <你的地址> 要删除文件的库里右键git b…

使用 Apache Kafka 和 Go 将数据引入 OpenSearch

需要编写自定义集成层来满足数据管道中的特定要求&#xff1f;了解如何使用 Go 通过 Kafka 和 OpenSearch 实现此目的。 可扩展的数据摄取是OpenSearch等大规模分布式搜索和分析引擎的一个关键方面。构建实时数据摄取管道的方法之一是使用Apache Kafka。它是一个开源事件流平台…

Ceph如何操作底层对象数据

1.基本原理介绍 1.1 ceph中的对象(object) 在Ceph存储中&#xff0c;一切数据最终都会以对象(Object)的形式存储在硬盘&#xff08;OSD&#xff09;上&#xff0c;每个的Object默认大小为4M。 通过rados命令&#xff0c;可以查看一个存储池中的所有object信息&#xff0c;例如…

配资平台app(正规股票配资软件)架构是怎么搭建的?

随着股票市场的发展&#xff0c;越来越多的投资者开始尝试使用股票配资平台进行杠杆炒股&#xff0c;因此&#xff0c;搭建一套稳定、可靠的配资平台app架构显得尤为重要。本文将介绍配资平台app架构设计的关键要素&#xff0c;以及建立一个正规的配资平台app所需考虑的问题。 …

独立站站群模式是什么意思?站群模式的定义?自建站站群策略含义是什么?

什么是独立站站群模式&#xff1f; 在当今数字化时代&#xff0c;互联网已经成为了人们生活中不可或缺的一部分。随着互联网的发展&#xff0c;独立站站群模式逐渐引起了人们的关注。那么&#xff0c;究竟什么是独立站站群模式呢&#xff1f;让我们一起深入了解一下。 独立站…

85-基于stm32单片机厨房MQ4天然气泄露浓度DHT11温湿度监测报警系统Proteus仿真+源码...

资料编号&#xff1a;085 一&#xff1a;功能介绍&#xff1a; 1、采用stm32单片机OLED显示屏MQ4可燃气体浓度检测DHT11温湿度电机按键蜂鸣器&#xff0c;制作一个温湿度采集、MQ4可燃气体浓度采集&#xff0c;OLED显示相关数据&#xff0c; 2、通过按键设置温度上限、可燃气体…