Files
proxmox/scripts/fix-monitoring-promtail.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- 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.
2026-01-06 01:46:25 -08:00

97 lines
3.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Fix promtail configuration issue in monitoring stack (VMID 130)
# Usage: ./scripts/fix-monitoring-promtail.sh
set -euo pipefail
NODE_IP="192.168.11.12"
VMID=130
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_info "Fixing promtail configuration issue..."
# Check if promtail-config.yml exists and is a file
CONFIG_TYPE=$(ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- test -f /opt/monitoring/loki/promtail-config.yml && echo 'file' || (test -d /opt/monitoring/loki/promtail-config.yml && echo 'directory' || echo 'missing')")
if [[ "$CONFIG_TYPE" == "directory" ]]; then
log_warn "promtail-config.yml is a directory, should be a file"
log_info "Removing directory and creating file..."
# Remove directory and create file
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- rm -rf /opt/monitoring/loki/promtail-config.yml && touch /opt/monitoring/loki/promtail-config.yml && chown monitoring:monitoring /opt/monitoring/loki/promtail-config.yml"
log_success "Created promtail-config.yml file"
elif [[ "$CONFIG_TYPE" == "missing" ]]; then
log_warn "promtail-config.yml is missing"
log_info "Creating default promtail configuration..."
# Create default promtail config
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- bash" <<'EOF'
cat > /opt/monitoring/loki/promtail-config.yml <<'PROMTAIL_CONFIG'
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
PROMTAIL_CONFIG
chown monitoring:monitoring /opt/monitoring/loki/promtail-config.yml
EOF
log_success "Created default promtail configuration"
fi
# Now try to restart the service
log_info "Restarting monitoring stack service..."
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- systemctl reset-failed monitoring-stack.service 2>/dev/null || true"
sleep 2
if ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- systemctl start monitoring-stack.service 2>&1"; then
sleep 3
STATUS=$(ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- systemctl is-active monitoring-stack.service 2>/dev/null || echo 'inactive'")
if [[ "$STATUS" == "active" ]]; then
log_success "✅ Monitoring stack service is now active"
else
log_warn "Service started but status unclear. Checking Docker containers..."
DOCKER_COUNT=$(ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- docker ps --format '{{.Names}}' 2>/dev/null | wc -l" || echo "0")
log_info "Docker containers running: $DOCKER_COUNT"
fi
else
log_error "Failed to start service. Checking error..."
ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@${NODE_IP} \
"pct exec $VMID -- journalctl -u monitoring-stack.service -n 5 --no-pager 2>/dev/null | tail -3" || true
fi