数据与资源可视化——长安链运维监控实践

2024-01-30 16:36

本文主要是介绍数据与资源可视化——长安链运维监控实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 前言 

 “链上的交易总量是多少”,“我的链上现在有多少区块了”,“节点是否存活无法第一时间感知到”,除sdk查询链上的相关信息外,今天我们介绍一种新的方式实现链上数据与相关资源的可视化的监控。

 简介 

监控链上数据以及链上节点所在的服务器资源时主要需要安装三个部分:Prometheus + node exporter + Grafana(前置条件是要有go环境,这里不赘述)。

搭建环境时需要注意,安装Prometheus+Grafana可以直接在一台机器上,被监控的机器都需要安装node exporter,采用分布式部署的方式最佳。

 长安链监控部署原理 

图片

监控部署原理

长安链监控数据中主要分为两个大类:

链上数据,这里主要指的是监控链上的交易量、总区块数、tps等,这里采集的方式通过设置chainmaker.yml中的monitor值为true即可获取到相关数据,通过端口号去区分不同的节点数据。

链上节点服务器资源,这里则是需要安装node_exporter来监控机器资源信息。

实操步骤 

图片

部署架构设计

了解了上面的原理,我们来看一下整体的一个部署架构方案,这里我们举一个比较典型的例子,监控链上有四个节点的链,不管多链还是单链长安链都可以适配,因此不需要额外的调整配置。在实际生产中通常采用分布式部署结构,链上的四个共识节点分别部署到不同的服务器上(前提是所有的服务器网络都必须互通)。监控安装的服务器最好选择一个磁盘稍大的机器,因为在监控过程中会产生大量的数据,因此磁盘的选择很重要。具体的操作如下:

1.Prometheus 安装:

官网下载对应的版本:https://prometheus.io/download/

根据自己的服务器系统进行选择:比如这里用的Linux系统。

图片

具体操作如下:

 

#下载后上传到指定的目录(上传的目录可以按照自己的习惯,示例:安装包放在package中)
cd /data/package

Prometheus下载成功后,上传到此目录中:

图片

 

# 解压包
tar -vxf prometheus-2.32.1.linux-amd64.tar.gz -C /usr/local
#解压后,软连接到一个目录,方便操作
ln -sv /usr/local/prometheus-2.32.1.linux-amd64/ /usr/local/Prometheus
#软连接以后,进入目录中
cd /usr/local/prometheus-2.32.1.linux-amd64
# 配置prometheus.yml,这一步需要安装node_exporter后配置最佳
vim prometheus.yml
# 配置成功后,直接运行即可
nohup ./prometheus &
#查看Prometheus启动是否成功
ps -ef |grep Prometheus

上述操作就是安装Prometheus的操作,安装成功后需要配置,vim prometheus.yml(修改配置文件这一步可以等node_exporter安装并启动成功后配置),具体配置方法如下图:

图片

这里最关键部分是要映射到对的ip和对的端口号,这里的端口号9100的主要是监控机器资源信息的,而监控链上的资源信息的端口号要看chainmaker.yml中monitor配置下的端口号是多少,比如节点1默认端口号是14321,那么监控链上字段的端口号就要调整为14321,以此类推。

2.node_exporter下载安装

安装node_exporter主要功能是用来采集节点所在的机器资源信息,比如服务器的cpu、内存、磁盘、网络等信息。

下载地址(普罗米修斯的下载地址继续向下翻):https://prometheus.io/download/

图片

下载地址

 

# 解压安装也比较简单:
tar -vxf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local
# 解压后直接可以用
nohup ./usr/local/node_exporter-1.3.1.linux-amd64/node_exporter &
#查看node_exporter启动是否成功
ps -ef |grep node_exporter

3.  Grafana下载安装

这一步的安装直接在服务器上下载安装包即可:

 

# Ubuntu系统
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_8.3.3_amd64.deb
sudo dpkg -i grafana-enterprise_8.3.3_amd64.deb

 

#centos系统
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.1.1-1.x86_64.rpm

 

在安装过程中如果出现错误,就按照提示命令运行下,比如下面我的执行结果:
➜  package sudo dpkg -i grafana-enterprise_8.3.3_amd64.deb
Selecting previously unselected package grafana-enterprise.
(Reading database ... 125323 files and directories currently installed.)
Preparing to unpack grafana-enterprise_8.3.3_amd64.deb ...
Unpacking grafana-enterprise (8.3.3)...
Setting up grafana-enterprise (8.3.3)...
Adding system user `grafana' (UID 118) ...
Adding new user `grafana' (UID 118) with group `grafana'...
Not creating home directory `/usr/share/grafana'.
### NOT starting on installation, please execute the following statements to configure grafana to start automatically using systemd
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
### You can start grafana-server by executing
sudo /bin/systemctl start grafana-server
Processing triggers for systemd (245.4-4ubuntu3.13)...
# 按照英文的提示把命令运行一下
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
sudo /bin/systemctl start grafana-server

Grafana启动与停止

 

#Grafana状态查询
systemctl status grafana-server
#Grafana启动
systemctl start grafana-server
#Grafana停止
systemctl stop grafana-server

启动成功的状态:

图片

4.  安装成功检查

如果上述安装都操作成功后,你可以得到以下几个地址

Prometheus地址:http://安装Prometheus的服务器ip:9090/targets

Grafana地址:http://安装Grafana的服务器ip:3000

如果所有被监控的服务是正常的,具体如下图,

图片

正常监控

5.  Grafana配置

上述操作都操作成功后,下一步将Prometheus和Grafana进行关联(Prometheus也有自己的UI,但是分析资源信息监控这一类功能Grafana可视化效果更好)。

先来看一下Prometheus UI:

图片

长安链为大家提供了很多参数,比如这里查询链上一共有多少区块,更多参数大家可以自由探索。

图片

接下来看一下Grafana的配置

1.  Grafana关联Prometheus数据

设置→Data sources→Add data source,如下图所示

图片

到了添加页面后,选择Prometheus,如下图所示

图片

这里有一个很重要的地方,url一定要配置,具体如下图:

图片

页面滑到最下面点击Test and Save即可,这样Grafana与Prometheus的数据就关联成功了。

2.  Grafana监控模板导入

①模板导入

点击左侧菜单的➕→ import →点击Upload Json file,上传模板,模板为json文件,具体见下。

图片

②模板附件
节点所在的机器资源监控模板(点击阅读原文下载)

链上资源监控模板(点击阅读原文下载)

③配置成功效果

图片

图片

图片

到这一步,我们的监控已经是安装成功了。如果链上资源监控页没有数据,可以尝试发一笔数据试试。

 总结 

在实际生产环境中,对于链上数据及资源的监控与预警尤为重要,通过引入高度可视化的数据并与邮件或其他实时通信工具的通知功能打通,不仅能够实时监测关键数据指标,还能够提前预警并快速响应节点异常等情况。  

这篇关于数据与资源可视化——长安链运维监控实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/660866

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、