mkdir -p /usr/lib/rackspace-monitoring-agent/plugins/ cd /usr/lib/rackspace-monitoring-agent/plugins/ wget https://raw.githubusercontent.com/racker/rackspace-monitoring-agent-plugins-contrib/master/lsyncd-status.sh chmod 755 lsyncd-status.sh
You can test the above script by calling it directly to see if it is working and reporting stats:
/usr/lib/rackspace-monitoring-agent/plugins/lsyncd-status.sh
Now, we need to create the alert itself.
[To get the token, you can use this]
curl -i -X POST \ -H 'X-Auth-Token: [AUTH_TOKEN]' \ -H 'Content-Type: application/json; charset=UTF-8' \ -H 'Accept: application/json' \ --data-binary \ '{"label": "Lsyncd", "type": "agent.plugin", "details": {"file": "lsyncd-status.sh","args": ["arg1","arg2"]}}' \ 'https://monitoring.api.rackspacecloud.com/v1.0/[ACCOUNT_ID]/entities/[ENTITY_ID]/checks'
NOTE: ENTITY_ID is the Monitoring ID, NOT the server ID!!
Once the alert has been created, you can add the alarm manually via the Control Panel:
if (metric['lsyncd_status'] != 'running') { return new AlarmStatus(CRITICAL, 'Lsyncd Service is NOT running.'); } if (metric['lsyncd_status'] == 'running' && metric['percent_used_watches'] >= 80) { return new AlarmStatus(WARNING, 'Lsyncd is running but the number of directories has reached 80% of notify watches.'); } if (metric['lsyncd_status'] == 'running' && metric['percent_used_watches'] >= 95) { return new AlarmStatus(CRITICAL, 'Lsyncd is running but the number of directories has reached 95% of notify watches.'); } return new AlarmStatus(OK, 'Lsyncd Service is running.');
Make sure to test and save the alert.