How to Get Zabbix SMS Alerts Without a Modem

How to Get Zabbix SMS Alerts Without a Modem

· by Sam Greenspan

Zabbix SMS alerts have been around forever… but there’s a catch, and not a little catch. You need a physical GSM modem wired to the Zabbix server’s serial port.

It’s never good when the official solution feels like a daisy chained hack.

Which is, I’m guessing, why you’re here. You run Zabbix, you want texts when things break, and you’d rather not buy and mount a legacy GSM modem to make that happen.

The good news is… you don’t have to.

There’s a simple way to get a text out of Zabbix that never touches a modem (or any other extra piece of hardware), and in this article, I’m going to walk you through setting it up in a matter of minutes.

Zabbix SMS Alerts: Table of Contents

Setting Up SMS Alerts from Zabbix (No Modem Required)

We’re going to set this system up by using the type of alerts that Zabbix can send natively and without extra hardware: Emails. And we’re going to transform those emails into texts, since texts are a far more urgent medium.

Here’s how.

Step 1: Get an email-to-text address

We’ll use text.email, which is a service that turns emails into text messages. You send an email to a specific address, it arrives on your phone as an SMS.

(If you’re thinking… wait, this sounds vaguely familiar, didn’t Verizon use to do this? We’ll get into why that’s not an option anymore later in this article).

Head over to text.email and sign up for an account with your email address. You’ll get to pick a private subdomain for your account (so random people can’t send you email-to-texts), and your delivery address becomes your-number@your-subdomain.text.email.

Anything sent to that address lands on your phone as a text in seconds — Zabbix trigger alerts included.

We’ll drop this address into Zabbix in the next step, so copy it down.

Note: If multiple people need to receive the alerts, you can also create a distribution list in text.email, where one email can go out as a text to several recipients.

Step 2: Make sure Zabbix’s Email media type is configured

Zabbix’s Email media type is a full mail-server setup, not just a recipient field. If your Zabbix is already emailing you when things break, this is done and you can skip ahead.

If it’s never been set up, you’ll configure it under Alerts → Media types → Email (older versions keep this under Administration → Media types).

The fields you’re filling in are the usual SMTP ones (the SMTP server, the port, the HELO, the From address, connection security, and authentication if your mail server wants it).

Point these at your company’s real outbound mail server (or an authenticated relay you already use), so the mail is properly SPF/DKIM-aligned. (If your email-to-text alerts aren’t working, odds are it’s because you’re not using the right outbound mail server.)

Don’t know your company’s SMTP settings? You can point Zabbix straight at text.email’s own server. It’s the easy fallback, just not as bulletproof long-term as a real relay.

Step 3: Add your address

You’ll now need to assign your text.email address to a user in Zabbix.

Go to Users → Users, open the profile of whoever should be getting alerted, and on the Media tab add a new entry: Type Email, and put your text.email address in the Send to field.

Step 4: Point an action at your email-to-SMS address

This is also where you set when this media is allowed to fire: the active time window and the severity floor. If you only want texts for the serious stuff, this is the spot to say so.

And I definitely recommend saving text alerts for the most serious situations only, so you don’t grow numb to them. (Later in this article I have a few suggestions, but obviously you know what’s worth getting interrupted during dinner for better than I do.)

Under Alerts → Actions → Trigger actions, you’ve got conditions (say, trigger severity at Warning and up) and operations.

Add a “Send message” operation for that user. And if you want to be precise, send only to the Email media so these go specifically to your text.email address.

If you’ve ever wired up email alerts in Zabbix, none of this is new; you’re doing the exact same thing, just to an address that comes out as a text.

Step 5: One thing worth tuning: keep it short

You’re producing an SMS at the end of this, so a verbose alert message gets chopped or split into multiple texts.

Decide what you actually need to see on a lock screen (usually the host and what broke) and trim the message template to that. A subject like Disaster: web01 unreachable reads fine on a phone.

Also, if you want, you can set up that SMS template in your text.email dashboard as well.

Is This Really the Best Way to Get SMS Alerts From Zabbix?

Is email-to-text really the smoothest path to Zabbix alerts?

Spoiler: Yes. But here’s the long version where I’ll run down the alternatives, so you know what you’re skipping.

The GSM modem path

Obviously, you know about this; odds are you wound up at this article because you were specifically trying to find a way not to do this.

The modem attachment rig is the built-in media type that Zabbix literally named SMS, so to them, yes, this is the official way.

Of course, there are lots of reasons why it’s a non-starter for most people: it needs a serial GSM modem physically wired to the server, a SIM with a live plan, PIN persistence sorted out so it survives a reboot, serial-port permissions for the Zabbix process. And, someone (aka: YOU) who has to deal with setting that up and maintaining it.

The modems the docs name for testing are old GSM modules (a Siemens MC35, which was released in the year 2000) which tells you how long this legacy feature has been collecting dust.

On top of that, because there’s one modem, it sends one message at a time: during an alert storm, your texts queue up behind each other exactly when you least want them to.

If you’ve already got a modem racked next to a bare-metal server, fine. If you don’t, again, happy to see you here looking for a better alternative.

