Oct 072015
 

I’ve finally gotten around to working on my projects again after doing some exams.

I wanted to get some ADSL monitoring going so I could get some history on the state of my line, get sync rates etc.

The first thing I needed to do was get the modem stats via a script as Zabbix couldn’t login to the modem properly.
I did a quick python script that can be called from Zabbix to get the modem stats.
Continue reading »

Share
Jul 162015
 

I recently had a thought…I wonder if Zabbix can graph the fuel prices near me.
This thought was triggered by a news article I read about how the petrol station cycles have changed so that the cheapest fuel is on a Monday rather than a Wednesday like it used to be.
Continue reading »

Share
Jun 222015
 

I had to build my own email sender script for Zabbix as I needed some mangling done on the subjects that was being sent out.
I used python to build it so that I could then use some regex to strip out the garbage that I needed stripped out.

First thing you need to do is to create the email script for Zabbix to run when it receives an alert.
The default location for these scripts is /usr/lib/zabbix/alertscripts/ but this can be customised from the Zabbix server configuration file.

This is the python script that I used, I named it emailalert.py, so the full path for this script should be /usr/lib/zabbix/alertscripts/emailalert.py.

In this example script, I’m only removing text <EMAIL> from any subjects that may have it. This is because some alerts that are being generated have an <EMAIL> tag to enable Zabbix to recognise that the alert needs to go through email, however the team receiving the alert doesn’t want the <EMAIL> tag on the subject line of the email they receive.

#!/usr/bin/python
import smtplib
import sys
import re

email = sys.argv[1]
subject = sys.argv[2]
body = sys.argv[3]

subject = re.sub('<EMAIL>',"",subject)

sender = "Zabbix <zabbix@example.com>"

message = """From: Zabbix <zabbix@example.com>
To: """+email+"""
Subject: """+subject+"""

"""+body+"""
"""

try:
smtpObj = smtplib.SMTP("smtpserver.example.com")
smtpObj.sendmail(sender,email,message)
print "Success"
except SMTPException:
print "Unable to send email"

Once the script has been created, you’ll need to add the script to the Media Types under Administration in Zabbix.
Create a new media type, and give it a name. I’ve called mine Email Script.
For the type, choose Script, and then for the Script Name, use the name that you’ve given the script. In my case, I’ve called it emailalert.py

My Media type configuration

My Media type configuration

Once this is done, you’ll need to set up email addresses for users that need emails through this new script by going to each user, and setting up a new media entry with the type being Email Script

Share
Jun 152015
 

I recently found out that Telstra has a SMS API, and for now, it’s free to use for up to 1000 SMSes a month for Australians (sorry rest of the world).

As I’ve been building up Zabbix for our work environment where SMSes are used regularly to alert techs to critical alerts, this piqued my interest as this means that for now, I could have SMS alerts for my homelab, and potentially implement the same solution at work.
Continue reading »

Share
Jun 082015
 

In the previous post, I got the Raspberry Pi outputting the values from the temperature sensors via SNMP.

In this post, I’ll be configuring Zabbix to monitor and record these values so that I can see how cold it was last night.
You’ll need to note down the OIDs that were configured on the SNMP agent in the last post so you can use them in this post.

Monitoring the Pi

Adding it in

The Raspberry Pi will need to be monitored in some way by Zabbix in order for us to record the temperatures from the SNMP agent that we’ve set up.
You’ll need to add the Raspberry Pi as a host in Zabbix, and give it an IP address under the SNMP interfaces section. I’ve added the SNMP OS Linux template to monitor the rest of the Pi stats, but that’s not required for monitoring temperatures.

Continue reading »

Share