在上一篇教程中已經(jīng)介紹了開啟Staking的方法:
以太坊2.0 POS挖礦(ETH2 Staking)教程(一)Topaz測試網(wǎng)
由于Staking要求驗證著24/7保持在線才能持續(xù)獲得收益斗躏,如果驗證者離線一小段時間派草,將會有少量的懲罰;如果長時間離線掂墓,懲罰金額會隨著時間大幅上升铝宵。關于該機制的簡單介紹打掘,可見這篇文章中的“驗證者激勵措施”部分。
因此鹏秋,有必要對Staking進行實時監(jiān)控碱鳞,以便在出現(xiàn)問題時接收到告警并及時處理岸浑,避免損失擴大钳枕。
本文將從簡單到復雜梦重,介紹幾種監(jiān)控的方法。
準備工作——獲取驗證者public key
1. 從存款交易獲取
打開metamask百拓,找到那筆32ETH的存款交易琴锭,然后點擊“通過etherscan瀏覽”晰甚。可看到那筆交易對應的驗證者public key决帖。
2. 從驗證者密鑰目錄查看
進入密鑰目錄后查看validatorprivate****的文件厕九,找到"publickey"部分即可。
# 進入目錄
cd ~/.eth2validators
# 打開validatorprivate開頭的文件
vim validatorprivatekey*****
# 打開后找到"publickey"部分即可
區(qū)塊鏈瀏覽器查看驗證者狀態(tài)
最簡單的方式就是通過訪問區(qū)塊鏈瀏覽器網(wǎng)站監(jiān)控驗證者狀態(tài)地回。https://beaconcha.in或者https://beacon.etherscan.io扁远,輸入Public Key即可查看當前狀態(tài)和歷史收益。
使用云主機服務提供商的的監(jiān)控看板
大部分云主機服務提供商都提供了主機性能監(jiān)控和告警的功能落君。如果在云主機上進行Staking,可使用云服務上提供的資源監(jiān)控告警功能亭引。
信標鏈客戶端占用內(nèi)存大約在2.5GB-3.5GB之間绎速,進程如果終止內(nèi)存會導致內(nèi)存驟降,可通過內(nèi)存使用率/使用量的異常進行側面監(jiān)控焙蚓。
同時可對網(wǎng)絡流量纹冤、機器是否正常運行設置更多維度的監(jiān)控。
通過prometheus監(jiān)控
Prometheus是一款流行的實時監(jiān)控工具购公。按照要求開發(fā)服務并設置監(jiān)聽端口后萌京,可通過prometheus訪問端口獲取數(shù)據(jù)進行監(jiān)控。
prysm已經(jīng)內(nèi)置了針對prometheus的監(jiān)聽服務宏浩,因此可以只需對prometheus進行簡單的配置即可對信標鏈和驗證者客戶端進行監(jiān)控知残。
如果想自行研究,可參考官方教程比庄。以下是簡要步驟:
- 下載相應的prometheus安裝包到本地:Download the latest release
- 解壓并進入目錄:
tar xvfz prometheus-*.tar.gz
cd prometheus-*
- 用screen新建一個session并啟動prometheus:
# 新建一個session
screen -S prometheusETH2
# 啟動prometheus
./prometheus --config.file=prometheus.yml
# 啟動完成后按住CTRL+A+D退出session
- 修改配置文件prometheus.yml
默認的配置文件底部可看到- targets: ['localhost:9090']
求妹,表示進程會從本機9090端口抓取數(shù)據(jù)。9090是prometheus提供的監(jiān)控自己運行指標的端口佳窑。prysm的信標鏈和驗證者的指標端口分別是8080和8081制恍,將兩個端口加入到配置文件的targets即可。完成后的prometheus.yml如下:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
# 添加以下targets以監(jiān)控信標鏈和驗證者
- job_name: 'beacon-chain'
static_configs:
- targets: ['localhost:8080']
- job_name: 'validator'
static_configs:
- targets: ['localhost:8081']
修改完成后神凑,通過promtool檢查配置文件正確性:
./promtool check config prometheus.yml
驗證無誤后可以看到如下信息:
Checking prometheus.yml
SUCCESS: 0 rule files found
- 使prometheus重新載入配置文件
通過ps -aux | grep prometheus
找到prometheus運行的進程號(PID)净神,并通過以下命令通知該進程重新載入配置文檔:
kill -HUP PID
- 查看監(jiān)控指標
通過本機訪問http://localhost:9090即可看到prometheus的圖形化監(jiān)控頁面。如果使用linux云主機溉委,則需要開放9090,8080,8081三個端口并通過瀏覽器訪問服務器鹃唯。
點擊菜單欄的Status >> Targets可看到配置文件中設置的targets:
回到prometheus
點擊Endpoint中的鏈接可看到看到該target中的所有指標。
進入validator的Endpoint(http://localhost:8081/metrics)瓣喊,可在頁面底部看到驗證者相關指標:
選取其中的指標輸入到Graph頁面即可俯渤。例如想觀測驗證者的ETH余額增長情況,只需要點擊菜單的Graph型宝,輸入validator_balance后點擊Execute八匠,并在下方切換到Graph標簽即可查看走勢(我這里有2個驗證者絮爷,所以有2條曲線):
點擊下方的Add Graph可添加任意數(shù)量的圖表,實現(xiàn)多個圖表的看板梨树。
優(yōu)缺點
以上不同的監(jiān)控方式各有優(yōu)劣坑夯。對比如下:
區(qū)塊鏈瀏覽器 | 云主機監(jiān)控告警 | prometheus | |
---|---|---|---|
監(jiān)控維度 | 驗證者節(jié)點狀態(tài)和余額變動 | 主機性能指標波動 | 信標鏈和驗證者的多項指標 |
指標豐富程度 | 少 | 一般 | 豐富 |
上手難度 | 簡單 | 中等 | 較為復雜 |
是否需要信任第三方的區(qū)塊鏈信息? | 是 | - | 否 |
是否直接監(jiān)控驗證者抡四? | 是 | 否 | 是 |
主機斷電或網(wǎng)絡斷開時是否有效柜蜈? | 是 | 是 | 否 |
風險點 | 網(wǎng)站數(shù)據(jù)有誤、網(wǎng)站無法訪問時無法監(jiān)控 | 進程運行但執(zhí)行異常時無法監(jiān)控到 | 主機斷電或網(wǎng)絡斷開時無法監(jiān)測指巡; prometheus進程終止或出現(xiàn)異常時監(jiān)測功能失效淑履。 |
綜上,較為保險的做法是主機性能指標監(jiān)控+prometheus藻雪,另外亦可將prometheus部署在另一臺機器上秘噪,這樣當主機宕機或網(wǎng)絡斷開時也能觀測到異常指標。
監(jiān)控有了勉耀,告警呢指煎?
說了這么多,難道需要一個人啥事不干整天盯著指標嗎便斥?當然不是啦至壤,下一篇就會介紹如何對異常進行告警。不要錯過哦枢纠。