TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN ---***---MÃ NGUỒN MỞ CHUYÊN NGÀNH MẠNG TÌM HIỂU VÀ TRIỂN KHAI HỆ THỐNG GIÁM SÁT MONITORING TRÊN UBUNTU SERVER SỬ DỤNG ZABBIX
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-*** -MÃ NGUỒN MỞ CHUYÊN NGÀNH MẠNG TÌM HIỂU VÀ TRIỂN KHAI HỆ THỐNG GIÁM SÁT (MONITORING)
TRÊN UBUNTU SERVER SỬ DỤNG ZABBIX VÀ MUNIN
HÀ NỘI – 2018 Giáo viên hướng dẫn: GV.ThS Phạm Đình Tân
Sinh viên thực hiện:
Trang 2Mục Lục
I HỆ THỐNG GIÁM SÁT MẠNG 3
1.1 Giám sát mạng là gì? 3
1.2 Các yếu tố cơ bản của giám sát mạng 3
1.3 Các giải pháp công nghệ giám sát an toàn mạng 3
1.4 Giải pháp quản lý 3
II TÌM HIỂU ZABBIX 5
2.1 Zabbix là gì? 5
2.2 Ưu nhược điểm của Zabbix 5
2.3 Yêu cầu phần cứng 5
2.4 Các thành phần hệ thống giám sát Zabbix 5
2.5 Triển khai cài đặt Zabbix trên ubuntu server 16.04.5 6
III TÌM HIỂU VỀ MUNIN 14
3.2 Giới thiệu 14
3.3 Cài đặt Server Munin 14
3.4 Cài đặt Munin 14
3.5 Cấu hình Munin Master 14
3.6 Kết luận 17
Trang 3I HỆ THỐNG GIÁM SÁT MẠNG
1.1 Giám sát mạng là gì?
Hệ thống giám sát an toàn mạng đóng vai trò quan trọng, không thể thiếu trong hạ tầng công nghệ thông tin (CNTT) của các cơ quan, đơn vị, tổ chức Hệ thống này cho phép thu thập, chuẩn hóa, lưu trữ và phân tích tương quan toàn bộ các sự kiện an toàn mạng được sinh ra trong hệ thống CNTT của tổ chức
Ngoài ra, hệ thống giám sát an toàn mạng phát hiện kịp thời các tấn công mạng, các điểm yếu, lỗ hổng bảo mật của các thiết bị, ứng dụng và dịch vụ trong hệ thống Phát hiện kịp thời sự bùng nổ virus trong hệ thống mạng, các máy tính bị nhiễm mã độc, các máy tính bị nghi ngờ là thành viên của mạng máy tính ma (botnet)
I.2 Các yếu tố cơ bản của giám sát mạng
Để công tác giám sát an toàn mạng đạt hiệu quả cần phải xác định được các yếu tố cốt lõi, cơ bản nhất của giám sát như:
- Xác định các đơn vị, hệ thống, thiết bị, dịch vụ cần giám sát
- Xác định trang thiết bị, giải pháp phần mềm thương mại phục vụ giám sát
- Xác định phần mềm nội bộ và phần mềm nguồn mở phục vụ giám sát
- Xác định các thiết bị, công cụ, giải pháp hỗ trợ phân tích kết quả giám sát: công cụ NMAP, TCPDUMP, Wireshark, Nessus
Ngoài các trang thiết bị, công cụ, giải pháp hỗ trợ thì yếu tố con người và đặc biệt là quy trình phục vụ giám sát là vô cùng quan trọng
I.3 Các giải pháp công nghệ giám sát an toàn mạng
Hệ thống giám sát an toàn mạng có thể được xây dựng theo một trong ba giải pháp sau:
- Giải pháp quản lý thông tin an ninh: tập trung vào việc thu thập, lưu trữ và biểu diễn nhật ký
- Giải pháp quản lý sự kiện an ninh: tập trung vào việc phân tích và xử lý các nhật
ký đã được thu thập để đưa ra cảnh báo cho người dùng
- Giải pháp quản lý và phân tích sự kiện an ninh: là sự kết hợp của cả hai giải pháp trên nhằm khắc phục những hạn chế vốn có Vì vậy, tài liệu sẽ hướng tới xây dựng giải pháp này
I.4 Giải pháp quản lý
Mô hình giải pháp quản lý gồm 03 thành phần chính:
a Thành phần thu thập nhật ký an toàn mạng
Trang 4- Thu thập toàn bộ dữ liệu nhật ký từ các nguồn thiết bị, ứng dụng,… gồm cả các thiết bị vật lý và thiết bị ảo hóa
- Kiểm soát băng thông và không gian lưu trữ thông qua khả năng chọn lọc dữ liệu nhật ký
- Phân tách từng sự kiện và chuẩn hóa các sự kiện vào một lược đồ chung
- Tích hợp các sự kiện để giảm thiểu số lượng các sự kiện gửi về thành phần phân tích và lưu trữ
- Chuyển toàn bộ các sự kiện đã thu thập về thành phần phân tích và lưu trữ
b Thành phần phân tích và lưu trữ
- Kết nối với các thành phần thu thập nhật ký để tập hợp nhật ký tập trung và tiến hành phân tích, so sánh tương quan
- Môđun phân tích sẽ được hỗ trợ bởi các luật (được định nghĩa trước) cũng như khả năng tuỳ biến, nhằm đưa ra kết quả phân tích chính xác nhất
- Các nhật ký an toàn mạng được tiến hành phân tích, so sánh tương quan theo thời gian thực nhằm đưa ra cảnh báo tức thời cho người quản trị Đồng thời cũng cho phép phân tích các dữ liệu trong quá khứ, nhằm cung cấp cho người quản trị một bức tranh toàn cảnh về an toàn mạng theo thời gian
- Hỗ trợ kết nối đến các hệ thống lưu trữ dữ liệu (như SAN, NAS) giúp nâng cao khả năng lưu trữ và xây dựng kế hoạch dự phòng, chống mất mát dữ liệu
c Thành phần quản trị tập trung
- Cung cấp giao diện quản trị tập trung cho toàn bộ hệ thống giám sát an toàn mạng Các giao diện được phân quyền theo vai trò của người quản trị
- Hỗ trợ sẵn hàng nghìn mẫu báo cáo, các giao diện theo dõi, điều kiện lọc, Ngoài ra, các công cụ này còn cho phép tùy biến, thay đổi hay tạo mới các báo cáo một cách dễ dàng để phù hợp với hệ thống của mình
- Hỗ trợ các công cụ cho việc xử lý các sự kiện an toàn mạngxảy ra trong hệ thống
d Các thành phần khác: thành phần cảnh báo, hệ thống DashBoard theo dõi thông tin, các báo cáo phong phú đáp ứng các tiêu chuẩn quản lý, thành phần lưu trữ có khả năng lưu trữ dữ liệu lâu dài
Trang 5II TÌM HIỂU ZABBIX
2.1 Zabbix là gì?
Zabbix là một giải pháp giám sát dịch vụ hệ thống mạng phân tán mã nguồn mở nổi tiếng, có nhiều tính năng độc đáo và khả năng tùy biến cao
Zabbix được sáng lập bởi Alexei Vladishev và hiện tại được phát triển cũng như hỗ trợ bởi tổ chức Zabbix SIA Zabbix được viết và phát hành dưới bản quyền General Public License GPL phiên bản 2 Zabbix sử dụng các cơ chế thông báo vấn đề linh hoạt cho quản trị viên như mail, sms, OTT App, v.v…
2.2 Ưu nhược điểm của Zabbix
a Ưu điểm
- Tự động tìm phát hiện server và hệ thống mạng
- Hỗ trợ cài đặt trên dòng lệnh hệ điều hành Unix/Linux
- Hỗ trợ máy trạm nhiều client nhiều hệ điều hành
- Giao diện web tinh tế đẹp mắt
- Có thông báo sự cố qua mail, app
- Kiểm tra theo dõi việc đăng nhập
- Linh động trong việc phân quyền người dùng
- Mã nguồn mở chi phí đầu tư thấp
- Nhiều plugin hỗ trợ các dịch vụ hệ thống khác nhau
b Nhược điểm
- Không có giao diện web mobile hỗ trợ
- Không phù hợp trong hệ thống mạng lớn hơn 1000 node thiết bị client cần giám sát
- Thiết kế template/alering rule đôi khi khá phức tạp
2.3 Yêu cầu phần cứng
- CPU: 2 core
- Ram: 1GB
- Disk: 50GB
2.4 Các thành phần hệ thống giám sát Zabbix
- Zabbix Server : đây là ứng dụng chương trình dịch vụ chính của Zabbix
Zabbix Server sẽ chịu trách nhiệm cho các hoạt động kiểm tra dịch vụ mạng từ
Trang 6xa, thu thập thông tin lưu trữ, hiển thị , cảnh báo,…từ đó các quản trị viên có thể thao tác giám sát hệ thống tốt nhất
- Zabbix Proxy: Là máy chủ được dùng cho việc quản lý nhiều nhánh hệ thống ở
xa, hoặc ở các lớp mạng khác nhau Từ Zabbix proxy sẽ thu thập các thông tin thiết bị mạng rồi chuyển tiếp về cho máy chủ dịch vụ chính Zabbbix Server
- Zabbix Agent: Zabbix agent là chương trình Zabbix là các chương trình để cài đặt lên các máy chủ hoặc thiết bị phía client Từ đó hỗ trợ kết nối từ Zabbix Server để lấy các thông tin cần thiết từ client nhằm kiểm tra các tình trạng hệ thống hoặc theo nhu cầu quản trị viên
- Giao diện web: cung cấp giao diện web trên nền tảng mã nguồn PHP cùng phong cách Metro tinh tế Hiện tại có thể xem Zabbix là một trong những ứng dụng có giao diện đệp nhất, thiết kế vị trí tính năng bắt mắt và hợp lý
2.5 Triển khai cài đặt Zabbix trên ubuntu server 16.04.5
Cài đặt LAMP stack trước khi cài Zabbix
Hình 2.1 Cài đặt Apache 2
- Cài đặt apache2 và php: sudo apt-get install -y apache2 php libapache2-mod-php libapache2-mod-php-mcrypt
Sau bước này, khi truy cập http://192.168.10.142 (IP của Ubuntu Server) thành công tức là apache đã hoạt động
- Kiểm tra xem php và apache có tương thích không, ta tạo 1 file info.php
vim /var/www/html/info.php với nội dung: “ <?php phpinfo(); “
Trang 7truy cập http://192.168.10.142/info.php nếu hiển thị như hình dưới thì coi như đã cài đặt thành công
Hình 2.2 Hiển thị file info.php
Tiếp theo, chúng ta sẽ cài MySQL với câu lệnh:
sudo apt-get install mysql-server php-mysql
Quá trình cài đặt cũng khá đơn giản Hệ thống sẽ yêu cầu bạn đặt mật khẩu cho tài khoản root của mysql
Nếu bạn không quen dùng MySQL bằng CLI thì có thể cài phpmyadmin để quản lý db 1 cách trực quan
sudo apt-get install phpmyadmin
Trong lúc cài đặt sẽ yêu cầu chúng ta chọn webserver apache2 hay lighttpd để cấu hình thì bạn tích vào apache2 và enter
Mở file /etc/apache2/apache2.conf và thêm dòng sau vào cuối file
Include /etc/phpmyadmin/apache.conf
Cuối cùng là khởi động lại apache
service apache2 restart
Trang 8Các bước cài Zabbix:
Đầu tiên là cần cài repo của zabbix cho apt với câu lệnh sau:
wget
http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
dpkg -i zabbix*
sudo apt-get update
Sau đó, cài đặt các gói zabbix-server-mysql và zabbix-frontend-php
sudo apt-get install zabbix-server-mysql zabbix-frontend-php
Sau khi cài đặt thành công, các bạn cần phải tạo database và cấu hình để cài đặt server
mysql -u root -p
Enter password:
-> create database zabbix charater set utf8 collate utf8_bin;
-> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
-> flush privileges;
-> exit
cd /usr/share/doc/zabbix-server-mysql
gunzip create.sql.gz
mysql -u root -p zabbix < create.sql
Enter password:
Đến đây thì cần cấu hình 1 chút để có thể cài đặt zabbix server với 2 file
zabbix_server.conf và php.ini
vim /etc/zabbix/zabbix_server.conf
Tìm các dòng sau và sửa đúng với thông tin mà các bạn vừa tạo ở bước trên
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
Sửa lại 1 chút thông số của file php.ini
vim /etc/php/7.0/apache2/php.ini
post_max_size = 16M
Trang 9max_execution_time = 300
max_input_time = 300
date.timezone = "your timezone" ; Asia/Ho_Chi_Minh
Copy file apache.conf vào conf-available để apache và zabbix có thể làm việc cùng nhau
cp /etc/zabbix/apache.conf /etc/apache2/conf-available/zabbix.conf
Bật cấu hình trong file zabbix.conf
a2enconf zabbix.conf
Đảm bảo mod alias được bật
a2enmod alias ; nếu không được thì bạn cần sử dụng với quyền root
Nếu bạn đang sử dụng firewall thì cần phải mở port 10050/tcp và 10051/tcp và tất nhiên, phải đảm bảo port 80 phải được mở Còn nếu không dùng thì bạn có thể bỏ qua bước này
sudo ufw allow port/protocol
sudo ufw reload
Khởi động lại apache và bật zabbix server
service apache2 restart
service zabbix-server start
Trang 10Hình 2.3 Cấu hình trong file zabbix.conf
Đến bước này thì cơ bản đã hoàn tất phần back-end Bây giờ sẽ cài đặt phần front-end cho zabbix
Bạn truy cập vào http://192.168.10.142/zabbix để tiến hành cài đặt:
Hình 2.4 Giao diện khi truy cập Zabbix
Trang 11
Hình 2.5 Giao diện thiết lập ban đầu cho Zabbix
Hình 2.6 Kết nối Database cho Zabbix
Trang 12Hình 2.7 Port cho Zabbix
Hình 2.7 Kiểm tra lại thông tin trước khi hoàn tất cấu hình
Trang 13Hình 2 8 Màn hình thông báo đã cấu hình thành công Zabbix
- Đăng nhập Zabbix với:
Username: admin
Password: zabbix
Hình 2.9 Giao diện quản lý của zabbix
Trang 14III TÌM HIỂU VỀ MUNIN
III.2 Giới thiệu
Munin là một hệ thống giám sát qua mạng cho máy chủ cục bộ và máy chủ từ xa Nó giám sát tất cả những điều cơ bản Chúng ta có thể sử dụng nó để theo dõi các máy chủ, xem tất cả những gì đã xảy ra và phát hiện các sự cố Munin sẽ tạo ra các đồ thị thông qua một ứng dụng web Vì vậy, điều đầu tiên chúng ta cần là một máy chủ web Apache
III.3 Cài đặt Server Munin
apt-get update
apt-get install apache2 apache2-utils libcgi nhanh-perl libapache2-mod-fcgid
Bật module fcgid trong apache
a2enmod fcgid
Tại thời điểm này bạn có thể thấy một cảnh báo là:
Could not reliably determine the server's fully qualified domain name
thì khởi động lại Apache, và có thể bỏ qua
III.4 Cài đặt Munin
Ta cài đạt Munin bằng lệnh
Sudo apt-get install -y munin
III.5 Cấu hình Munin Master
Munin đặt tất cả các file cấu hình của nó trong
/etc/Munin
Chúng ta có thể bắt đầu với việc chỉnh sửa tập tin cấu hình Munin
/etc/munin/munin.conf
nano /etc/Munin/munin.conf
Sau đó ở phía trên cùng của tập tin chúng ta có thể bỏ ghi chú các dòng sau
Trang 15dbdir /var/lib/Munin
htmldir /var/cache/Munin/www
logdir /var/log/Munin
rundir /var/run/Munin
Thay đổi thứ hai chúng ta cần phải thực hiện trong tập tin này là tên của máy chủ Nó
sẽ xuất hiện trên giao diện web Các localhost.localdomain mặc định không mô tả rõ ràng Xuống phía cuối của tập tin bạn sẽ thấy các dòng tương tự như sau;
[Localhost.localdomain]
address 127.0.0.1
use_node_name yes
Thay đổi tên theo mục đích của bạn, vì nó không phải là định dạng host.domain Bạn
có thể sử dụng MailServer, WebServer hay mail.love.vn Nó chỉ là văn bản cho giao diện web
Lưu file và đóng trình soạn thảo
Bây giờ chúng ta có thể chuyển sang các tập tin cấu hình Apache Các tập tin mặc định được cấu hình để chỉ cho phép truy cập từ localhost
nano /etc/Munin/apache.conf
Trong tập tin, ta sẽ thấy các dòng tương tự sau:
Order allow,deny
Allow from localhost 127.0.0.0/8 ::1
Allow from all
Trang 16Options None
Và ta thay thế như sau:
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Sau đó ta khởi động lại dịch vụ apache2 và Monin-node bằng lệnh:
service apache2 restart
service munin-node restart
Bây giờ chúng ta có thể thấy trang tổng quan Munin tại http://localhost.localdomain/ Munin/
Như vậy là quá trình cài đặt cơ bản cho máy chủ đã xong
Tiếp theo ta cấu hình Munin Nodes
Ở đây chúng ta sẽ cấu hình một Munin node trên một máy chủ từ xa
Cài đặt một Node
Chúng ta có thể cài đặt phần mềm node bằng lệnh:
apt-get install munin-node
Chỉnh sửa tập tin Munin-node.conf
nano /etc/munin/munin-node.conf
Trang 17Đến giữa tập tin ta thấy một phần nói về một danh sách các địa chỉ được phép kết nối và ta thêm một dòng mới với địa chỉ IP của Munin Master
allow ^10\.10\.10\.5$
Lưu thay đổi và thoát khỏi trình soạn thảo
Khởi động lại dịch vụ Munin-node để sử dụng các thay đổi trên bằng lệnh
service munin-node restart
Bây giờ trở lại trên máy Munin Master, máy Munin đầu tiên Chúng ta cần phải thiết lập tìm kiếm theo dõi trên node đã tạo Bằng cách chỉnh sửa file cấu hình Munin
nano /etc/munin/munin.conf
Sau đó ta thêm một khối mới cho node mới với một tên mô tả trong các định dạng tương tự như lúc sử dụng cho các Munin master Địa chỉ IP là địa chỉ cho node server
[MyNode.vn]
address 10.10.10.6
use_node_name yes
Khởi động lại máy chủ apache trên Munin master bằng lệnh
Trang 18service apache2 restart
Thời gian chờ để thực hiện quá trình tìm kiếm node là khoảng 5-10 phút Khi node mới sẽ xuất hiện trong trang web và đồ thị sẽ bắt đầu được vẽ
Kiểm tra New Plugins
Chúng ta có thể kiểm tra để xem nếu có plugin mới có thể được sử dụng để giám sát dịch vụ bổ sung trên máy chủ, bằng cách sử dụng lệnh munin-node-configure
munin-node-configure suggest
Một danh sách các plugin có sẵn và có hay không chúng có thể được sử dụng trên máy chủ Một số plugin có thể yêu cầu các module và các gói phụ phải được cài đặt trước khi có thể được sử dụng
Để kích hoạt một plugin bằng tay ta cần tạo ra một liên kết tượng trưng trong
/etc/munin/plugins trỏ trở lại vào file plugin từ /usr/share/munin/plugins/
Plugins MySQL
Để chạy plugin Mysql cho Munin ta sẽ cần phải cài đặt các module bộ nhớ Cache::Cache cho Perl và phải chắc chắn rằng mysql * liên kết tượng trưng được đưa
ra trong /etc/munin/plugins.
apt-get install libcache-cache-perl libipc-sharelite-perl
Nếu ta đang sử dụng bảng InnoDB, thì có thể cần tạo ra các tập tin tập tin /etc/munin/ plugin-conf.d/mysql_innodb
Nó sẽ dừng lại cảnh báo vô nghĩa về kích thước trống của bảng InnoDB