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

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

相关文章

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编