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:/
Trang 1Chuyên đề IT Monitoring
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
Trang 2M Ụ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
Trang 3L 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!
Trang 4V 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
Trang 51 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
Trang 6# 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
# 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
Trang 7- 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
Trang 82.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
Trang 9- Đ 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
- 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
Trang 10Lư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
Trang 11alias 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/