Zabbix企业级应用案列

news2024/12/21 22:32:01

        随着业务的越发复杂,对软件系统的要求越来越高,这意味着我们需要随时掌控系统的运行情况。因此,对系统的实时监控以及可视化展示,就成了基础架构的必须能力。

一、zabbix可视化

1.Grafana 简介

        Grafana 是一个开源的指标量监测和可视化工具,官方网站为:https://grafana.com/。Grafana的安装非常简单,官方就有软件仓库可以直接使用,也可以通过 docker 镜像等方式直接本地启动。还可以直接下载 rpm 包、二进制包进行安装。
        大家可以从 https://grafana.com/grafana/download 下载 rpm 安装包。
        Grafana,是一个开源的数据可视化工具,它可以帮助用户将数据源中的数据进行图形化展示和实时监控,以便于用户能够更加直观地理解数据。Grafana 支持多种数据源,包括 Graphite、Elasticsearch、InfluxDB、Prometheus 等,也支持多种展示方式,如图表、仪表盘、地图、日历等。

Grafana 的主要作用包括:

  • 数据可视化:通过 Grafana,用户可以将复杂的数据转化成易于理解的图表和仪表盘,并在一个界面中集中展示多个数据源的数据。
  • 实时监控:Grafana 支持实时监控,可以帮助用户实时了解系统状态、性能等指标的变化情况。
  • 告警与通知:Grafana 可以设置告警规则,当某些指标达到预设的值时,会自动发送通知,提醒用户关注和处理。
  • 可扩展性: Grafana 文持插件式的开发模式,用户可以通过插件扩展功能,满足自己的特定需求。

        总之,Grafana 是一款功能强大的数据可视化工具,可以帮助用户更好地理解数据,提高数据分析效率,提升工作效率。

2.Grafana 的特点

(1)展示方式

        grafana 拥有快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式,让我们复杂的数据展示的美观而优雅。

(2)数据源

        Grafana 支持许多不同的时间序列数据(数据源)存储后端。每个数据源都有一个特定査询编辑器。官方支持以下数据源:Graphite、infloxdb、opensdb、prometheus、elasticsearch、cloudwatch.每个数据源的查询语言和功能明显不同。你可以将来自多个数据源的数据组合到一个仪表板上,但每个面板都要绑定到属于特定组织的特定数据源。

(3)通知提醒

        Grafana 中的警报允许您将规则附加到仪表板面板上。保存仪表板时,Gravana 会将警报规则提取到单独的警报规则存储中,并安排它们进行评估。报警消息还能通过钉钉、邮箱等推送至移动端。但目前grafana 只支持 graph 面板的报警。

(4)混合展示

        Grafana 使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记。

(5)注释

        Grafana 使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

(6)过滤器

        Grafana 使用 Ad-hoc 过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

二、Grafana 实现 Zabbix 可视化

1.安装 Grafana

(1)下载并安装

        本案例使用的 grafana-enterprise-10.2.2 的版本,可以使用下面连接进行下载,如果需要其它版本,课登录 Grafana 官方网站,下载其它版本。https://dl.grafana.com/oss/release/grafana-enterprise-10.2.2-1.x86 64.rpm

