#!/bin/bash

MAX_LINES=10

print_section() {
  echo ""
  echo "=== SOURCE: $1 ==="
}

# Функция для поиска и вывода логов
process_log() {
  local file=$1
  local label=$2
  local pattern=$3
  
  if [ -f "$file" ] && [ -s "$file" ]; then
    local content=$(grep -E "$pattern" "$file" | tail -n $MAX_LINES)
    if [ ! -z "$content" ]; then
      print_section "$label"
      echo "$content"
    fi
  fi
}

# --- СИСТЕМНЫЕ МЕТРИКИ ---
print_section "SYSTEM STATUS"
echo "Load Average: $(uptime | awk -F'load average:' '{ print $2 }')"
echo "Memory: $(free -h | awk '/^Mem:/ {print $3 "/" $2 " used"}')"
echo "Disk Usage: $(df -h / | awk 'NR==2 {print $5 " used on /"}')"

# --- ЛОГИ ISPMANAGER ---
#for f in /usr/local/mgr5/var/*.log; do
#  process_log "$f" "ispmanager / $(basename "$f")" "(ERROR|CRITICAL|PANIC|FATAL|exception|denied|timeout|refused|segmentation fault|oom-killer)"
#done

# --- NGINX ---
for f in /var/log/nginx/*error.log; do
  process_log "$f" "nginx / $(basename "$f")" "(error|crit|alert|emerg)"
done

# --- PHP-FPM ---
for f in /var/log/php*-fpm.log; do
  process_log "$f" "php-fpm / $(basename "$f")" "(ERROR|WARNING|child exited|segfault|crash)"
done

# --- EXIM ---
process_log "/var/log/exim4/mainlog" "exim / mainlog" "(panic|error|rejected|failed)"

# --- DATABASE ---
if [ -f /var/log/mysql/error.log ]; then
  process_log "/var/log/mysql/error.log" "mysql / error.log" "."
elif [ -f /var/log/mariadb/mariadb.log ]; then
  process_log "/var/log/mariadb/mariadb.log" "mariadb / mariadb.log" "(error|critical|innodb)"
fi
