Monitor unusable indexes on oracle I have a lot of database, a ton of partitioned tables and many processes running on them.
In a couple of occasions I hade problems for unusable indexes or partitions of them. A bugged procedure, or a human error of the dba.

I'd like to rise an alarm when an index became unusable.

Oracle is version 11.2, new installations 12. All enterprise.
Grid control is 12c.

I also have nagios on every machine

The only way I found is to use a nagios plugin to run custom query on database. Is this the best way?

The plugin: http://labs.consol.de/lang/en/nagios/check_oracle_health/
You can use both, Nagios and Oracle Cloud Control 12c (also applies for Grid Control 10g and 11g).

I used Nagios about 8 years ago to run custom SQLs but I guess there is much changed since then. Maybe someone else has recent experiences with that.

In Oracle Cloud Control you have 2 options:


Write your own Agent Plugin. I never did that because after some testing I considered it to be to much work.
Use "Metric Extensions" available with "Diagnostic Pack".