File: //var/lib/zabbix/check_raid_zabbix
#!/bin/bash
# Kiểm tra MegaCli có tồn tại không
cmd=$(command -v MegaCli64 || command -v sudo /opt/MegaRAID/MegaCli/MegaCli64 2>/dev/null)
if [ -z "$cmd" ]; then
echo "ERROR: MegaCLI is required to run this script. Please install MegaCLI first." >&2
exit 1
fi
# Biến hệ thống
HOSTNAME=$(hostname -f)
LOG_DIR="/var/log/zabbix"
LOG_FILE="$LOG_DIR/check_raid.log"
LOG_FILE_DETAIL="$LOG_DIR/check_raid_detail.log"
# Tạo thư mục log nếu chưa tồn tại & gán quyền đúng
mkdir -p "$LOG_DIR"
# Kiểm tra trạng thái RAID
result=$($cmd -cfgdsply -aALL | grep -A8 "Virtual Drive" | grep -i ^State | awk -F': ' '{print $2}' | grep -viE "Optimal|Online")
if [ -n "$result" ]; then
MESSAGE=$($cmd -cfgdsply -aALL | grep -A15 "Virtual Drive")
# Ghi log lỗi
echo "Degraded at $(date '+%d/%m/%Y %H:%M')" > "$LOG_FILE"
echo "$MESSAGE" > "$LOG_FILE_DETAIL"
cat "$LOG_FILE"
else
# Ghi log OK
echo "Normal at $(date '+%d/%m/%Y %H:%M')" > "$LOG_FILE"
# In ra màn hình đúng thông tin
cat "$LOG_FILE"
fi