Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

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: http://lactien.com Email: lienhe@lactien.com

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 | thang.manvan@lactien.com


https://manthang.wordpress.com
https://www.facebook.com/vninfosec

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: http://lactien.com Email: lienhe@lactien.com

MỤC LỤC

L I NÓI Đ U ................................................................................................................................ 3
V TÁC GI .................................................................................................................................. 4
1 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
2 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
3 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
4 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
5 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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. Ngoà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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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. Ngoà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 toàn thông tin t i
Blog (https://manthang.wordpress.com) và Fanpage (https://www.facebook.com/vninfosec).

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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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:

 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/

1.1 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:
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.1.tar.gz
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
 M t số giai đo n cài đ t c n quy n root (có d u # đ ng trư c câu lệnh).

1.2 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

# 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

- 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 xa.

2.1 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:
http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

Mẫn Thắng | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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

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 dòng only_from
only_from = 127.0.0.1 <nagios_ip_address>
- M tập tin /etc/services và thêm vào NRPE daemon
nrpe 5666/tcp # NRPE
- Kh i đ ng l i xinetd
# service xinetd restart

6. Ki m tra NRPE daemon

Mẫn Thắng | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

- Đ 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 -H localhost -c check_users
# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
# /usr/local/nagios/libexec/check_nrpe -H localhost -c 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

Lưu Ủ có th firewall trên máy Nagios ho c firewall giữa nó v i máy xa c n tr việc liên
l c. Lúc này c n đi u chỉnh l i rule cho thích hợp.

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 check_nrpe
command_line #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. đây
template được t o có tên là linux.cfg:
# 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 linux-box
use generic-host
check_period 24×7
check_interval 5
retry_interval 1
max_check_attempts 3
check_command check-host-alive
notification_period 24×7
notification_interval 30
notification_options d,r
contact_groups admins
register 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 linux-box
host_name centos-vm

Mẫn Thắng | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

alias Oracle DB 11g


address 192.168.137.3
}

define service{
use generic-service
host_name centos-vm
service_description CPU Load
check_command check_nrpe!check_load

define service{
use generic-service
host_name centos-vm
service_description Current Users
check_command check_nrpe!check_users

define service{
use generic-service
host_name centos-vm
service_description Total Processes
check_command 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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 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).

3.2 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 linux-server
host_name oracle-db
alias Oracle DB 11g
address 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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ỉ:
http://sourceforge.net/projects/gammu/files/gammu/1.32.0/gammu-1.32.0.tar.bz2
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, libusb-
1.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:
http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20120531.tar.bz2
http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.2.3.tar.bz2
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.

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

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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

- 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 //đường dẫn tới tập tin device của thiết bị
connection = at19200 //loại kết nối, tương thích với tập lệnh AT
Ngoà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 : /dev/ttyUSB3
Manufacturer : ZTE CORPORATION
Model : unknown (MF190S)
Firmware : BD_MF190SV1.0.0B01
IMEI : 864482000915806

Ngoà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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

# 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 generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r

Mẫn Thắng | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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ẫn Thắng | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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 Zimbra 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
}
- 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
- 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ị.

5 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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

2. T i v SendMail t i:
http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

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 //email của người gửi
$USER6$=your_email_password //password của email trên
$USER7$=your_SMTP_mail_server //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 | thang.manvan@lactien.com


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: http://lactien.com Email: lienhe@lactien.com

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ứ đã hoàn t t.

---  ---

Mẫn Thắng | thang.manvan@lactien.com


20

You might also like