Ứng dụng phần mềm này được viết bằng ngôn ngữ C, chủ yếu được thiết kế để chạy trên hệ điều hành Linux, đồng thời nó cũng có thể chạy với hệ điều hành Unix và Windows.- Nagios được sử dụ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH
BÁO CÁO MÔN AN TOÀN HỆ THỐNG THÔNG TINĐỀ TÀI: HỆ THỐNG GIÁM SÁT NAGIOS
GIẢNG VIÊN: THS LƯU QUANG PHƯƠNG
Trang 2MỤC LỤC
I.TỔNG QUAN NAGIOS 3
1.Định nghĩa 3
2.Các chức năng của Nagios 3
3.Cách thức hoạt động của Nagios 4
II.CÀI ĐẶT DỊCH VỤ NAGIOS TRÊN CENTOS 7 4
1.Cài đặt các yêu cầu tiền điều kiện: 4
2.Tải Nagios Core và Nagios Plugins: 4
3.Cài đặt Nagios Core: 5
4 Cài đặt và cấu hình Nagios Plugins: 5
5 Tạo người dùng và giao diện truy cập: 6
6 Khởi động dịch vụ: 6
7 Vô hiệu hóa SELinux 6
8 Truy cập giao diện Nagios: 6
9 Sau mỗi khởi động máy cần khởi động lại nagios 6
10 Giao diện giám sát của Nagios Core 7
III.THÊM MÁY WINDOW VÀO HỆ THỐNG GIÁM SÁT NAGIOS 7
IV.THÊM MÁY CENTOS 7 VÀO HỆ THỐNG GIÁM SÁT NAGIOS 9
V.NAGIOS CẢNH BÁO QUA EMAIL 13
VI.BIỂU ĐỒ THEO DÕI 19
Trang 3I.TỔNG QUAN NAGIOS1 Định nghĩa
- Nagios là một ứng dụng phần mềm mã nguồn mở dành cho các hệ thống máy tính Nó được sử dụng để giám sát hệ thống, mạng và cơ sở hạ tầng Tên ban đầu là NetSaint, được phát triển bởi Ethan Galstad và một nhóm các Developer vào năm 1999 Ứng dụng phần mềm này được viết bằng ngôn ngữ C, chủ yếu được thiết kế để chạy trên hệ điều hành Linux, đồng thời nó cũng có thể chạy với hệ điều hành Unix và Windows.
- Nagios được sử dụng để giám sát liên tục các hệ thống, ứng dụng, dịch vụ và quy trình kinh doanh, v.v trong văn hóa DevOps Trong trường hợp xảy ra sự cố, Nagios có thể thông báo cho nhân viên kỹ thuật về sự cố, cho phép họ bắt đầu các quy trình khắc phục trước khi sự cố ngừng hoạt động ảnh hưởng đến quy trình kinh doanh, người dùng cuối hoặc khách hàng.
- Ứng dụng phần mềm này có sẵn trong hai phiên bản sau:
Nagios Core: Nagios còn được gọi là Nagios Core, là một sản phẩm mã nguồn mở được phát hành vào ngày 1 tháng 3 năm 2002.
Nagios XI: Là một phiên bản thương mại của Nagios, cung cấp các thành phần và công cụ tiên tiến để giám sát Phiên bản này cần có license phần mềm và được sử dụng miễn phí 30 ngày.
2 Các chức năng của Nagios
- Nagios là một công cụ giám sát mạnh mẽ giúp tăng tính khả dụng của các dịch vụ, máy chủ, ứng dụng và quy trình Công cụ này giúp tìm ra các lỗi giao thức, sự cố mạng và sự cố máy chủ để có thể dễ dàng phát hiện và khắc phục sự cố Cụ thể như:
Nagios xác định tất cả các loại sự cố máy chủ và mạng, giúp người dùng phân tích nguyên nhân gốc rễ của sự cố Nhờ đó, người dùng có thể đưa ra một giải pháp lâu dài cho các sự cố xảy ra thường xuyên.
Nagios sàng lọc toàn bộ quy trình kinh doanh và cơ sở hạ tầng end-to-end và cho phép người dùng khắc phục các vấn đề về hiệu suất của máy chủ Nó cũng giúp người dùng lập kế hoạch cơ sở hạ tầng của mình và cập nhật cho phù hợp để tránh các ứng dụng lỗi thời gây ra một số vấn đề Nagios sử dụng một single pass để giám sát toàn bộ cơ sở hạ tầng.
Việc bảo trì và bảo mật của máy chủ có thể được chuẩn hóa và quản lý bởi Nagios, đồng thời tự động khắc phục các sự cố, ngay cả trong các tình huống quan trọng Nếu có bất kỳ biến động nào trong hệ thống, nó sẽ kích hoạt cảnh báo để ngăn chặn các trường hợp xấu xảy ra.
Nagios có cơ sở dữ liệu với độ tin cậy cao và hệ thống theo dõi nhật ký hiệu quả với giao diện web đầy đủ thông tin.
Nagios giúp người dùng tìm ra sự cố máy chủ và trục trặc mạng Nó theo dõi định kỳ các vấn đề về hiệu suất của máy chủ Những vấn đề này có thể được tự động khắc phục và tìm thấy tại thời điểm giám sát Nagios sử dụng tất cả cấu trúc liên kết để xác định các phần phụ thuộc.
Nagios được sử dụng cho các dịch vụ mạng giám sát định kỳ như SMTP, HTTP, NNTP, ICMP, FTP, POP, SNMP,… bằng cách sử dụng máy chủ mẹ, Nagios có thể xác định hệ thống phân cấp của máy chủ mạng.
Trang 43 Cách thức hoạt động của Nagios
- Nagios chạy trên một máy chủ, thường là một daemon hoặc một service Sau khi được cài đặt và cấu hình, daemon Nagios (phần mềm nền) sẽ liên tục kiểm tra (cứ 5 phút một lần theo mặc định) cho các service mà nó được cấu hình.
- Nó chạy định kỳ các plugin nằm trên cùng một máy chủ, chúng liên hệ với các máy chủ hoặc máy chủ trên mạng của bạn hoặc trên internet Bạn có thể xem thông tin trạng thái bằng giao diện web, hoặc nhận thông báo qua email hoặc SMS nếu có vấn đề gì xảy ra (Plugin: Đây là các tập lệnh hoặc tập lệnh thực thi đã được biên dịch (tập lệnh Perl, tập lệnh shell, v.v.) có thể được chạy từ một dòng lệnh để kiểm tra trạng thái hoặc một máy chủ hoặc service Nagios sử dụng kết quả từ các plugin để xác định trạng thái hiện tại của các máy chủ và network service).
- Daemon Nagios hoạt động giống như một scheduler chạy các tập lệnh nhất định tại một số thời điểm nhất định Nó lưu trữ kết quả của các tập lệnh đó và sẽ chạy các tập lệnh khác nếu những kết quả này thay đổi.
- Khi service ngừng hoạt động hoặc chỉ số hiệu suất của nó vượt quá ngưỡng - nó có thể cảnh báo cho bạn về sự gián đoạn để bạn có thể điều tra Nagios có ba mức cảnh báo:
Success khi service hoạt động tốt
Warning khi đạt đến một số ngưỡng nhưng không nghiêm trọng đối với hoạt động của
service (chẳng hạn như việc sử dụng 80% dung lượng ổ đĩa là một vấn đề, nhưng chưa phải là một vấn đề nghiêm trọng)
Error khi service ngừng hoạt động hoặc đạt đến một ngưỡng nhất định (sử dụng 100%
dung lượng ổ đĩa)
1 Cài đặt các yêu cầu tiền điều kiện:
sudo -su
yum update
Trước khi cài đặt Nagios Core, bạn cần cài đặt các yêu cầu tiền điều kiện như Apache, PHP, GCC và các thư viện liên quan.
yum install httpd php gcc glibc glibc-common gd gd-devel make net-snmp
2 Tải Nagios Core và Nagios Plugins:
Tải Nagios Core và Nagios Plugins từ trang web chính thức của Nagios hoặc sử dụng lệnh wget hoặc curl
Too long to read onyour phone? Save to
read later on your computer
Save to a Studylist
Trang 53 Cài đặt Nagios Core:
Thêm một group mới nagcmd
Để tạo một nhóm mới trên hệ thống Linux, bạn có thể sử dụng lệnh groupadd Dưới đây là cách tạo một nhóm mới, ví dụ với tên "nagcmd":
groupadd nagcmd
Lệnh trên sẽ tạo một nhóm có tên "nagcmd" trên hệ thống của bạn Sau khi bạn đã tạo nhóm, bạn có thể sử dụng nhóm này để gán quyền truy cập cho người dùng hoặc tiến hành các hoạt động quản trị khác Nếu bạn đã tạo nhóm "nagcmd" và muốn thêm người dùng vào nhóm này, bạn có thể sử dụng lệnh usermod hoặc chỉnh sửa tệp /etc/group:
Tạo người dùng tên “nagios”
useradd nagios Sử dụng usermod: usermod -a -G nagcmd nagios
Di chuyển vào thư mục Nagios Core và thực hiện cài đặt:
4 Cài đặt và cấu hình Nagios Plugins:
Di chuyển vào thư mục Nagios Plugins và thực hiện cài đặt:
cd /nagios-plugins-2.3.3
./configure with-nagios-user=nagios with-nagios-group=nagios
make install
Trang 65 Tạo người dùng và giao diện truy cập:
Tạo người dùng nagios và gán mật khẩu cho người dùng: htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
6 Khởi động dịch vụ:
Khởi động Apache và dịch vụ Nagios: service httpd start
service nagios start
7 SElinux có thể gây ra một số lỗi trong quá trình demo, vậy nên cần vô hiệu hóa
service nagios restart
8 Truy cập giao diện Nagios:
Mở trình duyệt và truy cập vào địa chỉ IP của máy chủ với /nagios (ví dụ: http://your_server_ip/nagios) Sử dụng tên người dùng nagiosadmin và mật khẩu bạn đã tạo để đăng nhập vào giao diện Nagios Dùng lệnh hostname -I để kiểm tra địa chỉ ip của host
9 Sau mỗi khởi động máy cần khởi động lại nagios
Systemctl start httpd Systemctl start nagios
Cho phép nagios khởi động cùng với hệ thống: chkconfig nagios on Cho phép dịch vụ web khởi động cùng với hệ thống: systemctl enable httpd
Trang 710 Giao diện giám sát của Nagios Core
III THÊM MÁY WINDOW VÀO HỆ THỐNG GIÁM SÁTNAGIOS
1 Tải NSClient++ vào máy window ở: http://nsclient.com/download/
Trang 8server (check_nt)
Tiến hành cài đặt
Trang 92 Ở máy nagios, chỉnh file cấu hình Nagios:
use windows-server ; Inherit default values from a template hostname winserver ; The name we're giving to this host alias My Windows Server ; A longer name associated with the host address IP_address_of windows client ; IP address of the host }
Khởi động lại dịch vụ nagios
systemctl restart nagios.service
3 Vào máy window, theo đường dẫn C:\Program Files\NSClient++ vào file nsclient (Configuration settings), chỉnh sửa:
Vào Service, khởi động lại NSCLient
4 Tại máy window, tắt tường lửa5 Dùng máy nagios ping đến window
IV THÊM MÁY CENTOS 7 VÀO HỆ THỐNG GIÁM SÁTNAGIOS
1 Cài Đặt Các Gói Phụ Thuộc Yêu Cầu
yum install -y gcc glibc glibc-common openssl openssl-devel perl wget
Tải gói plugin NRPE:
Trang 10wget no-check-certificate -O nrpe.tar.gz
echo >> /etc/services # service file configuration
echo '# Nagios services' >> /etc/services
echo 'nrpe 5666/tcp' >> /etc/services
make install-init
systemctl enable nrpe.service
nano /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,host_ip #add host server id address
systemctl start nrpe.service
Trang 11cd /usr/local/nagios/etc/objects
cp localhost.cfg client.cfg
chown nagios:nagios client.cfg
nano client.cfg
Trang 12#Thêm địa chỉ IP và thay đổi tên host của máy linux client ở trong file client.cfg
#Thay thế các localhost trong các service sang hostname của máy client
# Comment đoạn filegroup
5 Khởi động lại dịch vụ: service nagios restart
Trang 13V.NAGIOS CẢNH BÁO QUA EMAIL
1 Chỉnh sửa file contact.cfg
contact_name nagiosadmin ; Short name of user alias Nagios Admin ; Full name of user email example@xyz.com ;Thêm email nhận cảnh báo
Trang 14Thêm vào đoạn lệnh sau:
set smtp=smtps://smtp.gmail.com:465 set smtp-auth=login
set smtp-auth-user=example@xyz.com #email nhận cảnh báo set smtp-auth-password=secret_token_of_your_mail_server #mật khẩu set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
Thoát ra, gõ lệnh:
echo "hi, folks" | mail -v -s "hello" example@xyz.com #email nhận cảnh báo
3 Chỉnh sửa file commands.cfg
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\ nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mailx -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ }
define command {
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/bin/mailx -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}
4 Kiểm tra lỗi
Trang 155 Khởi động lại nagios
systemctl restart nagios
6 Cài đặt các phụ thuộc được đề cập dưới đây trên máy chủ nagios
yum install mailx -y yum install sendmail -y yum install sendmail* -y
Trang 16Ở mỗi host, thêm vào đoạn:
Trang 17Nagios cảnh báo dịch vụ SSH máy linux-client đang tắt
Nagios cảnh báo máy winserver đang tắt
Trang 19VI BIỂU ĐỒ THEO DÕI
1 Cài đặt các gói cần thiết
yum install -y rrdtool perl-rrdtool perl-Time-HiRes php-gd systemctl enable npcd.service systemctl start npcd.service systemctl restart httpd.service
5 Cấu hình Nagios Core để gửi dữ liệu đến PNP4Nagios
5.1 Thay đổi thông tin cấu hình trong file: nano /usr/local/nagios/etc/nagios.cfg
Trang 205.3 Khởi động lại dịch vụ: service nagios restart
6 Xác minh PNP4Nagios hoạt động:
ls -la /usr/local/pnp4nagios/var/perfdata/localhost/ Nếu xuất hiện các dòng lệnh sau, tức PNP4Nagios đang hoạt động:
Trang 21Hoặc có thể truy cập web interface của PNP4Nagios: http://nagios_server/pnp4nagios/ Trong đó: nagios_server là địa chỉ IP của máy server của nagios
Your environment passed all requirements Remove or rename the /usr/local/pnp4nagios/share/install.php file now.
Remove file install.php: rm -f /usr/local/pnp4nagios/share/install.php Sau đó, refresh trang web, các đồ thị Nagios sẽ xuất hiện:
Trang 22Nagios Core sử dụng lệnh action_url trong định nghĩa đối tượng để cung cấp biểu tượng khi xem đối tượng máy chủ hoặc dịch vụ trong giao diện web
Trang 23service nagios restart
Bằng cách click vào biểu tượng đồ thị, sẽ xuất hiện các đồ thị của host hay service trong PNP4Nagios