Tải bản đầy đủ (.pdf) (20 trang)

Chuyên đề IT monitoring TRIỂN KHAI hệ THỐNG GIÁM sát và CẢNH báo QUA EMAIL, SMS (DÙNG USB 3g) với NAGIOS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (535.94 KB, 20 trang )

Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

Chuyên đề IT Monitoring
TRIỂN KHAI HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO QUA
EMAIL, SMS (DÙNG USB 3G) VỚI NAGIOS
____________________________________________________

Mẫn Thắng |

/>
Tp. Hồ Chí Minh, tháng 9/2012


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

MỤC LỤC
L I NÓI Đ U ................................................................................................................................ 3
V TÁC GI .................................................................................................................................. 4
1

2

3

4



5

Cài đ t Nagios trên CentOS .................................................................................................... 5
1.1

Yêu c u chuẩn bị .............................................................................................................. 5

1.2

Các bư c thực hiện ........................................................................................................... 5

Giám sát các máy Unix/Linux ................................................................................................ 7
2.1

Yêu c u chuẩn bị .............................................................................................................. 7

2.2

Các bư c thực hiện ........................................................................................................... 8

2.2.1

Thực hiện trên máy Linux/UNIX

xa...................................................................... 8

2.2.2

Thực hiện trên máy Nagios ....................................................................................... 9


Ki m tra tr ng thái c a Oracle Database .............................................................................. 12
3.1

Yêu c u và chuẩn bị ....................................................................................................... 12

3.2

Các bư c thực hiện ......................................................................................................... 12

3.2.1

Thực hiện trên máy Oracle Database ...................................................................... 12

3.2.2

Thực hiện trên máy Nagios ..................................................................................... 12

G i thông báo qua SMS b ng USB 3G ................................................................................ 13
4.1

Yêu c u chuẩn bị ............................................................................................................ 14

4.2

Các bư c thực hiện ......................................................................................................... 14

4.2.1

K t nối USB 3G t i máy Nagios ............................................................................ 14


4.2.2

Biên dịch và cài đ t Gammu ................................................................................... 14

4.2.3

C u hình Gammu đ g i SMS ................................................................................ 15

4.2.4

C u hình Nagios đ g i SMS theo nhóm................................................................ 16

G i thơng báo qua email v i SendEmail .............................................................................. 18
5.1

Các bư c thực hiện ......................................................................................................... 18

Mẫn Thắng |

2


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

L I NÓI Đ U
Ngày nay, hệ thống giám sát đóng m t vai trị quan trọng giúp theo dõi, ki m tra sức khỏe, cung

c p thông tin và đưa ra c nh báo khi có v n đ x y ra v i các thành ph n trong h t ng, ứng d ng
công nghệ thông tin c a tổ chức. M t hệ thống giám sát tốt c n có kh năng phát hiện nhanh
chóng và chính xác những sự cố x y ra và kịp th i g i thông báo qua nhi u phương tiện như màn
hình, email, tin nh n t i ngư i qu n trị hệ thống.
Nh m đáp ứng nhu c u thực t c a nhi u tổ chức và doanh nghiệp trong việc giám sát và c nh
báo kịp th i tình tr ng c a hệ thống, tài liệu này sẽ đi vào tìm hi u và c u hình tính năng g i
thơng báo c a Nagios qua email và qua SMS s d ng thi t bị USB 3G làm modem. Ngồi ra, tài
liệu cịn cung c p thêm hư ng dẫn giúp ki m tra tr ng thái up/down c a Oracle Database và máy
Unix/Linux s d ng các plugin c a Nagios. Riêng việc thực hiện c nh báo qua SMS đã được tác
gi thực hiện thành công trên c môi trư ng o hóa lẫn máy ch thực và bư c đ u làm việc tốt
v i thi t bị D-Com 3G c a Viettel.
Tài liệu thích hợp v i các qu n trị viên đã làm quen v i hệ đi u hành Linux và có ki n thức cơ
b n v công c giám sát m ng Nagios. Dù đã th nghiệm kỹ lưỡng nhưng có th vẫn cịn thi u
sót nên tác gi r t mong nhận được ph n hồi tích cực t mọi ngư i.
Chân thành c m ơn!

