<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Alert on Details...</title>
    <link>https://www.deepreflect.net/tags/alert/</link>
    <description>Recent content in Alert on Details...</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Copyright © 2003 - 2026 Leonardo Rizzi</copyright>
    <lastBuildDate>Tue, 30 Jun 2026 03:28:29 +0200</lastBuildDate>
    <atom:link href="https://www.deepreflect.net/tags/alert/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Nagios - Twitter alerts</title>
      <link>https://www.deepreflect.net/2010/02/27/nagios-twitter-alerts/</link>
      <pubDate>Sat, 27 Feb 2010 13:22:23 +0000</pubDate>
       <guid isPermaLink="false">http://blog.deepreflect.net/?p=844</guid> 
      <description>&lt;p&gt;This entry will cover how to send nagios alerts to twitter, in the examples to follow using curl.&lt;/p&gt;
&lt;p&gt;Firstly edit &lt;code&gt;commands.cfg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And add the two following line:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;define command {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;command_name    notify-by-twitter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;command_line    /usr/bin/curl --basic --user &amp;#34;twitteruser:twitterpassword&amp;#34; --data-ascii &amp;#34;status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$&amp;#34; http://twitter.com/statuses/update.json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;define command {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;command_name    host-notify-by-twitter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;command_line    /usr/bin/curl --basic --user &amp;#34;twitteruser:twitterpassword&amp;#34; --data-ascii &amp;#34;status=[Nagios] $HOSTSTATE$ alert for $HOSTNAME$&amp;#34; http://twitter.com/statuses/update.json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now define a contact for this twitter service into: &lt;code&gt;contacts.cfg&lt;/code&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>This entry will cover how to send nagios alerts to twitter, in the examples to follow using curl.</p>
<p>Firstly edit <code>commands.cfg</code></p>
<p>And add the two following line:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>define command {
</span></span><span style="display:flex;"><span>command_name    notify-by-twitter
</span></span><span style="display:flex;"><span>command_line    /usr/bin/curl --basic --user &#34;twitteruser:twitterpassword&#34; --data-ascii &#34;status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$&#34; http://twitter.com/statuses/update.json
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>define command {
</span></span><span style="display:flex;"><span>command_name    host-notify-by-twitter
</span></span><span style="display:flex;"><span>command_line    /usr/bin/curl --basic --user &#34;twitteruser:twitterpassword&#34; --data-ascii &#34;status=[Nagios] $HOSTSTATE$ alert for $HOSTNAME$&#34; http://twitter.com/statuses/update.json
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Now define a contact for this twitter service into: <code>contacts.cfg</code></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>define contact{
</span></span><span style="display:flex;"><span>contact_name                    twitter
</span></span><span style="display:flex;"><span>service_notification_commands   notify-by-twitter
</span></span><span style="display:flex;"><span>host_notification_commands      host-notify-by-twitter
</span></span><span style="display:flex;"><span>service_notification_period 24x7
</span></span><span style="display:flex;"><span>host_notification_period 24x7
</span></span><span style="display:flex;"><span>service_notification_options a
</span></span><span style="display:flex;"><span>host_notification_options a
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Add this contact into your existing contact groups like this (in <code>contacts.cfg</code>):</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>define contactgroup{
</span></span><span style="display:flex;"><span>contactgroup_name       admins
</span></span><span style="display:flex;"><span>alias                   Nagios Administrators
</span></span><span style="display:flex;"><span>members                 nagiosadmin,sms_alert,twitter
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Then run a nagios prefly check to ensure you have no syntax errors, and restart nagios.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Perl - Zabbix SMS Allert</title>
      <link>https://www.deepreflect.net/2008/11/21/zabbix-sms-allert/</link>
      <pubDate>Fri, 21 Nov 2008 00:56:33 +0000</pubDate>
       <guid isPermaLink="false">http://blog.deepreflect.net/?p=330</guid> 
      <description>&lt;p&gt;Un netmonitor, non è un vero netmonitor se non fa squillare il telefono del sysadmin con un sms almeno 3 volte a notte, ecco qui uno script in perl per interfacciare zabbix con il servizio fornito da Mobyt tramite un POST http su un loro gateway, con qualche aggiustatina può essere usato anche con altri servizi analoghi.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#!/usr/bin/perl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Leonardo Rizzi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Version 0.3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# SMS sent throuth Mobyt gateway
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Designed for use without ip autentication only MD5 Hash
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Attention: there aren&amp;#39;t any check but message limit is of 160 charaters.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use Digest::MD5  qw(md5_hex);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use strict;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use LWP::UserAgent;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use HTTP::Request::Common qw(POST);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my ($operation, $qty, $rcpt, $query, $out, $ua, $ok, $ko, $data, $from);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my ($code, $id, $password);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$id=&amp;#34;username&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$password=&amp;#34;password&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ok=&amp;#39;SMS Sent Correctly&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ko=&amp;#39;SMS Not Sent&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$from= $ARGV[1];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$operation=&amp;#34;TEXT&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$qty = &amp;#39;h&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#attention this fuking provider don&amp;#39;t accept 00 for international area code only + if you use 00 you get sent error
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$rcpt = $ARGV[0];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$data = $ARGV[2];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$code = join &amp;#39;&amp;#39;, $id,$operation,$rcpt,$from,$data,$password;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my $ticket=md5_hex($code);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ua = new LWP::UserAgent;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ua-&amp;gt;agent(&amp;#34;SMS_MD5_Relay/0.2 &amp;#34; . $ua-&amp;gt;agent);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my $req = POST &amp;#39;http://smsweb.mobyt.it/sms-gw/sendsmart&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;id =$id,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;operation =&amp;#39;TEXT&amp;#39;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rcpt =$rcpt,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;from =$from,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;data =$data,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;qty =$qty,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ticket=$ticket
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my $res=$ua-&amp;gt;request($req);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;if ($res-&amp;gt;content =~ /^OK/)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;fine_ok (); }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;else
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{ fine_ko (); }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sub fine_ko () {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my $msg=shift;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print &amp;#34;$ko\n&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit (1);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sub fine_ok () {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;my $msg=shift;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print &amp;#34;$ok\n&amp;#34;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit (1);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <content:encoded><![CDATA[<p>Un netmonitor, non è un vero netmonitor se non fa squillare il telefono del sysadmin con un sms almeno 3 volte a notte, ecco qui uno script in perl per interfacciare zabbix con il servizio fornito da Mobyt tramite un POST http su un loro gateway, con qualche aggiustatina può essere usato anche con altri servizi analoghi.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>#!/usr/bin/perl
</span></span><span style="display:flex;"><span># Leonardo Rizzi
</span></span><span style="display:flex;"><span># Version 0.3
</span></span><span style="display:flex;"><span># SMS sent throuth Mobyt gateway
</span></span><span style="display:flex;"><span># Designed for use without ip autentication only MD5 Hash
</span></span><span style="display:flex;"><span># Attention: there aren&#39;t any check but message limit is of 160 charaters.
</span></span><span style="display:flex;"><span>use Digest::MD5  qw(md5_hex);
</span></span><span style="display:flex;"><span>use strict;
</span></span><span style="display:flex;"><span>use LWP::UserAgent;
</span></span><span style="display:flex;"><span>use HTTP::Request::Common qw(POST);
</span></span><span style="display:flex;"><span>my ($operation, $qty, $rcpt, $query, $out, $ua, $ok, $ko, $data, $from);
</span></span><span style="display:flex;"><span>my ($code, $id, $password);
</span></span><span style="display:flex;"><span>$id=&#34;username&#34;;
</span></span><span style="display:flex;"><span>$password=&#34;password&#34;;
</span></span><span style="display:flex;"><span>$ok=&#39;SMS Sent Correctly&#39;;
</span></span><span style="display:flex;"><span>$ko=&#39;SMS Not Sent&#39;;
</span></span><span style="display:flex;"><span>$from= $ARGV[1];
</span></span><span style="display:flex;"><span>$operation=&#34;TEXT&#34;;
</span></span><span style="display:flex;"><span>$qty = &#39;h&#39;;
</span></span><span style="display:flex;"><span>#attention this fuking provider don&#39;t accept 00 for international area code only + if you use 00 you get sent error
</span></span><span style="display:flex;"><span>$rcpt = $ARGV[0];
</span></span><span style="display:flex;"><span>$data = $ARGV[2];
</span></span><span style="display:flex;"><span>$code = join &#39;&#39;, $id,$operation,$rcpt,$from,$data,$password;
</span></span><span style="display:flex;"><span>my $ticket=md5_hex($code);
</span></span><span style="display:flex;"><span>$ua = new LWP::UserAgent;
</span></span><span style="display:flex;"><span>$ua-&gt;agent(&#34;SMS_MD5_Relay/0.2 &#34; . $ua-&gt;agent);
</span></span><span style="display:flex;"><span>my $req = POST &#39;http://smsweb.mobyt.it/sms-gw/sendsmart&#39;,
</span></span><span style="display:flex;"><span>[
</span></span><span style="display:flex;"><span>id =$id,
</span></span><span style="display:flex;"><span>operation =&#39;TEXT&#39;,
</span></span><span style="display:flex;"><span>rcpt =$rcpt,
</span></span><span style="display:flex;"><span>from =$from,
</span></span><span style="display:flex;"><span>data =$data,
</span></span><span style="display:flex;"><span>qty =$qty,
</span></span><span style="display:flex;"><span>ticket=$ticket
</span></span><span style="display:flex;"><span>];
</span></span><span style="display:flex;"><span>my $res=$ua-&gt;request($req);
</span></span><span style="display:flex;"><span>if ($res-&gt;content =~ /^OK/)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>fine_ok (); }
</span></span><span style="display:flex;"><span>else
</span></span><span style="display:flex;"><span>{ fine_ko (); }
</span></span><span style="display:flex;"><span>exit;
</span></span><span style="display:flex;"><span>sub fine_ko () {
</span></span><span style="display:flex;"><span>my $msg=shift;
</span></span><span style="display:flex;"><span>print &#34;$ko\n&#34;;
</span></span><span style="display:flex;"><span>exit (1);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>sub fine_ok () {
</span></span><span style="display:flex;"><span>my $msg=shift;
</span></span><span style="display:flex;"><span>print &#34;$ok\n&#34;;
</span></span><span style="display:flex;"><span>exit (1);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div>]]></content:encoded>
    </item>
  </channel>
</rss>
