- Organized 252 files across project - Root directory: 187 → 2 files (98.9% reduction) - Moved configuration guides to docs/04-configuration/ - Moved troubleshooting guides to docs/09-troubleshooting/ - Moved quick start guides to docs/01-getting-started/ - Moved reports to reports/ directory - Archived temporary files - Generated comprehensive reports and documentation - Created maintenance scripts and guides All files organized according to established standards.
88 lines
3.7 KiB
Bash
Executable File
88 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Monitor all RPC Translator services and supporting services
|
|
# Usage: ./scripts/monitor-services.sh
|
|
|
|
set -e
|
|
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo "🔍 RPC TRANSLATOR 138 - SERVICE MONITORING"
|
|
echo "═══════════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# Supporting Services
|
|
echo "Supporting Services:"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
echo -n "Redis (192.168.11.110:6379): "
|
|
if timeout 2 bash -c "echo > /dev/tcp/192.168.11.110/6379" 2>/dev/null; then
|
|
echo "✅ Reachable"
|
|
else
|
|
echo "❌ Not reachable"
|
|
fi
|
|
|
|
echo -n "Web3Signer (192.168.11.111:9000): "
|
|
WEB3SIGNER_STATUS=$(curl -s -m 2 http://192.168.11.111:9000/upcheck 2>/dev/null || echo "ERROR")
|
|
if [ "$WEB3SIGNER_STATUS" = "OK" ]; then
|
|
echo "✅ Operational"
|
|
else
|
|
echo "❌ Not responding"
|
|
fi
|
|
|
|
echo -n "Vault (192.168.11.112:8200): "
|
|
VAULT_STATUS=$(curl -s -m 2 http://192.168.11.112:8200/v1/sys/health 2>/dev/null | grep -o '"initialized":[^,]*' || echo "ERROR")
|
|
if [ "$VAULT_STATUS" != "ERROR" ]; then
|
|
echo "✅ Operational"
|
|
else
|
|
echo "❌ Not responding"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Translator Services:"
|
|
echo "───────────────────────────────────────────────────────────────"
|
|
|
|
for IP in 192.168.11.240 192.168.11.241 192.168.11.242; do
|
|
LAST_OCTET="${IP##*.}"
|
|
VMID="24$((LAST_OCTET - 240))"
|
|
echo ""
|
|
echo "VMID $VMID ($IP):"
|
|
|
|
# Service status
|
|
echo -n " Service Status: "
|
|
SERVICE_STATUS=$(ssh -i ~/.ssh/proxmox_translator -o StrictHostKeyChecking=no -o ConnectTimeout=2 root@$IP "systemctl is-active rpc-translator-138.service" 2>/dev/null || echo "ERROR")
|
|
if [ "$SERVICE_STATUS" = "active" ]; then
|
|
echo "✅ Active"
|
|
else
|
|
echo "❌ $SERVICE_STATUS"
|
|
fi
|
|
|
|
# Health check
|
|
echo -n " Health Check: "
|
|
HEALTH=$(curl -s -m 2 http://$IP:9545/health 2>/dev/null || echo "ERROR")
|
|
if echo "$HEALTH" | grep -q '"status":"ok"'; then
|
|
UPSTREAM_HEALTHY=$(echo "$HEALTH" | grep -o '"healthyCount":[0-9]*' | grep -o '[0-9]*')
|
|
UPSTREAM_TOTAL=$(echo "$HEALTH" | grep -o '"totalCount":[0-9]*' | grep -o '[0-9]*')
|
|
if [ "$UPSTREAM_HEALTHY" = "$UPSTREAM_TOTAL" ] && [ -n "$UPSTREAM_HEALTHY" ]; then
|
|
echo "✅ Healthy (Upstream: $UPSTREAM_HEALTHY/$UPSTREAM_TOTAL)"
|
|
else
|
|
echo "⚠️ Degraded (Upstream: $UPSTREAM_HEALTHY/$UPSTREAM_TOTAL)"
|
|
fi
|
|
else
|
|
echo "❌ Not responding"
|
|
fi
|
|
|
|
# RPC test
|
|
echo -n " RPC Test: "
|
|
RPC_RESPONSE=$(curl -s -m 2 -X POST http://$IP:9545 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' 2>/dev/null || echo "ERROR")
|
|
if echo "$RPC_RESPONSE" | grep -q '"result"'; then
|
|
CHAIN_ID=$(echo "$RPC_RESPONSE" | grep -o '"result":"[^"]*"' | cut -d'"' -f4)
|
|
echo "✅ Working (ChainID: $CHAIN_ID)"
|
|
elif echo "$RPC_RESPONSE" | grep -q '"error"'; then
|
|
echo "⚠️ Error response"
|
|
else
|
|
echo "❌ No response"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "═══════════════════════════════════════════════════════════════"
|