Gửi thông báo (qua SMS, email) theo nhóm trong Nagios


Bài này sẽ trình bày các bước để khởi tạo và định nghĩa các contact cho những cá nhân và nhóm sẽ nhận được cảnh báo khi một máy tính, thiết bị hay dịch vụ nào đó trong hệ thống xảy ra sự cố.

  • Đầu tiên, cần thêm vào 2 câu lệnh để thực hiện việc gửi SMS tới các số điện thoại của các contact được định nghĩa trong tập tin contacts.cfg. Mở tập tin /usr/local/nagios/etc/objects/commands.cfg và bổ sung nội dung mẫu sau:

# ‘notify-host-by-sms’ command definition

define command{

command_name    notify-host-by-sms

command_line    /usr/bin/printf “%b” “*** Nagios ***\n Notification Type: $NOTIFICATIONTYPE$\n Host: $HOSTNAME$\n State: $HOSTSTATE$\n Address: $HOSTADDRESS$\n Info: $HOSTOUTPUT$\n Date/Time: $LONGDATETIME$” | /usr/local/bin/gammu –sendsms TEXT $CONTACTPAGER$

}

# ‘notify-service-by-sms’ command definition

define command{

command_name    notify-service-by-sms

command_line    /usr/bin/printf “%b” “*** Nagios ***\n Notification Type: $NOTIFICATIONTYPE$\n Service: $SERVICEDESC$\n Host: $HOSTALIAS$\n Address: $HOSTADDRESS$\n State: $SERVICESTATE$\n Date/Time: $LONGDATETIME$\n Additional Info: $SERVICEOUTPUT$” | /usr/local/bin/gammu –sendsms TEXT $CONTACTPAGER$

  • Sau đó, tùy chỉnh lại mẫu generic-contact mà Nagios cung cấp sẵn sau khi cài đặt để các contact được tạo ở bước sau sẽ nhận được thông báo qua SMS. Mở tập tin /usr/local/nagios/etc/objects/templates.cfg và sửa mục generic-contact như sau:

define contact{

name                            generic-contact

service_notification_period     24×7

host_notification_period        24×7

service_notification_options    w,u,c,r

host_notification_options       d,u,r

service_notification_commands   notify-service-by-sms

,notify-service-by-email

host_notification_commands      notify-service-by-sms

,notify-host-by-email

register                        0

}

  • Tiếp đến, thêm mới các contact cho những người muốn nhận thông báo qua email và SMS từ Nagios. Mở tập tin /usr/local/nagios/etc/objects/contacts.cfg và bổ sung nội dung mẫu sau:

define contact{

contact_name                    manthang

use                             generic-contact

alias                           Thang Man (Sysadmin)

email                           manthang@gmail.com

pager                           +84983xxxxxx //thay bằng sđt thực

}

define contact{

contact_name                    hoangbao

use                             generic-contact

alias                           Bao Hoang (Database)

email                           hoangbao@gmail.com

pager                           +84123xxxxxx //thay bằng sđt thực

}

  • Giờ ta sẽ gom nhóm các contact  để gửi các thông báo thích hợp. Ví dụ, các thông báo liên quan tới thiết bị mạng chỉ được gửi tới nhóm network, thông báo liên quan tới máy chủ  sẽ được gửi tới nhóm system, thông báo liên quan tới CSDL thì gửi tới nhóm database, v.v… Cũng trong tập tin contacts.cfg trên, tạo thêm các contactgroup theo mẫu sau:

define contactgroup{

contactgroup_name               db-admins

alias                           Database Administrators

members                         hoangbao,manthang

}

define contactgroup{

contactgroup_name               unix-admins

alias                           Linux System Administrator

members                         manthang

}

  • Việc khai báo các contact ở trên không có nghĩa là họ sẽ nhận được thông báo mà ta cần liên kết các contactgroup tới một dịch vụ hoặc máy tính nào đó cần giám sát. Ví dụ, trong thư mục /usr/local/nagios/etc/objects/ tạo ra 2 tập tin email-server.cfg và db-server.cfg rồi định nghĩa như sau:

// trong email-server.cfg

define host{

use                             linux-server

host_name                       email-server

alias                           Corporate Email Server

address                         192.168.1.16

contact_groups                  unix-admins //nhóm Unix sẽ nhận notify

}

// trong db-server.cfg

define service{

use                             generic-service

host_name                       mysql-db

service_description             MySQL Database Status

contact_groups                  db-admins          //nhóm DB sẽ nhận notify

check_command                   check_nrpe!check_mysql_db

}

  • Cuối cùng, chạy các lệnh sau để kiểm tra cấu hình và khởi động lại Nagios

# sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# sudo /etc/init.d/nagios restart
# sudo /etc/init.d/nagios reload

Giờ thử ngưng hoạt động của một máy tính, thiết bị hay dịch vụ nào đó thì sau một khoảng thời gian quy định trước, Nagios sẽ kiểm tra trạng thái và gửi đi SMS và email thông báo tình trạng của chúng tới số điện thoại và hộp thư của người quản trị.

Tham khảo:
http://www.thegeekstuff.com/2009/06/4-steps-to-define-nagios-contacts-with-email-and-pager-notification/

–manthang

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s