terminal addict
Cadet
- Joined
- Mar 31, 2014
- Messages
- 1
There may be other (proper?) ways of doing this. If so, wonderful! If not, this is for you. :)
Would you like to issue your own custom alert (http://doc.freenas.org/index.php/Alert)? Well, the alert scripts are pretty straightforward. Here is a script that watches for the existence of the file /tmp/my_alert. The first line of /tmp/my_alert can optionally set the alert to either WARN or CRIT.
Copy and save to /usr/local/www/freenasUI/system/alertmods/my_alert.py. Don't forget to mount the filesystem for writing first (mount -uw /). I would recommend a reboot after adding the script so that it is registered in the web GUI. A reboot will also return the root filesystem to read-only. Might be other ways to do this, but I found this method the easiest.
Why use this? Well, if you have a cronjob monitoring something specific, it can create the /tmp/my_alert file. Note that CRIT alerts will send emails to the root email account. WARN alerts do not, but the alert icon will blink yellow.
Edit: Title should have been Creating a Custom Alert. Ugh. Need sleep.
Edit 2: Thanks for the edits/fixes! :)
Would you like to issue your own custom alert (http://doc.freenas.org/index.php/Alert)? Well, the alert scripts are pretty straightforward. Here is a script that watches for the existence of the file /tmp/my_alert. The first line of /tmp/my_alert can optionally set the alert to either WARN or CRIT.
Code:
import os from freenasUI.system.alert import alertPlugins, Alert, BaseAlert class MyAlert(BaseAlert): def run(self): my_alert_type = Alert.WARN my_alert_msg = "my_alert has triggered an alert" if os.path.exists('/tmp/my_alert'): with open ("/tmp/my_alert", "r") as alertfile: my_alert_data=alertfile.readlines() if len(my_alert_data) == 1: my_alert_msg = my_alert_data[0].rstrip('\n') elif len(my_alert_data) > 1: if my_alert_data[0] == 'WARN\n': my_alert_type = Alert.WARN elif my_alert_data[0] == 'CRIT\n': my_alert_type = Alert.CRIT my_alert_msg = my_alert_data[1].rstrip('\n') return [ Alert( my_alert_type, my_alert_msg ), ] alertPlugins.register(MyAlert)
Copy and save to /usr/local/www/freenasUI/system/alertmods/my_alert.py. Don't forget to mount the filesystem for writing first (mount -uw /). I would recommend a reboot after adding the script so that it is registered in the web GUI. A reboot will also return the root filesystem to read-only. Might be other ways to do this, but I found this method the easiest.
Why use this? Well, if you have a cronjob monitoring something specific, it can create the /tmp/my_alert file. Note that CRIT alerts will send emails to the root email account. WARN alerts do not, but the alert icon will blink yellow.
Edit: Title should have been Creating a Custom Alert. Ugh. Need sleep.
Edit 2: Thanks for the edits/fixes! :)