首页 > 元宇宙 > 深度|ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)
币圈观察  

深度|ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)

摘要:摘要:在之前的教程中已经介绍了开启Staking的方法和监控稳定性的方式以太坊2.0 POS挖矿教程Topaz测试网以太坊2.在之前的教程中已经介绍了开启Sta

摘要:在之前的教程中已经介绍了开启Staking的方法和监控稳定性的方式以太坊2.0 POS挖矿教程Topaz测试网以太坊2.

ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315在之前的教程中已经介绍了开启Staking的方法和监控稳定性的方式:
以太坊2.0 POS挖矿(ETH2 Staking)教程(一)Topaz测试网
以太坊2.0 POS挖矿(ETH2 Staking)教程(二)Topaz测试网-监控篇

Prometheus提供的独立工具Alertmanager可以轻松实现异常告警。本文将介绍如何使用此工具来实现Staking余额异常告警。

 

概览

 

Alertmanager是一个专注于发送告警信息的组件,虽然由同一个团队开发,但独立于Prometheus server。这意味着它非常适合配合Prometheus进行告警信息的发送,也可以配合其他的系统进行运作。官方示意图如下:

ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315

如图所示,Prometheus将告警内容发送至Alertmanager,Alertmanager根据配置将告警信息发送至目标。
因此,要完成Staking的异常告警,我们需要进行3项工作:

  1. 搭建Alertmanager,以接收Prometheus发来的告警信息
  2. 配置Prometheus,将其与Alertmanager通信
  3. 配置Alertmanager的告警规则

想仔细探究的话可以访问官方文档:https://prometheus.io/docs/alerting/overview/
以下将会以监控地址余额变动为例,完成告警配置的整个流程。

 

搭建Alertmanager

下载代码

  • 到官方下载页面下载对应的Alertmanager。
  • 解压并进入目录

tar xvfz alertmanager-*.tar.gz
cd alertmanager-*

修改配置文件

目录中的alertmanager.yml为配置文件。首先我们尝试通过邮件的方式发送告警信息。
我们需要在其中配置发送邮箱和接受邮箱。发送邮箱需要配置STMP服务的参数,接受邮箱只要填写邮件地址即可。
配置如下,我们在global部分配置了发送邮箱,在receivers部分配置了接受邮箱。
其中需要修改的地方已经在行位用#注释标出。

global:
resolve_timeout: 5m
smtp_from: 'xxx@qq.com' #email will be sent through this
smtp_smarthost: 'smtp.qq.com:465'
smtp_auth_username: 'xxx@qq.com' #email address
smtp_auth_password: 'xxxxxxxxxxxxx' #auth code, not password of email!
smtp_require_tls: false
smtp_hello: 'qq.com'
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'eth2staking'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'

# add this receiver
- name: 'eth2staking'
email_configs:
- to: 'xxxx@xxx.com' #email to receive alert notification

inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']

我们使用qq邮箱进行发送。注意smtp_auth_password不是邮箱登录密码,而是第三方客户端登录邮箱所需的授权码。在qq邮箱的 设置->账户 中开启SMTP服务,之后把授权码填入此处即可。
修改完后保存文档退出即可。

配置Prometheus,将其与Alertmanager通信

这一步非常简单,修改Prometheus路径下的prometheus.yml文档,将alertmanager:9093这行的注释去掉即可。alerting部分如下所示:

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093 # delete comment of this line

修改完成后保存,然后使用kill -HUP PID使Prometheus重新载入配置即可。

 

配置Alertmanager的告警规则

 

我们需要新建一个告警规则配置文档,然后将文档添加到prometheus.yml中。

新建告警规则配置文档并配置规则

新建一个配置文档,比如eth2_rules.yml,然后将以下内容填入文档并保存。

groups:
- name: staking
rules:

# Staking loss

- alert: ETH2 staking loss
expr: validator_balance - validator_balance offset 5m < 0
for: 15m
annotations:
summary: "ETH2 balance(offset 5m) decreased."
description: "ETH2 balance(offset 5m) decreased by {{ $value }} ETH. Pubkey: {{ $labels.pubkey }}"

这条规则的意思是验证者当前余额低于5分钟之前的余额,则触发告警。各部分解释:

  • alert:告警名称
  • expr:PromQL查询语句,此处指如果验证者当前余额低于5分钟前的余额,则触发告警(刚触发时并不会直接发送给Alertmanager,见下面对for的解释)。想了解更多可自行搜索或查阅官方文档。
  • for:该规则触发后持续多久才会将告警信息通知给Alertmanager。这里设置15分钟,即验证者当前额度低于5分钟前额度的时间连续超过15分钟时,才会将此告警信息发送到Alertmanager。
  • annotations:告警内容,此处包括summary和description。此处用{{ $value }}显示余额较5分钟前减少的数额,用{{ $labels.pubkey }}显示验证者地址。

保存后打开prometheus.yml,将该告警规则配置文档添加到rule_files部分:

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
- "eth2_rules.yml"

然后使用kill -HUP PID使Prometheus重新载入配置即可。

 

检查告警是否生效

 

我们需要检查:1. Prometheus的告警规则是否生效。 2. Alertmanager的邮件发送功能是否正常。

查看Prometheus的告警规则是否生效

在Alert页面(http://localhost:9090/alert)可看到如下显示,则说明告警规则已经成功添加。

ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315

Alertmanager的邮件发送功能是否正常

可以在eth2_rules.yml中再添加一条必定会触发的规则作为测试,看是否能收到告警邮件。比如如下规则:

- alert: ETH2 alert test
expr: validator_balance - validator_balance offset 5m >= 0
for: 1m
annotations:
summary: "ETH2 alert test"
description: "ETH2 balance increased {{ $value }} ETH. Pubkey: {{ $labels.pubkey }}"

规则生效后不久如果收到如下格式的邮件则说明邮件发送功能正常:

ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315ance:以太坊2.0 POS挖矿教程:手把手教你在Topaz测试网进行Staking(告警篇)-区块链315

 

其他事项

  • Alertmanager非常接地气地实现了一些常见的通讯软件的配置,比如微信,见官方文档中的<wechat_config>。
  • 如果Prometheus中没有找到validator的相关指标,则需要重启验证者客户端并添加参数:
    ./prysm.sh validator –enable-account-metrics
免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。