Mẫn Thắng |

3


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

V TÁC GI
Mẫn Th ng hiện đang là Kỹ sư Hệ thống t i Phịng B o mật và Tích hợp thu c Công ty Cổ ph n
Tin học L c Tiên, v i chuyên môn là các gi i pháp ứng d ng, tích hợp trên n n mã nguồn m và
các dịch v tư v n, thi t k hệ thống, h t ng CNTT theo hư ng b o mật, đánh giá và kh c ph c

lỗ hổng v an ninh thông tin cho các tổ chức và doanh nghiệp. Ngồi gi làm, tác gi cịn thích
chia sẻ, trao đổi v i c ng đồng v các tin tức, bài vi t nổi bật trong lĩnh vực an tồn thơng tin t i
Blog () và Fanpage ( />V L C TIÊN JSC
Được thành lập vào tháng 10 năm 2008, v i đ i ngũ các kỹ sư tốt nghiệp ngành CNTT t các
trư ng hàng đ u Việt Nam và Th y Sĩ, hiện nay L c Tiên là nhà cung c p chuyên nghiệp các
gi i pháp ph n m m qu n trị doanh nghiệp trên môi trư ng Internet (CRM, HRM, Project
Management, Collaboration, Groupware, Portal,ầ), các thi t bị b o mật (UTM, RAD – Remote
Access Device, Wireless Access Controller), các gi i pháp tích hợp trên n n mã nguồn m và
các dịch v tư v n, thi t k hệ thống, h t ng CNTT theo hư ng b o mật. Đ c biệt, L c Tiên là
đơn vị đ u tiên trong nư c s n xu t thành công thi t bị b o mật tích hợp RexShield UTM v i
các tính năng như: tư ng l a, qu n trị ngư i dùng, lọc n i dung, chống th t thoát dữ liệu...

Mẫn Thắng |

4


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
1

CÀI Đ T NAGIOS TRÊN CENTOS

Tuy không đ cập t i các tùy chọn cài đ t nâng cao nhưng chỉ v i các bư c cơ b n trong ph n
này cũng đáp ứng ph n l n nhu c u c a đ i đa số ngư i dùng muốn b t đ u làm quen v i
Nagios. Sau khi làm xong thì m c định:





1.1




1.2

Nagios và các plug-in sẽ n m dư i thư m c là: /usr/local/nagios
Nagios tự đ ng giám sát vài thông số c a máy c c b như: CPU load, disk usage, v.v..
Nagios web interface có th được truy cập qua URL: http://localhost/nagios/
Yêu cầu chuẩn bị
Các gói ph n m m c n được cài trư c là: Apache, Perl, PHP, GCC Compiler, GD
development library. N u chưa có thì có th cài nhanh thông qua lệnh yum như sau:
# yum install httpd php perl gcc glibc glibc-common gd gd-devel

T i gói mã nguồn m i nh t c a Nagios Core 3.4.1 và Nagios Plugins 1.4.15 t i 2 URL sau:
/> />M t số giai đo n cài đ t c n quy n root (có d u # đ ng trư c câu lệnh).
Các bước thực hiện

1. Tài kho n và nhóm
- T o m i user nagios và group nagcmd
# useradd -m nagios
# passwd nagios
# groupadd nagcmd

-

Sau đó thêm 2 user nagios, apache vào group nagcmd

# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache

2. Biên dịch và cài đ t Nagios
- Gi i nén gói mã nguồn c a Nagios và chuy n vào thư m c m i được t o ra
# tar xzf nagios-3.4.1.tar.gz
# cd nagios

-

Ch y configure script v i tham số truy n vào là group nagcmd
# ./configure --with-command-group=nagcmd

-

Biên dịch Nagios
# make all

-

L n lượt cài đ t các tập tin binary, init script, sample config và thi t lập quy n h n truy cập
trên thư m c chứa external command
# make install
# make install-init

Mẫn Thắng |

5



Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
# make install-config
# make install-commandmode

3. C u hình Nagios web interface
- Cài đ t tập tin web config c a Nagios vào thư m c /etc/httpd/conf.d c a Apache
#make install-webconf

-

T o tài kho n nagiosadmin và đ t mật khẩu đ truy cập vào web interface c a Nagios
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

-

Kh i đ ng l i Apache Webserver
# service httpd restart

4. Biên dịch và cài đ t Nagios Plugins
- Gi i nén gói mã nguồn c a Nagios Plugins và chuy n vào thư m c m i được t o ra
# tar xzf nagios-plugins-1.4.15.tar.gz
# cd nagios

-

Ch y configure script v i tham số user và group truy n vào đ u là nagios
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios


-

Biên dịch Nagios Plugins
# make

-

Cài đ t Nagios Plugins
# make install

5. Kh i ch y Nagios
- Thêm Nagios vào danh sách các system service và tự đ ng kh i đ ng cùng hệ thống
# chkconfig --add nagios
# chkconfig nagios on

-

Xác nhận các các tập tin c u hình cho Nagios đang làm việc đúng
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

-

N u khơng có lỗi gì thì kích ho t Nagios
# service nagios start

6. Chỉnh l i thi t lập c a SELinux
M c định SELinux trên CentOS ho t đ ng ch đ Enforcing. Đi u này có th dẫn t i thơng
báo ắInternal Server ErrorẰ khi th truy cập vào Nagios CGI. Thực hiện các bư c sau đ
ki m tra và kh c ph c v n đ này.

- Ki m tra n u SELinux đang Enforcing mode
# getenforce

-

Đ t SELinux

ch đ Permissive

# setenforce 0

Đ thi t lập này có hiệu lực mãi mãi thì chỉnh s a l i trong tập tin /etc/selinux/config

Mẫn Thắng |

6


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
-

Thay vì ph i t t SELinux ho c chuy n v ch đ Permissive, có th s d ng lệnh sau đ ch y
các CGI dư i ch đ Enforcing/Targeted:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

7. Đăng nhập vào Nagios web interface

Vào địa chỉ http://localhost/nagios (ho c thay localhost b ng địa chỉ IP c a máy Nagios).
Sau đó đăng nhập th v i tên tài kho n là nagiosadmin và mật khẩu thi t lập bư c 3. Lưu Ủ
là c n c u hình l i rule cho firewall n u muốn truy cập t xa t i máy Nagios.
2

GIÁM SÁT CÁC MÁY UNIX/LINUX

Ph n này sẽ trình bày cách cài đ t và c u hình cho NRPE - m t addon cho Nagios giúp thực thi
các plugin khác đ giám sát/ki m tra các tài nguyên (CPU load, memory usage, swap usage, disk
usage, logged in users, running processes, v.v..) và dịch v (http, ftp, v.v..) trên các máy
Linux/Unix xa.
NRPE addon bao gồm 2 thành ph n:



Plugin check_nrpe: ch y trên máy Nagios
Daemon NRPE: ch y trên máy Linux/Unix

xa c n giám sát

Khi máy Nagios c n ki m tra các tài nguyên/dịch v trên máy Linux/Unix






xa:

Nagios sẽ thực thi plugin check_nrpe và cho bi t tài nguyên/dịch v nào c n ki m tra

Plugin check_nrpe sẽ liên l c v i daemon NRPE trên máy xa. Kênh liên l c có th được
b o vệ b ng SSL
Daemon NRPE sẽ ch y các plugin thích hợp (như check_disk, check_load, check_http, v.v..)
đ check các tài nguyên/dịch v được yêu c u
NRPE daemon truy n k t qu cho check_nrpe, sau đó plugin này tr k t qu l i cho Nagios

Lưu Ủ, NRPE daemon yêu c u các Nagios plugin c n được cài đ t trên các máy Linux/Unix
2.1





xa.

Yêu cầu chuẩn bị
Th nghiệm trên môi trư ng CentOS 6.2. Khi làm c n có quy n root trên máy Linux/Unix
c n giám sát và tài kho n nagios trên máy Nagios.
Quá trình biên dịch và cài đ t thì c n có các gói make, gcc, perl, openssl, openssl-devel
T i gói mã nguồn m i nh t c a NRPE 2.13 và Nagios Plugins 1.4.15 t i 2 URL sau:
/> />
Mẫn Thắng |

7


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

Các bước thực hiện

2.2

2.2.1 Thực hiện trên máy Linux/UNIX ở xa
1. Chuy n qua root và t o thêm tài kho n m i là nagios
# su – root
# /usr/sbin/useradd nagios
# passwd nagios

2. Gi i nén gói Nagios plugins rồi ti n hành biên dịch và cài đ t
#
#
#
#
#

tar xzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure –-with-nagios-user=nagios –-with-nagios-group=nagios
make
make install

3. S a l i quy n h n truy cập cho các thư m c chứa Nagios plugin
# chown nagios.nagios /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios/libexec

4. Cài đ t xinetd
# yum install xinetd


5. Cài đ t NRPE daemon
- Gi i nén gói NRPE rồi ti n hành biên dịch
#
#
#
#

-

tar xzf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all

Cài đ t NRPE plugin (chỉ đ ki m tra), daemon, và tập tin c u hình
# make install-plugin
# make install-daemon
# make install-daemon-config

-

Ch y NRPE daemon như là m t dịch v dư i xinetd
# make install-xinetd

-

M tập tin /etc/xinetd.d/nrpe và thêm vào địa chỉ IP c a máy Nagios
only_from

-


= 127.0.0.1 <nagios_ip_address>

M tập tin /etc/services và thêm vào NRPE daemon
nrpe

-

dòng only_from

5666/tcp # NRPE

Kh i đ ng l i xinetd
# service xinetd restart

6. Ki m tra NRPE daemon

Mẫn Thắng |

8


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
-

Đ m b o r ng NRPE daemon đang ch y dư i xinetd
# netstat -at | grep nrpe

tcp
0
0

-

*:nrpe

*:*

LISTEN

Đ m b o r ng NRPE đang làm việc đúng
# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.13

7. T o rule trên firewall
Đ đ m b o r ng firewall c c b trên máy Linux/Unix xa cho phép NRPE daemon được
truy cập t các máy Nagios, t o rule sau và lưu l i c u hình c a iptables.
# iptables –I INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
# service iptables save

8. Tùy chỉnh l i các NRPE command
- Trong tập tin c u hình mẫu c a NRPE daemon có chứa m t vài định nghĩa câu lệnh
(command definition) mà ta c n dùng đ giám sát các tài nguyên và dịch v trên máy c c b .
Các command definition này sẽ định nghĩa các command đ ch y m t số plugin cho Nagios
được cài đ t bư c 2. Có th chỉnh l i các command definition, thêm command m i, v.v..
b ng cách s a tập tin /usr/local/usr/local/nagios/etc/nrpe.cfg
- Dùng m t vài command có s n sau đ ki m tra các tài nguyên trên máy c c b
#

#
#
#
#

/usr/local/nagios/libexec/check_nrpe
/usr/local/nagios/libexec/check_nrpe
/usr/local/nagios/libexec/check_nrpe
/usr/local/nagios/libexec/check_nrpe
/usr/local/nagios/libexec/check_nrpe

-H
-H
-H
-H
-H

localhost
localhost
localhost
localhost
localhost

-c
-c
-c
-c
-c

check_users

check_load
check_hda1
check_total_procs
check_zombie_procs

Như vậy là xong ph n cài đ t và c u hình NRPE cho máy Linux/Unix c n giám sát.
2.2.2 Thực hiện trên máy Nagios
1. Gi i nén gói check_nrpe rồi ti n hành biên dịch và cài đ t
#
#
#
#
#

tar xzf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure
make all
make install-plugin

2. Ki m tra việc liên l c v i NRPE daemon
# /usr/local/nagios/libexec/check_nrpe -H 192.168.137.3

(192.168.137.3 là địa chỉ IP c a máy Linux/Unix

xa)

Output c n như sau:
NRPE v2.13


Mẫn Thắng |

9


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
Lưu Ủ có th firewall trên máy Nagios ho c firewall giữa nó v i máy
l c. Lúc này c n đi u chỉnh l i rule cho thích hợp.

xa c n tr việc liên

3. T o m t command definition đ s d ng check_nrpe plugin
M tập tin /usr/local/nagios/etc/commands.cfg và thêm vào các dòng sau:
define command{
command_name
command_line
}

check_nrpe
#USER1#/check_nrpe -H #HOSTADDRESS# -c #ARG1#

K ti p, ta sẽ thêm vào c u hình c a Nagios các tài nguyên, dịch v c n được giám sát trên
máy xa
4. T o host và service definition
- Trư c tiên nên t o m i m t template cho các lo i máy khác nhau sẽ được giám sát.
template được t o có tên là linux.cfg:


đây

# vi /usr/local/nagios/etc/objects/linux.cfg

Dư i đây là n i dung mẫu, tùy nhu c u mà thay đổi các m c cho thích hợp:
define host{
name
use
check_period
check_interval
retry_interval
max_check_attempts
check_command
notification_period
notification_interval
notification_options
contact_groups
register
}

-

linux-box
generic-host
24×7
5
1
3
check-host-alive
24×7

30
d,r
admins
0

Sau đó, t o m i m t object definition cho máy c n giám sát và definition cho các tài nguyên,
dịch v ch y trên máy đó. đây l y tên tập tin là centos.cfg:
# vi /usr/local/nagios/etc/objects/centos.cfg

Dư i đây là n i dung mẫu, tùy nhu c u mà thay đổi các m c cho thích hợp:
define host{
use
host_name

Mẫn Thắng |

linux-box
centos-vm

10


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
alias
address

Oracle DB 11g

192.168.137.3

}
define service{
use
host_name
service_description
check_command

generic-service
centos-vm
CPU Load
check_nrpe!check_load

}
define service{
use
host_name
service_description
check_command

generic-service
centos-vm
Current Users
check_nrpe!check_users

}
define service{
use
host_name

service_description
check_command

generic-service
centos-vm
Total Processes
check_nrpe!check_total_procs

}

Ngoài 3 tài nguyên cơ b n trên là: CPU Load, Current Users, Total Processes, ta có th
giám sát thêm nhi u dịch v khác như SSH, HTTP, v.v..
-

Cuối cùng, thêm 2 object trên vào tập tin c u hình chính c a Nagios b ng cách m tập tin
/usr/local/nagios/etc/nagios.cfg và thêm vào 2 dòng sau:
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
cfg_file=/usr/local/nagios/etc/objects/centos.cfg

5. Ki m tra l i các tập tin c u hình và kh i đ ng l i Nagios
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart

6. Truy cập vào web interface c a Nagios đ xem k t qu !
http://<nagios_IP_address>/nagios/

Mẫn Thắng |

11



Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
3

KI M TRA TR NG THÁI C A ORACLE DATABASE

Ph n này sẽ trình bày việc c u hình cho Nagios đ giám sát dịch v Oracle Database có đang
ho t đ ng hay không (up/down) s d ng addon NRPE đ thực thi plugin check_tcp trên máy ch
Oracle Database.
3.1



3.2

Yêu cầu và chuẩn bị
M t máy ch ch y Nagios (xem thêm Ph l c A) có s n plugin NRPE.
M t máy ch ch y Oracle Database v i port c a listener là 1521 và được cài daemon NRPE
(xem thêm Ph l c B).
Các bước thực hiện

3.2.1 Thực hiện trên máy Oracle Database
1. M tập tin c u hình cho NRPE là /usr/local/nagios/etc/nrpe.cfg và thêm vào định nghĩa
cho câu lệnh check_tcp như mẫu sau:
command[check_tcp]=/usr/local/nagios/libexec/check_tcp –p 1521

2. N u đang ch y daemon NRPE dư i dịch v xinetd thì khơng c n kh i đ ng l i daemon này

và ngược l i, c n kh i đ ng l i NRPE n u nó ch y đ c lập.
3.2.2 Thực hiện trên máy Nagios
1. Định nghĩa m t service m i đ ki m tra listener port trên máy Orace Database b ng cách t o
m i m t tập tin /usr/local/nagios/etc/objects/oracle.cfg v i n i dung mẫu như sau:
define host{
use
host_name
alias
address
}

linux-server
oracle-db
Oracle DB 11g
192.168.1.14

//kiểm tra listener port của Oracle
define service{
use
generic-service
host_name
oracle-db
service_description
Oracle Listener Port
check_command
check_nrpe!check_tcp
}

2. Thêm object trên vào tập tin c u hình chính c a Nagios b ng cách m tập tin
/usr/local/nagios/etc/nagios.cfg và thêm vào dòng sau:


Mẫn Thắng |

12


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
cfg_file=/usr/local/nagios/etc/objects/oracle.cfg

3. Ki m tra l i các tập tin c u hình và kh i đ ng l i Nagios
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart

4

G I THÔNG BÁO QUA SMS B NG USB 3G

Hệ thống c nh báo qua SMS gồm các thành ph n như được mô t như hình dư i đây:





Máy Monitor sẽ gồm:
- Phần mềm Nagios giúp giám sát các b phận, thông số quan trọng c a h t ng CNTT
như: system metric (CPU load, RAM usage, disk usage, loaded processes, v.v..), network
protocol (HTTP, SSH, FTP, SMTP, IMAP, POP3, v.v..), application (mail, web, database

v.v..), service (DNS, DHCP, v.v..), server (Windows, UNIX, v.v..), network device
(router, switch, firewall, v.v..).
- Phần mềm Gammu giúp truy cập t i các thi t bị điện tho i (trong đó có USB 3G), đi u
khi n việc g i và nhận SMS cùng nhi u chức năng khác v qu n lý cu c gọi và danh b .
- Thiết bị D-Com 3G đóng vai trị làm GSM modem, liên l c v i nhà m ng di đ ng đ
thực hiện việc g i tin nh n SMS.
Khi có các sự kiện ngưng trễ ho c khôi ph c ho t đ ng t các thành ph n được giám sát,
Nagios sẽ tự đ ng t o ra các thông báo. N i dung c a thông điệp c nh báo này sẽ được
truy n cho Gammu và t đó đẩy t i thi t bị USB 3G rồi g i t i số điện tho i c a ngư i qu n
trị.

Các ph n ti p theo sẽ gi i trình các bư c đ thực hiện cài đ t, c u hình và vận hành hệ thống
c nh báo qua SMS này.
Mẫn Thắng |

13


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
4.1










Yêu cầu chuẩn bị
M t Nagios monitoring server.
M t USB 3G, đây s d ng thi t bị D-Com 3G c a Viettel.
Gói mã nguồn c a Gammu, t i v phiên b n 1.32.0 t i địa chỉ:
/>o Các gói ph thu c b t bu c cho Gammu là: CMake, pkg-config
o Các gói ph thu c tùy chọn giúp m r ng tính năng cho Gammu là: Bluez-libs, libusb1.0, libCURL, libiconv, Gettext, MySQL, PostgreSQL, unixODBC, libdbi, Python SQLite
+ libdbi-drivers + SQLite.
N u máy Nagios chưa nhận ra D-Com 3G như là m t USB modem thì c n cài thêm gói
usb_modeswitch đ chuy n t ch đ storage sang modem. T i v mã nguồn c a phiên b n
1.2.3 t i:
/> />o Các gói ph thu c c n thi t cho usb_modeswitch là: libusb-devel, tcl
Các gói make, gcc đ ph c v quá trình biên dịch và cài đ t chương trình t mã nguồn.
C n t i quy n root trong quá trình cài đ t và c u hình hệ thống.
Các bước thực hiện

4.2

4.2.1 Kết nối USB 3G tới máy Nagios
- Ki m tra xem máy Nagios đã nhận ra USB 3G là m t GSM modem hay chưa. Gõ lệnh sau:
# dmesg | grep GSM

N u th y output như dư i đây thì ta chuy n qua ti p theo
USB Serial support registered for GSM modem (1-port)
option 1-1:1.0: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0

(đ ý là tập tin đ i diện cho thi t bị là /dev/ttyUSB0)
-


N u output trống rỗng thì c n thêm gói usb_modeswitch. Trình tự cài đ t như sau:
#
#
#
#
#
#

tar jxf usb-modeswitch-data-20120531.tar.bz2
cd usb-modeswitch-data-20120531
make install
tar jxf usb-modeswitch-1.2.3.tar.bz2
cd usb-modeswitch-1.2.3
make install

4.2.2 Biên dịch và cài đặt Gammu
- Gi i nén gói mã nguồn c a Gammu:
# tar jxvf gammu-1.32.0.tar.bz2

Mẫn Thắng |

14


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
-


Chuy n vào thư m c v a được gi i nén

trên:

# cd gammu-1.32.0
-

Ch y các lệnh sau đ c u hình, biên dịch và cài đ t Gammu:
# ./configure
# make
# make install

-

Ki m tra b ng lệnh:
# gammu

-

N u nhận được thông báo lỗi liên quan t i library thì ch y 2 dịng lệnh sau:
# ln -s /usr/local/lib/libGammu.so.7 /usr/lib/libGammu.so.7
# ln -s /usr/local/lib/libgsmsd.so.7 /usr/lib/libgsmsd.so.7

4.2.3 Cấu hình Gammu để gửi SMS
- T o tập tin chứa thông số c u hình c a USB 3G cho Gammu:
# vi /etc/gammurc

V i n i dung mẫu như sau:
[gammu]

port = /dev/ttyUSB0
connection = at19200

//đường dẫn tới tập tin device của thiết bị
//loại kết nối, tương thích với tập lệnh AT

Ngồi ra, có th s d ng lệnh sau đ c u hình dễ dàng c u hình các thơng số b ng giao diện
đồ họa:
# gammu-config

-

Xác nhận USB 3G đã được nhận d ng thành cơng:
# gammu --identify
Device
Manufacturer
Model
Firmware
IMEI

:
:
:
:
:

/dev/ttyUSB3
ZTE CORPORATION
unknown (MF190S)
BD_MF190SV1.0.0B01

864482000915806

Ngồi ra cịn có 2 lệnh sau đ theo dõi ho t đ ng c a thi t bị cũng như thông tin v m ng di
đ ng:
# gammu –-monitor
# gammu –-networkinfo

-

Nagios ch y v i quy n c a user nagios, vậy nên n u muốn Nagios g i được SMS thì user
nagios ph i có quy n truy cập t i các tập tin device, config và binary c a Gammu. Ch y các
lệnh sau đ gán các quy n thích hợp đó cho user nagios:
#
#
#
#

cp /etc/gammurc /home/nagios/.gammurc
chown nagios.nagios /home/nagios/.gammurc
chmod 4755 /usr/bin/gammu
usermod -a -G dialout nagios

Mẫn Thắng |

15


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286

Website: Email:
# usermod -a -G dialout apache

-

Chuy n qua user nagios và th g i m t SMS mẫu:
# su - nagios
# echo "test SMS nagios" | gammu --sendsms TEXT +84932xxxxxx
If you want break, press Ctrl+C...
Sending SMS 1/1....waiting for network answer..OK, message reference=181

N u số điện tho i trong câu lệnh trên nhận được thơng điệp ắtest SMS nagiosẰ thì việc c u
hình đ Gammu g i đi SMS đã thành cơng. Ti p theo sẽ c u hình cho Nagios.
4.2.4 Cấu hình Nagios để gửi SMS theo nhóm
Ph n 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
service_notification_period
host_notification_period
service_notification_options

Mẫn Thắng |

generic-contact
24x7
24x7
w,u,c,r


16


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
host_notification_options
d,u,r
service_notification_commands notify-service-by-sms,notify-service-byemail
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
use
alias
email
pager
}
define contact{
contact_name

use
alias
email
pager
}

-

hoangbao
generic-contact
Bao Hoang (Database)

+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
alias
members
}
define contactgroup{
contactgroup_name
alias
members
}