[root@localhost ~l# hostnamectl set-hostname ZBX
[root@ZBX ~]# bash
[root@ZBX ~]# yum -y install grafana-enterprise-10.2.2-1.x86 64.rpm
 (2)启动服务
[root@ZBX ~]# systemctl start grafana-server
[root@ZBX ~]# systemctl status grafana-server
[root@ZBX ~]# systemctl enable grafana-server
(3)关闭防火墙 
[root@ZBX ~]# systemctl stop firewalld.service
[root@ZBX ~]# systemctl disable firewalld.service

 备注:
Grafana 的配置文件位于/etc/grafana/grafana.ini,一般情况下无需修改配置文件。

2.插件安装

(1)Grafana 插件简介

Grafana 是实现 Grafana 各项功能的重要组成部分,其插件类型有如下三种:

  • Panel Plugin:支持添加可视化图表、支持图表参数的配置
  • Data source Plugin:支持配置数据源,支持添加数据源配置,支持使用数据源配置,支持后台数据源,分为前台(frontend)数据源插件和后台(backend)数据源插件。
    • frontend source Plugin
    • backend source Plugin
  • App Plugin,支持创建应用,创建自定义页面
(1)安装grafana-zabbix 插件

        grafana和zabbix的集成是通过插件方式实现的,因此,需要先安装grafana-zabbix插件,grafana官方已经包含了这个插件,直接使用即可。

(2)在 grafana 上查询插件
[root@ZBX ~]# grafana-cli plugins list-remote grep zabbix
id:alexanderzobnin-zabbix-app version:4.1.5
(3)安装插件

方法一:在线安装

[root@ZBX ~]# grafana-cli plugins install alexanderzobnin-zabbix-app

安装成功之后会提示我们需要重启 grafana 服务,以使插件生效。

方法二:离线安装
如果无法在线下载,可以使用离线安装包。本案例使用此方法。

[root@ZBX ~]# unzip alexanderzobnin-zabbix-app-4.4.3.linux amd64.zip
[root@ZBX ~]# mkdir -p /var/lib/grafana/plugins/
[root@ZBX ~]# mv alexanderzobnin-zabbix-app /var/lib/grafana/plugins/
[root@ZBX ~]# systemctl restart grafana-server

注意:
以上两种方法选择其中一种即可。

注意:
可以将插件先下载下来,解压后将插件文件夹拷贝到/var/lib/grafana/plugins/下插件文件夹的名字用插件的名字命名,
例如:/var/lib/grafana/plugins/grafana-clock-panel

(4)重启grafana

所有需要的插件安装完成后,执行如下命令重启grafana 服务:

[root@ZBX ~]# systemctl restart grafana-server
(5)登录grafana

http://192.168.10.108:3000
默认账号:admin
默认密码:admin

3.配置 zabbix 数据源

要使得 Grafana 能够展示数据,必须有一个数据来源,比如 zabbix,ELK 等都可以为 Grafana 提供数据。
添加数据源的步骤如下。

(1)打开Administration 顶

(2)点击Plugins

 进入如下界面,显示的是默认 Grafana 自带的数据源:

(3)搜索 zabbix插件,并 signed(签署)插件

我们要添加 zabbix,那么 zabbix 是以插件形式存在的,搜索 zabbix,如下图所示:

 

 (4)启用 zabbix插件

这里点击“Enable”,启用这个插件。

(5)再次查看并添加数据源

启用zabbix插件之后,选择“Add your first data source"标签,如下图所示.

(6)点击zabbix,进入参数配置界面 

(7)设置 zabbix 数据源参数

点击 Select 按钮之后,会进入到参数设置页面,如下图所示。

填写 zabbix 链接和 zabbix 账号密码,

 http://192.168.10.108/api_jsonrpc.php
配置完成之后,点击最下面的“save &Test”,i如果配置有问题会报错提示,如果没有问题会提示成功。

 4.通过添加 Grafana 图像创建 Dashboard

(1)新建 Dashboard,添加图形

(2)添加visualization(可视化)界面

 出现如下所示界面后点击 Add visualization,并选择前面添加的 zabbix 数据源。

 

(3)添加要监控的数据

(4)保存

填写标题并保存

(5)回到home界面查看结果

(6)添加监控对象图形

点击上图中的“我的监控”,进入监控图形界面。点 Add,再添加一个 visualization.

其他监控项都是这个方法。

5.通过导入模板创建 Dashboard

想要获取更多模板,可以前往官方获取。

https://grafana.com/grafana/dashboards/

(1)在 home 界面点击“create your first dashboard’

(2)在如下界面点击导入按钮

(3)输入面板ID,并点Load按钮

备注:

5363

(4)选择zabbix数据源,并点击import按钮进行导入

 (5)修改模板

导入后的面板可能没有数据显示,只有一个框架,可以具体调整每一个图形。

点击对应的图形右上角的三个点

如果看不见这三个点,可以将鼠标移动到此图形中,就可以看见了。

(6)点 edit 进入编辑界面

(7)修改参数并保存

(8)查看修改结构

三、钉钉告警设置

        在 Zabbix 的告警机制中,除了前面讲过的邮箱告警之外,另一个常用的告警方式是钉钉告警,我们可以将同一个运维组的人员加入到同一个钉钉工作群中,当有异常出现后,zabbix 将告警信息发送到钉钉的群里面,此时,群众所有的运维人员都能在第一时间看到这则告警详细。
        Zabbix 监控系统默认没有开箱即用的对接钉钉的结构,需要利用 Zabbix 监控系统的脚本定制化的方式扩展钉钉告警的实现。

1.webhook的定义

        Webhook 是一个 API 概念,是微服务 API 的使用范式之一,也被称为反向 API,即前端不主动发送请求,完全由后端推送;举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhook 的典型场景。
        简单来说,Webhook 就是一个接收 HTTP POST(或 GET,PUT,DELETE)的 URL,一个实现了 Webhook的 API 提供商就是在当事件发生的时候会向这个配置好的 URL 发送一条信息,与请求-响应式不同,使用 webhook 你可以实时接受到变化。
        在钉钉中,我们可以为群创建一个 webhook,Zabbix 就是通过 webhook 向这个钉钉群发送信息的。

2.为钉钉群创建 webhook

        钉钉机器人是全局唯一的应用,即无论是在单聊场景中还是群聊场景中,都可以用来推送应用的通知和用来对用户进行对话式服务,机器人ID 都可以是唯一的。这意味着开发者既可以选择仅创建一个机器人,而后将其放在各个应用场景下使用,也可以创建多个机器人,然后分别部署在不同场景下。

(1)设置钉钉机器人

群设置--》智能群助手
添加自定义群机器人
注意:多添加一些关键字:报警、告警、问题、故障、恢复

(2)生成webhook

        记下这个 webhook,只要这个钉钉机器人不删除,这个 webhook 就一直可以使用。

(3)测试

使用如下命令在 Linux 系统中发送测试信息。

2.设置 zabbix 告警方式

(1)创建报警媒介

“告警”-->“媒介”,创建媒介类型

参数部分设置:

        Message:{ALERT.MESSAGE}
        TO: {ALERT.SENDTO}
        URL:https://oapi.dingtalk.com/robot/send?access token=<你的 token 值>

删掉其他参数
将本案例提供的脚本粘贴进去

(2)消息模板设置

        在消息模板页面,消息的类型主要设置两个:问题和问题恢复,如下图所示。

消息类型问题的消息模块填写如下:

主题:
【告警】<font color="comment">{TRIGGER.STATUS}</font>,
服务器: <font color="comment">{HOSTNAME1}</font>故障!

消息:

>告警主机:<font color="comment">{HOSTNAME1}</font>

>告警地址:<font color="comment">{HOST.IP}</font>

>告警时间:<font color="comment">{EVENT.DATE} {EVENT.TIME}</font>

>告警等级:<font color="comment">{TRIGGER.SEVERITY}</font>

>告警信息:<font color="comment">{TRIGGER.NAME}</font>

>告警项目:<font color="comment">{TRIGGER.KEY1}</font>

>问题详情:<font color="comment">{ITEM.NAME}:{ITEM.VALUE}</font>

>当前状态:<font color="comment">{TRIGGER.STATUS}: {ITEM.VALUE1}</font>

>事 件 ID:<font color="comment">{EVENT.ID}</font>

消息类型:问题恢复的消息模版填写如下:

恢复主题:
【恢复】<font color="comment">{TRIGGER.STATUS}</font>,
服务器: <font color="comment">{HOSTNAME1}</font>已恢复!

恢复消息:
>恢复主机:<font color="comment">{HOSTNAME1}</font>

>恢复地址:<font color="comment">{HOST.IP}</font>

>恢复时间:<font color="comment">{EVENT.DATE} {EVENT.TIME}</font>

>告警等级:<font color="comment">{TRIGGER.SEVERITY}</font>

>恢复信息:<font color="comment">{TRIGGER.NAME}</font>

>恢复项目:<font color="comment">{TRIGGER.KEY1}</font>

>问题详情:<font color="comment">{ITEM.NAME}:{ITEM.VALUE} </font>

>当前状态:<font color="comment">{TRIGGER.STATUS}: {ITEM.VALUE1}</font>

>事 件 ID:<font color="comment">{EVENT.ID}</font>

(3)选项部分的设置

(4)为用户添加报警媒介

(5)创建触发器动作

在被监控主机上安装一个 httpd。
为该主机添加一个Apache by Zabbix agent 的模板

在“告警”-->“动作”中创建一个“触发器动作”,并设置操作和恢复操作。

(6)验证

停止掉httpd服务,观察钉钉消息

四、利用 SNMP 协议监控网络设备

1.SNMP 协议

        简单网络管理协议(SNMP)是一种网络协议,用于管理和监视Internet 协议网络中的网络连接设备。SNMP 协议嵌入在多个本地设备中,例如路由器、交换机、服务器、防火墙和可使用其 IP 地址访问的无线接入点。SNMP 为网络设备在单一和多供应商 LAN 或 WAN 环境中中继管理信息提供了一种通用机制。它是 OSI 模型框架中的一个应用层协议。
        SNMP 管理信息库(简称 MIB)是定义可以从本地设备收集什么以及可以更改和配置什么的数据结构。有许多由 IETF 和 IS0 等标准机构定义的 MIB,以及由 cisco 等特定 IT 设备供应商和 Microsoft和 oracle 等软件供应商定义的专有 MIB。
        SNMP 端口通过 UDP 161 用于 SNMP 管理器与 SNMP 代理(即轮询)通信,当代理向 SNMP 管理器发送未经请求的陷阱时使用 UDP 162。

        SNMP 有三种不同的版本:

  • SNMP 版本 1(SNMPv1)- 这是第一个实现,在结构管理信息规范内运行,并在 RFC 1157 中进行了描述。
  • SNMP 版本 2(SNMPv2)-此版本经过改进以支持更有效的错误处理,并在 RFC 1901 中进行了描述。它最初是作为 RFC 1441 引入的。它通常被称为 SNMPv2c。
  • SNMP 版本 3(SNMPV3)-此版本提高了安全性和隐私性。它是在 RFC 3410 中引入的。

2.案例环境设置

        使用 GNS3 搭建此实验环境,将路由器的接口连接到 Host 主机的 Vnet8 的接口。因为实验环境使用的 Vware,用的是默认的网络连接方式--NAT模式,在此模式中,虚拟机实际连接的就是 vnet8。因此在 GNS3 中只要将设备的接口连接到 VMnet8,此设备就可以和虚拟机通信了。

3.配置路由器开启 SNMP 协议

R1#conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.10.110 255.255.255.0

R1(config-if)#no shutdown
R1(config)#snmp-server community public ro
R1(config)#snmp-server enable traps
R1(config)#snmp-server host 192.168.10.101 version 2c public

R1(config)#snmp-server trap-source f0/0

4.配置 Zabbix 监控信息

(1)创建主机群组

“数据采集”→“主机群组”→“创建主机群组”,创建群组,本案例设置的群组名为 net device。

(2)创建主机

“数据采集”→“主机”,创建主机。按照下图设置,其他保持默认即可。

本案例中的模板使用 Cisco lOS by SNMP,也可以使用其他模板,只要该设备型号和改模板对应即可,例如下面的模板:

Cisco lOS versions 12.0 3 T-12.2 3.5 by SNMP

(3)添加宏

        宏是一个变量,宏解析为一个特殊的值。有效地使用宏可以节省时间,并使 Zabbix 变地更加高效。
此处在设置时,需要填写路由器中设置的共同体名称,本案例中使用的名称是 public。

(4)在主机列表中查看结果

(5)查看图形信息

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

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

相关文章

汽车保养维修|基于java的汽车保养系统小程序(源码+数据库+文档)

汽车保养系统小程序 目录 基于java的汽车保养系统小程序 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xff0c;阿里云…

简单聊聊bait文件

场景&#xff1a;业务同事发现某云主机部署了企业主机安全&#xff0c;在该主机上发现了一个诱饵文件&#xff0c;显示注意&#xff1a;此文件是诱饵文件&#xff0c;用于防止重要文件被病毒加密。请勿修改或删除此文件。 解决方法&#xff1a;联系企业主机安全运维同事发现&am…

基于SpringBoot+Vue的小区停车场管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

opencv之图像轮廓(三)--凸包

文章目录 前言获取凸包凸缺陷几何学测试测试轮廓是否是凸形的点到轮廓的距离 形状场景算法比较轮廓轮廓的特征值宽高比ExtentSolidity等效直径&#xff08;Equivalent Diameter&#xff09;方向掩模和像素点使用Numpy函数获取轮廓像素点使用OpenCV函数获取轮廓点 最大值和最小值…

太牛了!AI大佬的课程!吴恩达、李飞飞、李宏毅、Hinton、LeCun...

本文精心梳理了AI顶级大佬教授的人工智能课程&#xff0c;涵盖了深度学习、机器学习等多个领域的前沿内容。 这些课程将引领您深入了解决策树、朴素贝叶斯、逻辑回归、神经网络和深度学习等核心知识点&#xff0c;同时还将探索贝叶斯学习、支持向量机和核方法、聚类、无监督学…

2024开学季,这五款学生必备好物请不要错过!

转眼又到了开学季&#xff0c;想必许多踏入大学校园的新同学们已经难掩心中的兴奋与期待&#xff0c;正摩拳擦掌准备拥抱即将到来的大学生活。不过&#xff0c;在你们迫不及待地迎接新阶段之前&#xff0c;何不利用开学季的各种优惠活动&#xff0c;为自己挑选一些实用的必备好…

NX二次开发—柱面中心线工具

设计一个柱面中心线工具,可以实现选择对象,画出圆柱的中心线,可以更改中心的线的颜色、线型、线宽和图层,是否延长,是否关联。 先在NX上进行界面设计 添加选择对象,并设置标题,选择设置为多选 添加组,在组里添加线条颜色/线型/线宽,设置颜色ColorValue和线型Value 这…

OrionX GPU算力池助力AI OCR场景应用

01 AI OCR的历史及概念 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机文…

Java 冒泡排序

1&#xff0e;冒泡排序是最出名的排序算法之一&#xff0c;总共有八大排序&#xff01; 2&#xff0e;冒泡排序的算法相对简单&#xff0c;两层循环&#xff0c;外层冒泡轮数&#xff0c;里层以此比较。 如下&#xff1a; j < array.length - 1-i的作用&#xff1a;下一轮比…

内衣洗衣机哪个牌子好用?汇总五款主流硬核内衣洗衣机

内衣洗衣机是近年来备受关注的小家电产品&#xff0c;虽然市场火爆&#xff0c;但还是存在大部分人对内衣洗衣机的不了解&#xff0c;会购买到质量差、清洗效果不好的内衣洗衣机&#xff0c;面对众多内衣洗衣机品牌&#xff0c;到底内衣迷你洗衣机什么牌子好呢&#xff1f;今天…

多线程篇五——wait和notify

多线程篇五——wait和notify 如笔者理解有误&#xff0c;欢迎交流指正⭐ 线程的执行先后顺序难以预料【抢占式执行】&#xff0c;但是实际开发中我们会需要掌握当下线程的执行顺序. 这就是wait和notify的作用.【都是Object方法即随便定义一个对象豆可以使用wait和notify】 wa…

跟李沐学AI:长短期记忆网络LSTM

输入们、遗忘门和输出门 LSTM引入输入门、忘记门和输出门 输入门计算公式为&#xff1a;。 遗忘门计算公式为&#xff1a;。 输出门计算公式为&#xff1a;。 它们由三个具有sigmoid激活函数的全连接层处理&#xff0c; 以计算输入门、遗忘门和输出门的值。 因此&#xff0c…

为什么不推荐使用Stack

Java已不推荐使用Stack&#xff0c;而是推荐使用更高效的ArrayDeque 为什么不推荐使用 性能低&#xff1a;是因为 Stack 继承自 Vector&#xff0c; 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目&#xff0c;很难在原有的基础上进行优化&#xff0c;因此 Vector 就被…

鸟类目标检测系统源码分享

鸟类目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

亲测好用,ChatGPT 3.5/4.0新手使用手册~

都知道ChatGPT很强大&#xff0c;聊聊天、写论文、搞翻译、写代码、写文案、审合同等等&#xff0c;无所不能~ 那么到底怎么使用呢&#xff1f;其实很简单了&#xff0c;国内AI产品发展也很快&#xff0c;很多都很好用了~ 我一直在用&#xff0c;建议收藏下来~ 有最先进、最…

RocketMQ出现The broker does not support consumer to filter message by SQL92

在使用RocketMQ使用SQL过滤消息的时候&#xff0c;出现下面错误 原因是我们的配置文件没有开启SQL过滤功能&#xff0c;我们需要在每个配置文件中添加下面命令 #开启过滤消息时支持SQL92标准 enablePropertyFiltertrue接着我们重启namesrv与broker服务就解决问题 # 1.进入bi…

Robust Image Denoising through Adversarial Frequency Mixup

基于对抗性混频的鲁棒图像去噪 论文链接&#xff1a;https://openaccess.thecvf.com/CVPR2024/Ryou_Robust_Image_Denoising_through_Adversarial_Frequency_Mixup 项目链接&#xff1a;https://github.com/dhryougit/AFM Abstract 基于深度神经网络的图像去噪方法经常与训练…

哈希表的底层实现(1)---C++版

目录 哈希表的基本原理 哈希表的优点 哈希表的缺点 应用场景 闭散列法 开散列法 开放定值法Open Addressing——线性探测的模拟实现 超大重点部分评析 链地址法Separate Chaining——哈希桶的模拟实现 哈希表&#xff08;Hash Table&#xff09;是一种数据结构&#x…

STM32G070 CubeMX配置多通道/单通道ADC+DMA流程 LL库

基础配置不再赘述&#xff0c;时钟这些根据硬件来配置 多通道ADCDMA配置图&#xff1a; 程序配置&#xff1a; 调试查看内存数据&#xff0c;硬件上将PA1接到GND&#xff0c;PA2接到3V3 采集的数据会循环覆盖内存 问题&#xff1a;代码里先初始化ADC_IN1&#xff0c;再初…

Spring扩展点系列-ApplicationContextAwareProcessor

文章目录 简介源码分析示例代码示例一&#xff1a;扩展点的执行顺序运行示例一 示例二&#xff1a;获取配置文件值配置文件application.properties内容定义工具类ConfigUtilcontroller测试调用运行示例二 示例三&#xff1a;实现ResourceLoaderAware读取文件ExtendResourceLoad…