Thiết lập cảnh báo zabbix 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:
-
-
Sms gateway: ozekisms
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:
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
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!