Hiện nay khái niệm quản trị mạng không còn xa lạ gì trong ngành công nghệ thông tin. Nó đã trở thành một trong những lĩnh vức nghiên cứu chính về mạng máy tính và là một công việc quan trọng không thể thiếu trong các hệ thống máy tính của các tổ chức, doanh nghiệp, xí nghiệp, trường học... Theo hướng nghiên cứu lĩnh vực trên, khóa luận này tập trung vào việc tìm hiểu và triển khai một hệ thống giám sát quản trị mạng dựa trên nền tảng mã nguồn mở. Đó là Nagios. Nagios là hệ thống giám sát mạng có chi phí đầu tư thấp, dễ dàng triển khai. Tuy nhiên nó có khả năng rất mạnh mẽ trong việc giám sát hoạt động của các thiết bị trong mạng và đặc biệt là nó có thể thay thế được sức lao động của con người trong việc quản trị mạng. Thay vì cần rất nhiều nhân viên để quản lý, giám sát một data center nếu như sử dụng Nagios thì có thể giảm được số lượng nhân viên đó mà vẫn đảm bảo công việc một cách an toàn. Bởi vậy Nagios rất được tin tưởng và được sử dụng rộng rãi trên toàn cầu.
Trang 1MỤC LỤC
LỜI CẢM ƠN
Trước hết em xin trân thành cảm ơn sự giúp đỡ và hướng dẫn nhiệt tình của thầyĐoàn Minh Phương trong bộ môn Mạng máy tính và truyền thông trường Đại học CôngNghệ-ĐHQGHN và cô Đỗ Thanh Thủy bộ môn Mạng máy tính và truyền thông trườngĐại học Giao Thông Vận Tải đã chỉ bảo em trong quá trình học tập và nghiên cứu.Xintrân thành cảm ơn sự giúp đỡ nhiệt tình của các thầy cô trong trường Đại học Giao thôngvận tải trong suốt khóa học
Trang 2Sau đó em muốn cảm ơn gia đình và bạn bè đã luôn động viên giúp đỡ em trongsuốt quá trình học tập.
Do thời gian và điều kiện có hạn nên khóa luận này không thể tránh được nhữngthiếu sót, em mong nhận được sự đóng góp ý kiến của các thầy cô và các bạn có quantâm tới vấn đề này
Trang 3giám sát hoạt động của các thiết bị trong mạng và đặc biệt là nó có thể thay thế được sứclao động của con người trong việc quản trị mạng Thay vì cần rất nhiều nhân viên đểquản lý, giám sát một data center nếu như sử dụng Nagios thì có thể giảm được số lượngnhân viên đó mà vẫn đảm bảo công việc một cách an toàn Bởi vậy Nagios rất được tintưởng và được sử dụng rộng rãi trên toàn cầu.
Trang 4CHƯƠNG I: GIỚI THIỆU
I.1 GIỚI THIỆU CHUNG
Giám sát, theo dõi mạng là một trong những vấn đề hiện nay trở lên rất quan trọngtrong việc quản trị các hệ thống mạng Nó hạn chế tối đa việc mạng bị gián đoạn trongquá trình hoạt động Nó đảm bảo việc khai thác tài nguyên có hiệu quả, đảm bảo an toàn,tin cậy cho những dịch vụ cung cấp… Hiện nay có rất nhiều công cụ giám sát mạng hỗtrợ cho công việc của người quản trị Chức năng của chúng là giám sát trạng thái hoạtđộng của các thiết bị mạng, các dịch vụ mạng, và các máy đầu cuối tham gia vào mạng
và thông báo cho người quản trị khi có sự cố hoặc khả năng sẽ sảy ra sự cố Có cả những
hệ thống thương mại như HPopen View… Hay nguồn mở như openNMS, Cacti,Nagios… Mỗi hệ thống lại có những ưu nhược điểm riêng Tuy nhiên khả năng củachúng lại không hơn nhau nhiều lắm Bài khóa luận này tập trung vào việc nghiên cứumột hệ thống giám sát dựa trên Nagios, một sản phẩm nguồn mở được sử dụng rộng rãitrên thế giới
I.2 KHÁI NIỆM NAGIOS
Nagios là một hệ thống giám sát mạnh mẽ cho phép các tổ chức xác định và giảiquyết các vấn đề về cơ sở hạ tầng CNTT trước khi chúng ảnh hưởng nghiêm trọng đếnquá trình hoạt động của các tổ chức, cơ quan hay doanh nghiệp
Đầu tiên ra mắt vào năm 1999, Nagios đã phát triển với hàng ngàn dự án đượcphát triển bởi cộng đồng Nagios trên toàn thế giới Nagios chính thức bảo trợ bởi doanhnghiệp Nagios, hỗ trợ cộng đồng trong một số cách khác nhau thông qua doanh số bánhàng thương mại của dịch vụ và sản phẩm
I.3 MỤC ĐÍCH SỬ DỤNG NAGIOS
Nagios theo dõi toàn bộ cơ sở hạ tậng công nghệ thông tin của bạn để đảm bảo hệthống, ứng dụng, dịch vụ và quy trình kinh doanh đang hoạt động tốt Trong trường hợpgặp sự cố, Nagios có thể cảnh báo vấn đề với nhân viên kỹ thuật, cho phép họ bắt đầu
Trang 5quá trình phục hồi trước khi bị sự cố ảnh hưởng đến quá trình kinh doanh, người sử dụng,hoặc khách hàng Với Nagios bạn không bao giờ phải giải thích tại sao một sự cố vô hìnhlại xảy ra đối với cơ sở hạ tầng mấu chốt của tổ chức.
• Giám sát từ xa thông qua SSH hoặc SSL
I.4.2 TẦM NHÌN
`•`Tập trung theo dõi xem của toàn bộ cơ sở hạ tầng CNTT
• Tình trạng chi tiết thông tin sẵn có thông qua giao diện web
I.4.3 NHẬN THỨC
• Nhanh chóng phát hiện các sự cố đối với cơ sở hạ tầng
• Cảnh báo có thể được gửi đến người quản trị thông qua email hoặc tin nhắnSMS
• Khả năng đảm bảo các thông báo cảnh báo leo thang tới đúng người
Trang 6CHƯƠNG II: THIẾT LẬP MÔ HÌNH THỬ NGHIỆM
II.1 HOẠT ĐỘNG CỦA NAGIOS
Nagios hoạt động trên một máy chủ thường là một deamon (hoặc service) Nagiosthường chạy định kỳ trên một máy chủ, nó liên lạc, lưu trữ với máy chủ trong mạng củabạn hoặc trên mạng Internet Bạn có thế gửi thông tin cho Nagios sau đó xem thông tincác trạng thái thông qua sử dụng giao diện web Bạn có thể nhận được thông báo quaemail hoặc tin nhắn SMS khi có sự cố xảy ra để tìm cách khắc phục, sửa chữa
II.2 CHUẨN BỊ CÀI ĐẶT NAGIOS
Trong khóa luận này em sẽ cài đặt Nagios trên hệ điều hành Centos 6.6
II.2.1 CÀI ĐẶT HỆ ĐIỀU HÀNH
Khởi động CDROM (ở đây em dùng máy ảo Vmware Workstation 9 và dùng fileISO CentOS-6.6-i386-bin-DVD1to2)
Bước 1: Chọn Install or upgrade an existing system để cài đặt mới Hệ thống sẽload các file cần thiết và xác định các thành phần phần cứng của máy
Bước 2: Ở cửa sổ Disc Found hệ thống thông báo đã tìm thấy đĩa cài đặt, nhần OK
để kiểm tra xem đĩa có bị lỗi hay không, có thể nhấn vào Skip để bỏ qua bước kiểm trađĩa này nếu chắc chắn đĩa không có lỗi gì Tiến trình cài đặt bắt đầu, nhấn Next để tiếptục
Bước 3: Chọn ngôn ngữ trong quá trình cài đặt rồi bấm Next (trong bài này emchọn English)
Bước 4: Chọn ngôn ngữ cho bàn phím rồi bấm Next (chọn US English)
Bước 5: Tại cửa sổ Type of device chọn kiểu thiết bị lưu trữ nào sẽ được dùng để cài đặt Basic Storage Devices là cài đặt trực tiếp vào ổ đĩa cứng gắn sẵn trong máy.
Trang 7Specialized Storage Devices là cài đặt lên hệ thống lưu trữ gắn ngoài như SANs hay NAS… Trong bài này em chọn Basic Storage Devices rồi bấm Next.
Bước 6: Do ổ đĩa trong trường hợp này chưa được phân vùng nên hệ thống đưa ra cảnh báo, Chọn vào Yes, discard any data để bỏ qua tất cả dữ liệu (nếu có) trên ổ đĩa.
Bước 7: Đặt Hostname cho server là example.utc.vn
Bước 8: Chọn múi giờ cho server chọn Asia/Ho Chi Minh rồi bấm Next.
Bước 9: Nhập mật khẩu cho tải khoản Root rồi bấm Next.
Bước 10: Chọn kiểu định dạng cho ổ đĩa cứng Tùy vào hiện trạng của ổ cứng mà
sử dụng kiểu cài đặt tương ứng Ổ cứng của trong trường hợp này không chưa bất kỳ dữ
liệu hoặc phân vùng nào cả nên em chọn Use All Space (sử dụng toàn bộ dung lượng ổ đĩa) Chọn xong bấm Next và quá trình định dạng bắt đầu Sau đó hệ thống cảnh báo để xác nhận việc định dạng lại ổ đĩa (sẽ mất hết dữ liệu nếu có trong ổ cứng) Chọn Write changes to disk.
Bước 11: Tiếp theo chọn kiểu mà server sẽ cài đặt, tùy theo yêu cầu cụ thể để chọn kiểu tương ứng Chọn Customize Now rồi bấm Next Tiếp đó có thể chọn hoặc bỏ chọn các ứng dụng hoặc dịch vụ cần thiết rồi bấm Next để cài đặt.
Bước 12: Hệ thống tiến hành cài đặt.
Bước 13: Khi việc cài đặt hoàn tất bấm Reboot để khởi động lại hệ thống.
Bước 14: Tiếp theo chọn Yes, I agree to the License Agreement rồi bấm Forward.
Bước 15: Tạo User và đặt password cho user đó rồi bấm Forward.
Bước 16: Cài đặt ngày giờ rồi bấm Forward.
Bước 17: Bấm Finish để hoàn tất quá trình cài đặt và đăng nhập vào hệ thống
bằng user và password vừa tạo
II.2.2 CÀI ĐẶT VÀ CẤU HÌNH CÁC DỊCH VỤ TRÊN HỆ ĐIỀU HÀNH
Để cài đặt và cấu hình các dịch vụ trên hệ điều hành trước tiên ta tạo ra cácInterface ảo để cài các dịch vụ trên các Interface đó
Trang 8- Đầu tiên đăng nhập vào hệ điều hành Centos 6.6 và mở của sổ lệnh lên gõ lệnh:
#cp eth0 eth0:0
/etc/sysconfig/network-scripts/ifcfg Sau đó vào etc/sysconfig/network-scripts/ifcfg-eth0:0 để chỉnh sửa lại như sau:
DEVICE=eth0:0IPADDR=192.168.10.2NETMASK=255.255.255.0GATEWAY=192.168.1.254ONBOOT=yes
NAME=eth0:0
- Sau đó lưu lại và dùng lệnh:
#service network restartNgoài ra còn có các Interfae ảo khác (eth0:1, eht0:2, eth0:3, eth0:4) với cách tạo tương tự như trên và được thay bằng các dải địa chỉ IP khác nhau
Interface eth0:1 có địa chỉ IP là: 192.168.100.2Interface eth0:2 có địa chỉ IP là: 192.168.200.2Interface eth0:3 có địa chỉ IP là: 192.168.30.2Interface eth0:4 có địa chỉ IP là: 192.168.40.2Cũng có thể thay các dải địa chỉ IP trên bằng các dải địa chỉ IP khác
II.2.2.1 Cài Đặt Và Cấu Hình DNS
Để cài DNS làm như sau:
- Dịch vụ DNS sẽ được cài trên Interface eth0 có địa chỉ IP là 192.168.1.2 (ngoài racũng có thể cài đặt trên các interface khác)
- Mở cửa sổ lệnh lên gõ
#yum install bind* -y
- Sau đó copy file named.conf từ /usr/share/doc/bind-9.8.2/sample/etc đến/var/named/chroot/etc
#cp /usr/share/doc/bind-9.8.2/sample/etc/named.conf /var/named/chroot/etc/
Trang 9- Chỉnh sửa file cấu hình name.conf như sau:
options {directory “/var/named”;
- Sau đó lưu lại file cấu hình này
- Tiếp đó tạo hai file phân giải thuận và phân giải ngược
+ Để tạo Zone thuận ta gõ lệnh:
#vi /var/named/chroot/var/named/example.utc.vn.db+ Sau đó thêm các dòng dưới đây vào
$TTL 86400
@ IN SOA dns.example.utc.vn root.example.utc.vn (
Trang 102010031301 3H
15M1W1D )
proxy IN CNAME mail.example.utc.vn
+ Sau đấy lưu file đó lại
- Để tạo Zone phân giải nghịch gõ lệnh:
15M
Trang 111W1D )
#Service named start
- Nếu Ok là đã cấu hình thành công
II.2.2.2 Cài Đặt Và Cấu Hình Dịch Vụ DHCP
Dịch vụ DHCP sẽ được cài đặt trên Interface eth0:0 có địa chỉ IP là 192.168.10.2(ngoài ra cũng có thể cài trên các interface khác)
Để cài đặt và cấu hình dịch vụ DHCP làm như sau:
- Mở cửa sộ lệnh lên gõ:
#yum install dhcp –y
- Copy cấu hình mẫu sang /etc/dhcp bằng lệnh:
#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
- Bây giờ chỉnh sửa file cấu hình dhcpd.conf như sau:
Trang 12subnet 192.168.10.0 netmask 255.255.255.0 {range 192.168.10.50 192.168.10.100;
option domain-name-servers 192.168.10.2;
option domain-name “example.utc.vn”;
option routers 192.168.10.2default-lease-time 600;
- Sau khi đã download về xong vào đường dẫn: /etc/vsftpd/vdftpd.conf để chỉnh
sửa file cấu hình như sau:
+ Chỉnh sửa các dòng:
Anonimous_enable=NOLocal_enable=YESWrite_enable=YES
- Sau đó khởi động dịch vụ bằng lệnh:
#service vsftpd start
- Nếu OK là đã thành công
Trang 13II.2.2.4 Dịch Vụ SAMBA
Dịch vụ Samba sẽ được cài trên interface eth0:1 có địa chỉ IP là 192.168.100.2 (cũng cóthể cài trên các interface khác)
- Để cài Samba mở cửa sổ lệnh lên gõ:
#yum –y install samba*
- Sau khi đã cài đặt xong vào đường dẫn: /etc/samba/smb.conf để cấu hình
- Ở phần [global] chỉnh sửa một số dòng như sau:
interfaces = l0 eth0:2 192.168.100.0/24 192.168.13.2/24hosts allow = 127 192.168.100.0/24 192.168.13
security = userpassdb backend = smbpass
- Sau đó lưu lại và khởi động dịch vụ bằng lệnh:
#service smb start
- Nếu OK là đã thành công
II.2.2.5 Dịch Vụ SMTP
Dịch vụ SMTP được cài trên interface eth0:4 có địa chỉ IP là 192.168.40.2 (ngoài ra cũng
có thể cài trên interface khác)
- Để cài SMTP mở cửa sổ lệnh lên gõ:
#yum install postfix –y
#yum install dovecot –y
#yum install squirrelmail
- Đầu tiên cài đặt và cấu hình postfix
- Vào đường dẫn: /etc/postfix/main.cf để chỉnh sửa cấu hình postfix
+ Ở dòng 75 ta sửa:
myhostname = example.utc.vn+ Dòng 83 sửa lại:
mydomain = utc.vn
Trang 14+ Dòng 99 sửa lại:
myorigin = $mydomain+ Dòng 113 sửa:
Inet_interfaces = all+ Dòng 116 sửa:
Inet_interfaces = localhost+ Dòng 119 sửa:
Inet_protocols = all+ Dòng 165 sửa:
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain+ Dòng 264 sửa:
mynetworks = 192.168.40.0/24, 127.0.0.0/8+ Dòng 419 sửa:
home_mailbox = Maildir/
- Sửa xong save lại và khởi động dịch vụ bằng lệnh:
#service postfix start
- Tiếp theo cấu hình dovecot:
Vào đường dẫn: /etc/dovecot/dovecot.conf để cấu hình
+ Sửa dòng 20:
#protocols = imap pop3
- Sau đó save lại rồi khởi động dovecot bằng lệnh:
#service dovecot start
II.2.3 CÀI ĐẶT NAGIOS
II.2.3.1 Tạo Tài Khoản Và Nhóm Cho Nagios
- Mở cửa sổ lệnh lên gõ:
#useradd –m nagios
#passwd nagios
#groupadd nagcmd
Trang 15II.2.3.2 Dowload Và Cài Đặt Nagios
- Download Nagios và Nagios Plugins tại địa chỉ:
+ Nagios: 4.0.8.tar.gz
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-+ Nagios plugins: http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
- Sau khi đã download xong tiến hành giải nén bằng lệnh:
#make install #make install-init #make install-config #make install-commandmode #make install-webconf
- Tạo tài khoản nagiosadmin và đặt password để truy cập vào web interface:
Trang 16+ Nhập user và password đã tạo ở bước trên
Hình 2.1 Giao diện web của nagios
II.3.2.3 Cấu Hình Nagios Để Nhận Thông Báo SMS Và EMAIL
Trang 17II.3.2.3.1 Yêu Cầu
- Một điện thoại di động có cổng usb để kết nối với máy tính (có thể dùng D-com3G)
- Một Nagios Monitoring Server đang hoạt động (đã cài đặt ở trên)
- Source package của Gammu (phần mềm giúp điều khiển điện thoại di động, usbmodem để gửi và nhận SMS)
+ Tải về Source của Gammu tại:
http://sourceforge.net/projects/gammu/files/gammu/1.32.0/gammu-1.32.0.tar.bz2
II.3.2.3.2 CÁC BƯỚC THỰC HIỆN
II.3.2.3.2.1 Kết Nối Điện Thoại Di Động Với Máy Tính
- Kiểm tra xem Centos đã nhận ra điện thoại đã được kết nối hay chưa:
#dmesg | grep –i usb+ Nếu kết quả như ảnh là đã nhận ra
Hình 2.2 Thông tin kết nối cổng usb
II.3.2.3.2.2 Cài Đặt GAMMU
- Giải nén gói Gammu đã download về:
Trang 18II.3.2.3.2.3 Cấu Hình GAMMU Để Gửi SMS
- Tạo file cấu hình cho gammu:
#vi /etc/gammurc
+ Nội dung của file cấu hình :
Trang 19port = /dev/ttyACM0connection = at19200
- Chạy lệnh sau để xác định device của thiết bị là gì (ở đây là ttyACM0)
#dmesg | grep –i tty
- Chạy các lệnh sau để gán quyền cho user nagios:
# cp /etc/gammurc /home/nagios/.gammurc
# sudo chown nagios.nagios /home/nagios/.gammurc
# sudo chmod 4755 /usr/local/bin/gammu
# sudo usermod -a -G dialout nagios
# sudo usermod -a -G dialout apache
- Chuyển vào user nagios thử gửi một SMS
#su – nagios
#echo “test SMS nagios” | gammu sendsms TEXT +841689236002
• Trong đó TEXT là từ khóa không thể thay đổi
• “test SMS nagios” là tin nhắn sẽ được gửi đến điện thoạidùng để test, cũng có thể thay bằng chuỗi các ký tự khác
• +841689236002 là số điện thoại dùng để test, cũng có thểthay bằng số điện thoại khác
• gammu sendsms là cấu trúc gửi tin nhắn của gammu
Trang 20- Nếu nhận được tin nhắn là đã thành công.
II.3.2.3.2.4 Cấu Hình Nagios Để Nhận Thông Báo Qua SMS
/usr/local/nagios/etc/objects/commands.cfg
# ‘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$\nAddress: $HOSTADDRESS$\n Info: $HOSTOUTPUT$\n Date/Time:
$LONGDATETIME$” | /usr/local/bin/gammu sendsms TEXT
command_line /usr/bin/printf “%b” “*** Nagios ***\n Notification Type:
$NOTIFICATIONTYPE$\n Service: $SERVICEDESC$\n Host:
$HOSTALIAS$\n Address: $HOSTADDRESS$\n State: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\n Info: $SERVICEOUTPUT$” |/usr/local/bin/gammu sendsms TEXT $CONTACTPAGER$
}
Trang 21- Chỉnh sửa file /usr/local/nagios/etc/objects/contacts.cfg như sau:
define contact{
contact_name nagiosadminuse generic-contactalias Nagios Adminservice_notification_period 24x7
host_notification_period 24x7service_notification_options w,u,c,rhost_notification_options d,u,rservice_notification_commands notify-service-by-sms,notify-service-by-email
host_notification_commands notify-host-by-sms,notify-host-by-emailemail teenlc.93@gmail.com
pager +841689236002}
• Trong đó email và pager là email và số điện thoại của ngườiquản trị, cũng có thể thay bằng email và số điện thoại khác
- Khởi động lại Nagios:
#service nagios restart
- Để thêm các dịch vụ lên monitoring Nagios làm như sau:
Thêm command sau vào file cấu hình /usr/local/nagios/etc/objects/commands.cfg+ Dịch vụ FTP: