热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Prometheus+Grafana+alertmanager实现Substrate区块链节点实时监控报警系统(上)

文章导航产品展示配置步骤一、工具安装1.在A服务器中安装Prometheus与Grafana2.在B服务器中安装Prometheus二、修改配置文件1.修改A服务器Promethe

文章导航

  • 产品展示
  • 配置步骤
    • 一、工具安装
      • 1. 在A服务器中安装Prometheus与Grafana
      • 2.在B服务器中安装Prometheus
    • 二、修改配置文件
      • 1.修改A服务器Prometheus配置文件
      • 2.修改B服务器Prometheus配置文件
    • 三、指令的可持续化运行
      • 1.A服务器上Prometheus与Grafana的可持续化运行
      • 2.B服务器上Prometheus的可持续化运行
    • 四、抓取信息及prometheus界面的查看
    • 五、Grafana面板配置
      • 1.配置Data sources
      • 2.导入面板
    • 六、查看Dashboard面板
  • 总结
  • 特别鸣谢


产品展示

通过本配置教程的配置,你将学会如何制作一个实时更新的区块链节点监控系统,成品展示如下:


是不是还挺有模有样的,其中的Dashboard可进行高度自定义

配置步骤

本配置教程灵感来自Substrate Developer Hub’s Tutorials

实验环境:

  • 实验服务器A与B:

    • Ubuntu 18.04
    • Linux amd64
  • 本地:

    • Mac OS

实验前提:
假设有A与B两台远程服务器,A服务器作为监控服务器,B服务器作为被监控服务器,且默认B服务器一直跑着区块链节点。
整个配置过程,均由本地计算机访问远程的A和B服务器完成。

一、工具安装


1. 在A服务器中安装Prometheus与Grafana

Prometheus的安装:
在本地进入Prometheus官网,下载对应版本的prometheus安装包:


下载好后输入以下命令把本地的安装包上传到远程服务器A中:

scp /Users/admin/Downloads/prometheus-2.28.1.linux-amd64.tar.gz root@A's IP address:/root
# /Users/admin/Downloads/为安装包存储路径
# /root为具体的上传地址路径

Linux scp命令用于Linux之间文件和目录的传递,从本地复制到远程服务器、从远程服务器复制到本地(该命令同样适用于类Unix系统中,Mac OS与Linux同属于类Unix系统)。

scp命令详解可以参考另一篇文章:linux scp命令参数及用法详解–linux远程复制拷贝命令使用实例

安装包上传成功后,输入以下命令来解压缩解打包.tar.gz文件

tar -zxvf prometheus-2.28.1.linux-amd64.tar.gz

tar相关打包压缩(解打包解压缩)命令可参考以下文章:Linux命令——tar与gzip详解:文件的打包压缩与解压缩解打包

解压完成后代表Prometheus正常安装完成

Grafana的安装:
在本地进入Grafana官网,按照给出的安装命令安装Grafana


输入官网中给出的三行命令即可在A服务器上安装Grafana
一般三条命令运行完后,Grafana会提示你输入三条命令,把Grafana的启动做成开机启动,
Grafana提示如下:


依次输入提示中的三条命令以设计Grafana为开机启动
由于后面要执行Grafana与Prometheus的后台持续运行,因此此处设置为开机启动后,后面不用单独设置(默认为服务器不会宕机,因此此处开机启动的作用与挂在后台持续运行的作用一样)

2.在B服务器中安装Prometheus

安装Prometheus的过程与上文一样,此处不再赘述。

二、修改配置文件


1.修改A服务器Prometheus配置文件

cd到prometheus的安装文件中,找到配置文件prometheus.yml,打开配置文件,在原配置文件的基础上,在 scrape_configs里面加入如下内容:

# -- snip --scrape_configs:# -- snip --- job_name: 'federate'scrape_interval: 15shonor_labels: truemetrics_path: '/federate'params:'match[]':- '{job="substrate_node"}'- '{__name__=~"job:.*"}'# job自定义,一般为被监控服务器的jobstatic_configs:- targets:- 'xx.xx.xx.xx:9090'# 此处填写A服务器的IP地址# 可添加多个被监控服务器的IP地址,但必须保持9090端口

在Peometheus中,9090端口是专门暴露抓取信息metrics的端口,所有抓取信息默认在9090端口暴露出去

