Thiết lập cảnh báo hệ thống bằng zabbix qua sms

Thiết lập cảnh báo qua sms

Mặc định, zabbix cho phép gửi sms cảnh báo đến số điện thoại người nhận thông qua modem gsm cắm thẳng vào server:  GSM modem: “/dev/ttyS0”

Tuy nhiên trong thực tế không phải lúc nào cũng có thẻ cắm modem gsm trực tiếp vào server như: Server thuê, Hoặc cài trong môi trường ảo hóa. Vì vậy ta sẽ cảnh báo zabbix qua sms thông qua 1 API gateway, việc gửi sẽ thông qua đường internet.

Công cụ cần thiết:

Tham khảo cài đặt zabbix server trong bài viết: hướng dẫn cài đặt zabbix server

Tham khảo cài đặt ozekisms trong bài viết:  Hướng dẫn cài sms gateway với usb 3g

Đăng nhập vào sms gateway vào tạo 1 user mới:

cảnh báo zabbix qua sms gateway - config

cảnh báo zabbix qua sms - config user name

 

Username: zabbix

Password: 123456

Vào edit/outbound routing chọn add route

nhập thông số như hình.

Có nhiều cách để gửi SMS qua API của ozekisms: PHP, C#, shell, Perl…. ở đây ta sẽ dùng Perl cho đơn giản.

Trước tiên cài dặt Perl (nếu chưa cài)

yum install perl perl-libwww-perl

Tương tự như tạo script gửi mail trong bài viết thiết lập cảnh báo hệ thống bằng zabbix qua email ta sẽ tạo file sendsms.pl trong thư mục /usr/local/share/zabbix/alertscripts/

nano /usr/local/share/zabbix/alertscripts/sendsms.pl

Nội dung:

#!/usr/bin/perl

#Perl cript to send sms
#Author: [email protected]
#use for sms gateway.
#last modified 04, Nov, 2017

use HTTP::Request;

use LWP::UserAgent;

use URI::Escape;

use Getopt::Long;

# Agrument

my $nguoinhan = $ARGV[0];
my $noidung = $ARGV[1];


###############################################

###            Ozeki NG informations        ###

###############################################

$host = "192.168.19.142";

$port = "9501";

$username = "zabbix";

$password = "123456";

$recipient = $nguoinhan;

#$message = $noidung;





###############################################

### Putting together the final HTTP Request ###

###############################################

$url  = "http://"       . $host;

$url .= ":" . $port;

$url .= "/api?action=sendmessage&";

$url .= "username="     . uri_escape($username);

$url .= "&password="    . uri_escape($password);

$url .= "&recipient="   . uri_escape($recipient);

$url .= "&messagetype=SMS:TEXT";

$url .= "&messagedata=" . uri_escape($noidung);





################################################

####            Sending the message          ###

################################################

$request = HTTP::Request->new(GET=>$url);

$useragent = LWP::UserAgent->new;

$response = $useragent->request($request);





################################################

###        Verifying the response            ###

################################################

if ($response->is_success) {

    print "Message successfully sent \n"

} else {

    print "Message not sent! Please check your settings! \n"

}

Tiếp theo vào Administration / Media Types

Xem tiếp:   Theo dõi nhiệt độ và độ ẩm môi trường với Zabbix

Thêm media type: sendsms thiết lập như hình vẽ

 

Bấm add để thêm media type

Thêm số diện thoại nhận sms cho user:

Các bước thiết lập triggers và Actions để gửi thông báo qua 1 media types vui lòng xem tại bài viết: https://toiyeuit.com/thiet-lap-canh-bao-thong-bang-zabbix-qua-email/

Chúc các bạn thành công!

Check Also

Theo dõi nhiệt độ và độ ẩm môi trường với Zabbix

Nhiệt độ và hơi ẩm là kẻ thù của mọi loại thiết bị điện tử, …