Files
taylanbakircioglu 6aae0f4309 Initial commit
2025-10-27 12:14:03 +03:00

120 lines
3.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# HAProxy Agent Stats Diagnostic Script
# Bu script agent'ların stats gönderip göndermediğini kontrol eder
AGENT_LOG="/var/log/haproxy-agent/agent.log"
CONFIG_FILE="/etc/haproxy-agent/config.json"
echo "========================================="
echo "HAProxy Agent Stats Diagnostic"
echo "========================================="
echo ""
# 1. Agent çalışıyor mu?
if pgrep -f "haproxy-agent" > /dev/null; then
echo "✅ Agent çalışıyor"
else
echo "❌ Agent çalışmıyor!"
exit 1
fi
# 2. Config dosyası var mı?
if [[ -f "$CONFIG_FILE" ]]; then
echo "✅ Config dosyası mevcut: $CONFIG_FILE"
STATS_SOCKET=$(jq -r '.haproxy.stats_socket_path // "/var/run/haproxy/admin.sock"' "$CONFIG_FILE")
echo " Stats Socket: $STATS_SOCKET"
else
echo "❌ Config dosyası bulunamadı: $CONFIG_FILE"
exit 1
fi
# 3. Stats socket var mı?
if [[ -S "$STATS_SOCKET" ]]; then
echo "✅ Stats socket mevcut: $STATS_SOCKET"
else
echo "❌ Stats socket bulunamadı: $STATS_SOCKET"
echo ""
echo " HAProxy config'inize şu satırı ekleyin:"
echo " global"
echo " stats socket $STATS_SOCKET mode 660 level admin"
exit 1
fi
# 4. Stats socket'e erişim var mı?
if echo "show stat" | socat stdio "$STATS_SOCKET" &>/dev/null; then
echo "✅ Stats socket erişilebilir"
STATS_COUNT=$(echo "show stat" | socat stdio "$STATS_SOCKET" 2>/dev/null | wc -l)
echo " Stats satır sayısı: $STATS_COUNT"
else
echo "❌ Stats socket'e erişilemiyor"
echo " Permission sorunu olabilir. Şunu deneyin:"
echo " sudo chmod 666 $STATS_SOCKET"
exit 1
fi
# 5. Socat kurulu mu?
if command -v socat &>/dev/null; then
echo "✅ Socat kurulu: $(command -v socat)"
else
echo "❌ Socat kurulu değil!"
echo " Yüklemek için: sudo apt-get install socat (Debian/Ubuntu)"
echo " sudo yum install socat (RHEL/CentOS)"
exit 1
fi
# 6. Agent log'larını kontrol et
if [[ -f "$AGENT_LOG" ]]; then
echo ""
echo "📊 Agent Log Analizi:"
echo "-------------------"
# Son heartbeat
LAST_HEARTBEAT=$(grep "Heartbeat sent successfully" "$AGENT_LOG" | tail -1)
if [[ -n "$LAST_HEARTBEAT" ]]; then
echo "✅ Son başarılı heartbeat:"
echo " $LAST_HEARTBEAT"
else
echo "⚠️ Son 100 satırda başarılı heartbeat bulunamadı"
fi
# Stats socket hataları
STATS_ERRORS=$(grep -i "stats socket" "$AGENT_LOG" | tail -3)
if [[ -n "$STATS_ERRORS" ]]; then
echo ""
echo "⚠️ Stats socket ile ilgili log'lar:"
echo "$STATS_ERRORS"
fi
# Heartbeat hataları
HEARTBEAT_ERRORS=$(grep "Heartbeat failed" "$AGENT_LOG" | tail -3)
if [[ -n "$HEARTBEAT_ERRORS" ]]; then
echo ""
echo "❌ Heartbeat hataları:"
echo "$HEARTBEAT_ERRORS"
fi
else
echo "⚠️ Agent log dosyası bulunamadı: $AGENT_LOG"
fi
echo ""
echo "========================================="
echo "Diagnostic Tamamlandı"
echo "========================================="
echo ""
# 7. Test: Stats CSV'yi göster
echo "📋 HAProxy Stats Örnek (ilk 10 satır):"
echo "-------------------"
echo "show stat" | socat stdio "$STATS_SOCKET" 2>/dev/null | head -10
echo ""
echo "✅ Agent stats göndermeye hazır!"
echo ""
echo "Dashboard'da veri görmek için:"
echo "1. Pipeline'ın bitmesini bekleyin"
echo "2. Agent'ların en az 1-2 heartbeat göndermesini bekleyin (1 dakika)"
echo "3. Dashboard'u yenileyin"
echo "4. 24 saatlik trend verileri için 24 saat bekleyin"