最近搭建了TRON节点,为了防止节点在生产环境使用过程中,出现问题,所以做了一系列的监控措施。本说明文档介绍了如何使用Shell脚本和Python脚本来监控Tron节点的状态,并在节点不可用或不同步时通过Telegram发送报警消息。此外,脚本还监控系统资源(CPU、内存和磁盘)的使用情况,并在检
最近搭建了TRON节点,为了防止节点在生产环境使用过程中,出现问题,所以做了一系列的监控措施。
本说明文档介绍了如何使用Shell脚本和Python脚本来监控Tron节点的状态,并在节点不可用或不同步时通过Telegram发送报警消息。此外,脚本还监控系统资源(CPU、内存和磁盘)的使用情况,并在检测到高使用率时发送报警消息。
无论是Shell脚本还是Python脚本,首先需要进行一些配置:
import requests
# 配置
NODE_URL = "http://localhost:8090/wallet/getnowblock"
PUBLIC_API_URL = "https://api.trongrid.io/wallet/getnowblock"
TELEGRAM_TOKEN = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
CHAT_ID = "your_chat_id"
SYNC_THRESHOLD = 5 # 允许的最大区块高度差
# 获取区块高度
def get_block_height(url):
try:
response = requests.post(url)
response.raise_for_status()
data = response.json()
return data['block_header']['raw_data']['number']
except Exception as e:
print(f"Error fetching data from {url}: {e}")
return None
# 发送报警消息到Telegram
def send_telegram_alert(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
payload = {
'chat_id': CHAT_ID,
'text': message
}
try:
response = requests.post(url, json=payload)
response.raise_for_status()
print("Alert sent successfully")
except requests.exceptions.RequestException as e:
print(f"Error sending alert: {e}")
# 检查本地节点的区块高度
node_height = get_block_height(NODE_URL)
if node_height is None:
message = "Error: Unable to retrieve block height from local Tron node."
send_telegram_alert(message)
print(message)
exit(1)
# 检查官方节点的区块高度
public_api_height = get_block_height(PUBLIC_API_URL)
if public_api_height is None:
message = "Error: Unable to retrieve block height from TronGrid API."
send_telegram_alert(message)
print(message)
exit(1)
# 比较区块高度
if (public_api_height - node_height) > SYNC_THRESHOLD:
message = (f"Warning: Tron node is out of sync.\n"
f"Local node height: {node_height}\n"
f"Public API height: {public_api_height}")
send_telegram_alert(message)
print(message)
else:
print(f"Tron node is in sync. Local node height: {node_height}, Public API height: {public_api_height}")
确保已安装requests库,可以使用以下命令安装:
pip install requests
保存脚本: 将脚本保存为check_tron_node.py。
运行脚本: 手动运行脚本测试脚本是否可用
python3 chec...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!