-

manthang
generic-contact
Thang Man (Sysadmin)

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

db-admins
Database Administrators
hoangbao,manthang

unix-admins
Linux System Administrator
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ẫn Thắng |

17


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
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
host_name
alias
address
contact_groups
}
// trong db-server.cfg
define service{
use
host_name
service_description
contact_groups
check_command
}
-

linux-server
email-server
Zimbra Server
192.168.1.16
unix-admins

//nhóm Unix sẽ nhận notify

generic-service
mysql-db
MySQL Database Status

db-admins
//nhóm DB sẽ nhận notify
check_nrpe!check_mysql_db

K đ n, thêm 2 object trên vào tập tin c u hình chính c a Nagios b ng cách m tập tin
/usr/local/nagios/etc/nagios.cfg và thêm vào 2 dòng sau:
cfg_file=/usr/local/nagios/etc/objects/email-server.cfg
cfg_file=/usr/local/nagios/etc/objects/db-server.cfg

-

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
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart

-

5

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ị.
G I THÔNG BÁO QUA EMAIL V I SENDEMAIL

Ph n này sẽ thực hiện c u hình Nagios đ g i email thơng báo v tình tr ng, ho t đ ng c a các
thành ph n, dịch v được giám sát trong hệ thống m ng. Việc g i email t i SMTP outgoing
server này sẽ yêu c u thi t lập tài kho n email t i máy Nagios đ xác thực. đây s d ng m t
Perl script là SendEmail.
5.1


