驻马店市网站建设_网站建设公司_代码压缩_seo优化
2025/12/26 16:46:13 网站建设 项目流程

准备工作:(本文章中Zabbix使用的是MySQL)

  1. 自己部署数据库环境可选择MySQL、SQL、PostgreSQL任意一个     此数据库将与Grafana一起使用,作为Grafana的数据源
  2. Grafana 环境(网上自行搜索安装文章)
  3. Navicat 软件
  4. PyCharm 软件

一、导出Zabbix上原始数据

  1、打开Navicat 软件,点击左上角连接,选择自己Zabbix的数据库。这里我的数据库是MySQL

    图片

   2、连接完成后,我们点击数据库,开始Zabbix原始数据查询:
  我们点击数据库下的查询,依次输入一下SQL语句进行查询。

select host,hostid from hosts where host="";     #填写host名称,查询主机对应的主机 hostid(主机ID)
select itemid,name,key_ from items where hostid= and key_="net.if.out[ifHCOutOctets.20]";     #填写hostid,监控项键值,查询主机监控项目 所对应的itemid(项目ID)
select * from trends_uint where itemid="" and from_unixtime(clock)>='2024-05-01' and from_unixtime(clock)<'2024-06-01';     #填写项目ID,以及查询起止时间,进行时间段内数据查询

  此时查询结果显示后,可以点击导出结果,导出文件格式建议选择.csv格式(csv默认保留UTF-8格式)

    图片

二、针对原始数据进行格式转换。

  进行时间格式转换,原始数据内的record_time值为实际戳,我们需要更改为年/月/日格式,便于Grafana上的时间线查询

  1、打开PyCharm 软件,添加.py文件,输入一下代码(代码内的文件存放目录,以自己导出数据存放目录为准),执行完成后,会把所有.csv文件内的时间戳更改为日期格式

import os
import pandas as pd# 设置你的原始数据目录(使用原始路径中的双反斜杠或 r"路径" 防止转义)
folder_path = r"D:\idc\BGP"# 遍历所有 .csv 文件
for filename in os.listdir(folder_path):if filename.endswith('.csv'):file_path = os.path.join(folder_path, filename)print(f"处理文件: {file_path}")try:# 读取 CSVdf = pd.read_csv(file_path)# 检查是否存在 clock 列if 'clock' in df.columns:# 转换 clock 时间戳为 datetime 格式df['datetime'] = pd.to_datetime(df['clock'], unit='s')# 保存覆盖原文件(或改成输出到新目录)df.to_csv(file_path, index=False)print(f"✅ 成功转换并保存: {filename}")else:print(f"⚠️ 跳过文件(无 'clock' 列): {filename}")except Exception as e:print(f"❌ 处理文件失败 {filename}: {e}")

 

三、自建数据库初始化配置,并导入数据
  数据库部署完成后,使用Navicat 软件进行数据库的连接,并创建数据库以及数据库表

  1、数据库表格式初始化(这里我是创建了一个库名为95,表明为Bridge_Aggregation2)。

  2、右键新建的表,点击设计表

        图片

  3、表格字段信息如下:(这里需要主要几个参数,record_time、incoming_flow、outgoing_flow,为了方便数据展示,我这边添加了incoming_bandWidth、outgoing_bandwidth)

   注释:原始数据incoming_flow和outgoing_flow内的数值都是bps,为了显示以Mbps为单位,所以创建了incoming_bandWidth、outgoing_bandwidth字段

        图片

   4、表格内数据导入,可以直接简单粗暴导入。
  将本地csv文件内的数据,按照表格式进行排版,全选复制。csv内数据治理后的样式:(如果想要直接复制,在数据库备创建表格的时候,按照原始数据内的字段进行创建即可)

    图片

   5、双机自己创建的数据库表,右键粘贴或Ctrl+V,然后点击左下角的 √  进行数据导入操作,然后等待数据导入完成。

     图片

   6、针对流量数据进行单位转换,将bps转换为mbps并将数值自动填入到incoming_bandWidth和outgoing_bandwidth

    点击数据库下的查询,进行单位转换。

UPDATE 95.Bridge_Aggregation2     #输入表的目录  格式为数据库名.表名
SET incoming_bandWidth = incoming_flow / 1000000,outgoing_bandwidth = outgoing_flow / 1000000;

    样式如下,然后点击运行等待运行结束后,刷新表格。

     图片

   到此数据处理已经全部完成。接下来将进行Grafana上的图形数据展示。

四、Grafana数据展示

  1、Grafana 初始化

  更改初始密码、以及时间,时间以自己监控设备的时间为主,防止展示时出现市区错误。(这里我是中国大陆的时间,所以使用默认即可)

    图片

   2、添加数据源,这里添加时,按照自己新搭建的数据库类型进行添加(本文章使用的MySQL,所以这里添加的MySQL),建议添加时,下放有测试

    图片

   3、仪表盘创建

  英文:点击左侧Dashboard➜ ➕(右上角) Create➜Dashboard➜➕Add new panel

  中文:左侧仪表板➜ ➕新建(右上角)新建仪表盘➜➕添加可视化

创建时会让选择数据源,这里选择自己刚添加的数据源,
  4、
  为了快速进行数展示,这里我使用了Code模式

    图片

 


数据导入:
本地表格可以执行python,将多个csv文件内的时间戳更改为年/月/日格式

导入后的数据,进行单位换算,将incoming_flow和outgoing_flow内的bps转换为mbps

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询