mirror of
https://github.com/taylanbakircioglu/haproxy-openmanager.git
synced 2026-09-11 21:38:55 +00:00
120 lines
3.5 KiB
Bash
Executable File
120 lines
3.5 KiB
Bash
Executable File
#!/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"
|
||
|