文章导航
- 产品展示
- 配置步骤
- 一、工具安装
- 1. 在A服务器中安装Prometheus与Grafana
- 2.在B服务器中安装Prometheus
- 二、修改配置文件
- 1.修改A服务器Prometheus配置文件
- 2.修改B服务器Prometheus配置文件
- 三、指令的可持续化运行
- 1.A服务器上Prometheus与Grafana的可持续化运行
- 2.B服务器上Prometheus的可持续化运行
- 四、抓取信息及prometheus界面的查看
- 五、Grafana面板配置
- 六、查看Dashboard面板
- 总结
- 特别鸣谢
产品展示
通过本配置教程的配置,你将学会如何制作一个实时更新的区块链节点监控系统,成品展示如下:
是不是还挺有模有样的,其中的Dashboard可进行高度自定义
配置步骤
本配置教程灵感来自Substrate Developer Hub’s Tutorials
实验环境:
-
实验服务器A与B:
-
本地:
实验前提:
假设有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
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
里面加入如下内容:
scrape_configs:- job_name: 'federate'scrape_interval: 15shonor_labels: truemetrics_path: '/federate'params:'match[]':- '{job="substrate_node"}'- '{__name__=~"job:.*"}'static_configs:- targets:- 'xx.xx.xx.xx:9090'
在Peometheus中,9090端口是专门暴露抓取信息metrics的端口,所有抓取信息默认在9090端口暴露出去
这一步的设置是作为监控服务器的必须设置项,官方文档中叫做Federation,只有通过这一步,才能实现跨局域网间的随意监控
更多详细内容见:Federation官方配置文档
2.修改B服务器Prometheus配置文件
在相关安装目录下,打开prometheus.yml配置文件进行修改,在原配置文件的 scrape_configs
中再添加一个 job
,配置如下:
scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['localhost:9090']- job_name: 'substrate_node'scrape_interval: 5sstatic_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