Same as title, What's the best way to discover a drive failure?  Here are just few of them for you reference.

1. Check Summary info

Here is one example, in the output of the following command, you will see status/state of controller, drive, Logical Drive.

# MegaCli64 -ShowSummary -aALL

System
Operating System: Linux version 2.6.32-504.12.2.el6.x86_64
Driver Version: 06.803.01.00-rh1
CLI Version: 8.07.14
Hardware
Controller
ProductName : PERC H730 Mini(Bus 0, Dev 0)
SAS Address : 544a84200ffca800
FW Package Version: 25.2.1.0037
Status : Optimal
BBU
BBU Type : BBU
Status : Healthy
Enclosure
Product Id : BP13G+
Type : SES
Status : OK
PD 
Connector : 00<Internal><Encl Pos 1 >: Slot 0
Vendor Id : TOSHIBA
Product Id : AL13SXB300N
State : Online
Disk Type : SAS,Hard Disk Device
Capacity : 278.875 GB
Power State : Active
Connector : 00<Internal><Encl Pos 1 >: Slot 1 
Vendor Id : TOSHIBA
Product Id : AL13SXB300N
State : Online
Disk Type : SAS,Hard Disk Device
Capacity : 278.875 GB
Power State : Active
Storage
Virtual Drives
Virtual drive : Target Id 0 ,VD name
Size : 278.875 GB
State : Optimal
RAID Level : 1

The text messge in red will be words like 'Failed', 'Degraded', etc..

2. Display Logical Drive status

This command displays Logical Drive status, have a look if the state is not 'Optimal'

/usr/sbin/MegaCli64 -CfgDsply -aALL -nolog |grep State

3. Get failed disk drive info from event log

MegaCli64 -AdpEventLog -GetEvents -critical -a0

option -f will let you write the event log to a file.

 

What to know more MetaCli64 command examples ? see MegaCli ueful commands exmaples

Or you can check Megar RAID email alert script for automated monitoring.