1) Monitor agent status from an external application that use appropriate remote JMX protocol for your platform to call PRPC, execute the agent status mbean and interpret the xml results.The command line jmxterm will work as an example.
2) Monitor agent status from an external application that calls a PRPC SOAP or HTTP service. In the publicAPI there is an agentUtils object can provide you with access to current agent status. See step 1 of activity pzCheckSearchAgentStatus (below)
3) Monitor agent status from an external application that calls a PRPC SOAP or HTTP service that uses the pega api method to call the agentStatus mbean methods. In the AESRemote ruleset there is an executeMbean service and activity. In PegaAES ruleset there are activities to SOAP to a node to call mbean com.pega.pegarules.management.AgentManagement operation AgentStatusAdvanced (then apply a parse-xml to interpet the results).
You can dump the status into external/internal table or file. Write a shell script to check the status/condition from table or file and send email to notify the set of users.If you are ready to go ahead with shell script , I can provide you the sample code for the same.
If you are using AES then AES will trigger "Agent Disabled" scorecard email by PEGA0010, but client is not using AES yet.
Java program monitoring PEGA0010 in alert log and send email to users.
Create a service Http when triggered, use the Service activity to loop through all the agents and identify the required agents which needs to be monitored. The below code will build a pagelist with name and status of agents. Loop through all the agents and verify if the status is enabled or disabled. You can use this agent name and other info to send an email or log the details.