这一步的设置是作为监控服务器的必须设置项,官方文档中叫做Federation,只有通过这一步,才能实现跨局域网间的随意监控

更多详细内容见:Federation官方配置文档


2.修改B服务器Prometheus配置文件

在相关安装目录下,打开prometheus.yml配置文件进行修改,在原配置文件的 scrape_configs中再添加一个 job,配置如下:

scrape_configs:# The job name is added as a label `job=` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']# 设置新的job,取名为“substrate_node”- job_name: 'substrate_node'scrape_interval: 5s# 设置抓取时间为5s,该时间要小于区块链节点的出块时间static_configs:- targets: ['localhost:9615']

根据Substrate官方文档介绍,所有用Substrate Developer Hub开发的区块链,其用Prometheus抓取的指标metrics均默认由9615端口暴露
由于B服务器正在运行区块链节点,所以要在本地进行抓取指标metrics(现在B是本地)

具体区块链节点指标暴露文档可访问Substrate Developer Hub’s Tutorials: Visualizing Node Metrics


三、指令的可持续化运行


1.A服务器上Prometheus与Grafana的可持续化运行

:本文中可持续化运行指的是关掉后台后命令还在执行

Prometheus的可持续化运行:
cd到prometheus.yml文件的目录下,然后输入如下命令:

nohup ./prometheus --config.file prometheus.yml &

*Grafana的可持续化运行(前面设置Grafana开机启动的请跳过这一步):
cd到grafana-server文件的目录下,然后输入如下命令:

nohup ./grafana-server web &

注意:nohup [command] &命令用于将command命令放在后台持续运行,并且结束远程连接后命令也在服务器后台持续运行。结束该命令只能用 ps aux查询command进程的PID,然后运行 kill -9 [PID]强制结束进程。

2.B服务器上Prometheus的可持续化运行

执行命令同上,先 cd到相应目录,然后执行以下命令:

nohup ./prometheus --config.file prometheus.yml &

四、抓取信息及prometheus界面的查看

在浏览器中输入 http://A的IP地址:9090/metrics可访问具体抓去指标metrics:


如果想看prometheus的界面,直接输入 http://A的IP地址:9090即可访问,里面很多选项可以查看(此界面内容非本教程主要内容,故不做过多讲解)。成功打开界面后,可以在Status一栏中,选择Targets查看B服务器监控状态:



五、Grafana面板配置

系统成功运行Grafana后,可在浏览器中输入 http://A的IP地址:3000成功访问Grafana,系统默认初始账号密码均为admin

1.配置Data sources

初始进入Grafana时会显示如下的界面,要想让自己的监控面板有信息显示,首先让他知道数据在哪。
如下图所示,先点击左侧导航栏的小齿轮 Configuration按钮,在弹出的框中点击 Data sources:


进入Data Sources后,点击选择Prometheus(因为数据来自Prometheus的指标metrics):


选择Prometheus后,开始配置Data sources:编辑HTTP栏目下URL,填写为 http://A的IP:9090:


完成修改后点击该页面下的 Save & test按钮,当出现两个绿色对号即表示测试通过:



2.导入面板

Data sources测试通过后,点击左侧的 +号,然后在弹出的框中点击 Import按钮:


进入Import界面后,在Import via grafana.com栏目中输入编号13759,之后点击右边的 Load按钮即可完成导入:
Tip: 编号13579为Substrate Developer Hub提供的监控面板模版编号


点击Load后,进入Dashboard设置界面,此时在 Substrate Node下选择刚才测试好的Data sources(Prometheus),然后点击 import按钮后即可即可完成Dashboard的导入与配置:



六、查看Dashboard面板

目光再次来到左侧的导航栏,按照下图的顺序依次点接选择就可以查看区块链节点监控面板了:


进入 Manage后点击相应文件夹下的面板即可进入面板:


Tip:一些面板方面的基础设置即实时刷新频率可在下图中的标红区域设置:





总结

整篇配置教程到此结束,该教程中指标metrics的抓取系统为Prometheus,监控面板系统为Grafana,区块链节点由Substrate Developer Hub配置

特别鸣谢

[1] Prometheus Download
[2] Prometheus Configuration Doc.
[3] Grafana Download
[4] Substrate Developer Hub: Tutorials’ Create Your First Substrate Chain
[5] Substrate Developer Hub: Tutorials’ Visualizing Node Metrics


推荐阅读
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
author-avatar
杰ZGJ8513
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有