Các bước thực hiện

1. Cài thêm các gói ph thu c đ hỗ trợ mã hóa và xác thực b ng SSL/TLS cho các email được
g i đi
# yum install perl
# yum install perl-IO-Socket-SSL

Mẫn Thắng |

18


Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:

2. T i v SendMail t i:
/>
3. Gi i nén gói trên và chép tập tin SendMail t i thư m c /usr/local/bin
4. C p thêm quy n excute và đổi owner thành user nagios cho tập tin trên
# chmod +x /usr/local/bin/SendMail
# chown nagios.nagios /usr/local/bin/SendEmail

5. M tập tin c u hình /usr/local/nagios/etc/resource.cfg rồi thêm vào 3 dịng m i sau:
$USER5$=your_email_address
$USER6$=your_email_password
$USER7$=your_SMTP_mail_server

//email của người gửi

//password của email trên
//IP hoặc domain của SMTP server

6. M tập tin c u hình /usr/local/nagios/etc/objects/commands.cfg rồi s a l i ph n dành
cho email notification như mẫu sau:
define command{
command_name notify-host-by-email
command_line /usr/local/bin/sendEmail -o tls=yes -s $USER7$ -xu $USER5$ -xp
$USER6$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u **
$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ ** -m ***** Nagios
*****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:
$LONGDATETIME$\n
}
define command{
command_name notify-service-by-email
command_line /usr/local/bin/sendEmail -o tls=yes -s $USER7$ -xu $USER5$ -xp
$USER6$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u **
$NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$
** -m ***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress:
$HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time:
$LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$
}

Mẫn Thắng |

19



Công ty Cổ phần Tin học Lạc Tiên
KC52/1/18 Huỳnh T n Phát – Tân Thuận Tây, Q7 - TpHCM
Điện tho i: (84-8) 2211 5070 - Fax: (84-8)6262 1286
Website: Email:
7. T o log file cho SendMail và thay đổi owner cho nó
# touch /var/log/SendEmail
# chown nagios.nagios /var/log/SendEmail

8. Kh i đ ng l i service nagios
# service nagios restart

9. Ki m tra b ng cách th t t m t host nào đó rồi m file log c a SendMail và n u th y n i
dung như ắEmail was sent successfullyẰ thì mọi thứ đã hồn t t.
---  ---

Mẫn Thắng |

20



×