The DIY webhook route

Zabbix’s webhook media type runs server-side JavaScript and can call any HTTP endpoint. That means you can point it at an SMS provider’s API (Twilio, ClickSend, Amazon, and the like) and use their texting infrastructure.

But now you own a webhook.

That’s an API key, a payload, a provider account, and a little blob of JavaScript that runs every single time something breaks. Those are other moving parts that can fail silently (ironically without texting you that they failed).

But there’s also an even more insidious potential issue here, one you’ve likely never heard of.

Sending automated SMS messages in the U.S. drags you into the world of A2P 10DLC. That’s a new-ish, mandatory carrier registration process where you register your business, describe your “campaign,” and wait for approval. Without that, your texts will silently fail.

Overall, this is just a whole lot of overhead for “text me when a server goes down.”

The email-to-text path skips all of it. text.email handles the compliance and the SMS delivery; you’re just sending email, which Zabbix already does.

Don’t the cell phone companies offer this?

If the email-to-text idea rang a bell, that’s because there used to be a version of it built into your cell phone bill.

Every major US carrier ran an email-to-SMS gateway; you’d email 5551234567@vtext.com for Verizon or 5551234567@txt.att.net for AT&T and so on, and it’d land as a text.

Plenty of monitoring configs had those addresses plugged in as alert recipients for years.

Then every single one of the carriers shut them down or let them rot into unreliability. There are a few reasons (too much spam and all those compliance issues we talked about earlier are the big ones). But suffice to say, they’re gone and aren’t coming back.

If your old Zabbix action is still pointing at one of those, it’s mailing into a hole.

A full-on paging platform

An email-to-text gateway gets a text to your phone, reliably, without hardware. But it’s not a full paging platform like PagerDuty.

There’s no on-call calendar or team rotation. (However, like PagerDuty, text.email has two-way communications. So someone can reply “ACK” and that response will go back to your email.)

If you need real escalation across a large team, that’s what PagerDuty or Opsgenie are for.

That said, don’t undersell Zabbix here.

The escalation logic lives in Zabbix actions, not in the SMS layer: repeated notifications, escalation steps, sending to different people as a problem ages.

So even with a plain text on the end, you can do more than fire-once-and-hope.

You won’t get an on-call calendar, but you can absolutely set up “text me, and if nobody’s acknowledged it in fifteen minutes, text me again and text the team lead as well.”

For a lot of smaller shops without the budget or real need for a paging platform, that’s perfect. The alert needs to find one or two people, fast, on their phones. You don’t need a platform for that.

Get Your Zabbix SMS Alerts Running in the Next 10 Minutes

You could not set up a modem for Zabbix SMS alerts today before lunch. But you could absolutely configure these email-to-text alerts, with plenty of time to spare.

The process, start to finish, is quick:

  1. Sign up for text.email to get your email-to-text address.
  2. Make sure Zabbix’s Email media type is configured (and routed through an authenticated mail server, so it doesn’t get spam-filtered).
  3. Drop in the address and assign it an action.
  4. Let it run.

Want to test out this whole process before you sign up for anything? In Zabbix, just put in your-number@text.email (your real 10-digit number), trigger a test alert, and watch the text land on your phone. (You don’t even need to sign up for anything at text.email in advance.)

After that, the next time a critical issue happens, Zabbix sends an email, text.email turns it into a text, and a few seconds later your phone buzzes.

Which is what you wanted from Zabbix’s SMS alerts in the first place, just without the 26-year-old modem.

Which Zabbix Triggers Deserve a Text?

You already set a severity floor during the setup process.

But in case you’re reading this all first before you set up email-to-text alerts and need/want a refresher, Zabbix gives you six severities: Not classified, Information, Warning, Average, High, Disaster.

The texting line should probably sit around High. Maybe Average.

Here’s my rough breakdown you can use as a jumping off point.

Worth a text:

  • Zabbix agent unavailable (nodata). The host went dark, so you’re now blind to everything else it would’ve told you.
  • A host or critical service that’s down and won’t recover without a human.
  • Disk space critically low.
  • Anything you’ve set to Disaster because it maps to a real SLA.

Fine on email:

  • High CPU utilization and load average.
  • High memory and swap usage.
  • System time drifting out of sync.
  • Host restarted.

The rule of thumb I was using here: text the things that stay broken until someone shows up, and leave the self-healing noise (or things that can wait a little bit) on email.

Time to Get Started with Zabbix SMS Alerts

Alright. You now know — probably more in depth than you ever planned — about the best alternative to using a separate physical modem for Zabbix SMS alerts. And hey, I tossed in a fairly long history of all the options for free. You’re welcome.

To get started with your email-to-SMS alerts, head over to text.email.

Grab your unique email-to-text address, plug it into Zabbix, make sure everything’s configured right, and you’ll be all set with easy, reliable text alerts. All without having to spend a whole lot of time, a whole lot of money — or, probably, both — setting up an external modem.

Try text.email free

Send an email to
your-number@text.email
and receive it as a text in seconds. No signup required.