« Home « Kết quả tìm kiếm

Nghiên cứu và triển khai hệ thống giám sát hạ tầng CNTT trên phần mềm mã nguồn mở Zabbix


Tóm tắt Xem thử

- BÙI ĐỨC THÀNH Tên đề tài: NGHIÊN CỨU VÀ TRIỂN KHAI HỆ THỐNG GIÁM SÁT HẠ TẦNG CNTT TRÊN PHẦN MỀM MÃ NGUỒN MỞ ZABBIX Chuyên ngành: KỸ THUẬT MÁY TÍNH LUẬN VĂN THẠC SĨ KỸ THUẬT Kỹ thuật máy tính NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Ngô Hồng Sơn Hà Nội – Năm 2017 1 LỜI CAM ĐOAN Tôi xin cam đoan luận văn Thạc sỹ này là đề tài nghiên cứu của tôi, không sao chép của người khác.
- 11 CHƯƠNG I: KHẢO SÁT HIỆN TRẠNG VỀ HẠ TẦNG CNTT CỦA TỔNG CÔNG TY VNPT MEDIA.
- 12 1.1 Khảo sát về hiện trạng hạ tầng CNTT của Tổng công ty VNPT Media.
- 12 1.1.1 Mô hình mạng tổng quan.
- 15 1.2 Giới thiệu về các phần mềm giám sát hiện tại và lý do chọn Zabbix.
- 15 1.2.1 Giới thiệu các phần mềm giám sát hiện nay.
- 15 1.2.1.1 Giới thiệu phần mềm Nagios.
- 16 1.2.1.2 Giới thiệu phần mềm Cacti.
- 18 1.2.2 Ưu nhược điểm của Zabbix và lý do chọn Zabbix.
- 21 1.3 Tổng quan về phần mềm Zabbix.
- 25 1.3.1 Kiến trúc của hệ thống giám sát Zabbix.
- 25 1.3.1.1 Zabbix server.
- 25 1.3.1.2 Zabbix proxy.
- 26 1.3.1.3 Zabbix agent.
- 26 1.3.1.4 Zabbix Web frontend.
- 26 1.3.2 Cơ chế giám sát, thu thập dữ liệu và cảnh báo của Zabbix.
- 27 1.3.2.2 Zabbix Agent.
- 30 1.3.3 Các mô hình triển khai hệ thống Zabbix.
- 31 1.3.3.1 Mô hình tập trung.
- 31 1.3.3.2 Mô hình phân tán.
- 34 CHƯƠNG II: XÂY DỰNG GIẢI PHÁP GIÁM SÁT ZABBIX.
- 35 2.1 Giải pháp giám sát cho hạ tầng CNTT của Tổng công ty Truyền Thông VNPT-Media.
- 35 2.2 Các thành phần cần giám sát.
- 36 2.3 Thiết kế các thành phần của hệ thống giám sát Zabbix.
- 37 2.3.1 Zabbix Database.
- 37 2.3.2 Zabbix Server & Zabbix web.
- 38 2.3.3 Zabbix Proxy.
- 40 2.4 Giải pháp cảnh báo qua Telegram Messager.
- 40 CHƯƠNG III: ỨNG DỤNG HỆ THỐNG GIÁM SÁT ZABBIX CHO HẠ TẦNG CNTT TỔNG CÔNG TY VNPT-MEDIA.
- 42 3.1 Mô hình thực nghiệm.
- 43 3.2.1 Cài đặt Zabbix theo mô hình phân tán.
- 43 3.2.1.1 Cài đặt Zabbix server.
- 43 3.2.1.2 Cài đặt Zabbix Proxy và Monitor các host thông qua proxy.
- 45 3.2.1.3 Cài đặt Zabbix Agent, kết nối với Zabbix proxy.
- 47 3.2.2 Phát triển tính năng giám sát của Zabbix thông qua Web API.
- 48 3.2.3 Xây dựng tính năng giám sát phần cứng vật lý của các máy chủ.
- 58 3.3.1 Giám sát được hiệu năng của máy chủ, thiết bị mạng.
- 59 3.3.2 Giám sát dịch vụ.
- 60 3.3.3 Giám sát phần cứng máy chủ.
- 61 3.3.4 Giám sát dịch vụ qua web API.
- 61 3.3.5 Cảnh báo qua Telegram khi có sự cố.
- 66 5 Danh mục các ký hiệu, các chữ viết tắt STT Từ viết tắt Viết đầy đủ 1 IT Infomation Technology 2 SNMP Simple Network Managerment Protocol 3 API Interface Application Programming 4 HTTP Hyper Text Tranfer Protocol 5 HTTPS HTTP Over Secure 6 SSH Secure Shell 7 TELNET Terminal Network 8 FTP File Tranfer Protocol 9 POP3 Post Office Protocol version 3 10 IMAP Internet Message Access Protocol 11 DNS Domain Name System 12 IPMI Intelligent Platform Management Interface 13 IP Internet Protocol 14 TCP Tranfer Control Protocol 15 LAN Local Area Network 16 WAN Wide Area Network 6 Danh mục các bảng Bảng 1: Yêu cầu các phần mềm cài đặt.
- 38 Bảng 2: Cấu hình tối thiểu cài đặt Zabbix.
- 38 Bảng 3: Các gói cài đặt cho Zabbix.
- 39 Bảng 4: Port kết nối giữa Zabbix proxy và Zabbix server, zabbix agent.
- 40 Bảng 5: Các mức độ cảnh báo.
- 41 Bảng 6: Thông tin IP, module cài đặt cho mô hình thực nghiệm.
- 42 7 Danh mục các hình vẽ, đồ thị Hình vẽ 1: Mô hình hạ tầng CNTT của Tổng Công ty VNPT Media.
- 12 Hình vẽ 2: Mô hình và cơ chế làm việc của Nagios NSClient.
- 17 Hình vẽ 3: Mô hình và cơ chế làm việc của Nagios NRPE.
- 17 Hình vẽ 4: Sơ đồ khối của hệ quản trị Cacti.
- 19 Hình vẽ 5: Các thành phần của hệ quản trị Cacti.
- 20 Hình vẽ 6: Kiến trúc của Zabbix.
- 25 Hình vẽ 7: Cơ chế thu thập dữ liệu của Zabbix.
- 27 Hình vẽ 8: Zabbix passive check.
- 29 Hình vẽ 9: Zabbix active check.
- 30 Hình vẽ 10: Mô hình triển khai Zabbix trên một node.
- 32 Hình vẽ 11: Mô hình triển khai Zabbix có tính sẵn sàng cao.
- 33 Hình vẽ 12: Mô hình Zabbix phân tán.
- 34 Hình vẽ 13: Mô hình triển khai Zabbix phân tán.
- 35 Hình vẽ 14: Mô hình thực nghiệm Zabbix phân tán.
- 42 Hình vẽ 15: Cấu hình Zabbix server kết nối Zabbix proxy.
- 46 Hình vẽ 16: Add host cần giám sát qua Zabbix proxy.
- 47 Hình vẽ 17: Giao diện của dell open managent.
- 53 Hình vẽ 18: Lệnh kiểm tra trạng thái phần cứng của Open Managent.
- 53 Hình vẽ 19: Cảnh báo phần cứng qua Telegram.
- 54 Hình vẽ 20: Khởi tạo bot trên Telegram.
- 55 Hình vẽ 21: Tạo bot trên Telegram.
- 55 Hình vẽ 22: API, token mà Telegram cung cấp.
- 56 Hình vẽ 23: Tạo Media types gửi alert tới Telegram.
- 57 Hình vẽ 24: Tạo Action trên Zabbix gửi alert tới Telegram.
- 57 Hình vẽ 25: Zabbix alert tới Telegram khi ổ cứng free 1000 Very large RedHat Enterprise Linux 8 CPU cores/16GB Fast RAID10 MySQL InnoDB or PostgreSQL >10000 Bảng 2: Cấu hình tối thiểu cài đặt Zabbix 39 - Yêu cầu về các packet phần mềm sau: Phần mềm Phiên bản Ghi chú Apache 1.3.12 or later PHP 5.3.0 or later PHP v7 không hỗ trợ PHP extensions: Gd 2.0 or later bcmath ctype libXML 2.6.15 or later xmlreader xmlwriter session sockets mbstring gettext ldap Cài gói này khi sử dụng xác thực bằng LDAP ibm_db2 Cài gói này khi sử dụng Zabbix database là IBM_DB2 mysqli Cài gói này khi sử dụng Zabbix database là MySQL oci8 Cài gói này khi sử dụng Zabbix database là Oracle pgsql Cài gói này khi sử dụng Zabbix database là PosgreSQL sqlite3 Cài gói này khi sử dụng Zabbix database là SQLite Bảng 3: Các gói cài đặt cho Zabbix 40 2.3.3 Zabbix Proxy Do số lượng các máy chủ, thiết bị mạng tại mỗi chi nhánh ít (khoảng 20-30 server).
- Nên mỗi chi nhánh cài đặt một Proxy.
- Để đảm bảo Zabbix server có thể nhận được dữ liệu từ Zabbix Proxy, cần đảm bảo Policy trên Firewall phải được mở các port kết nối như bảng bên dưới: Bảng mô tả Port kết nối giữa Zabbix Proxy và Zabbix Server, Agent Nguồn Port nguồn Đích Port đích Mô tả Zabbix proxy any Zabbix server 10051/tcp Zabbix proxy gửi thông tin tới Zabbix server Zabbix proxy any Zabbix hosts (agents) 10050/tcp Zabbix proxy tới host cần giám sát Zabbix hosts (agents) any Zabbix proxy 10051/tcp Zabbix hosts connect to Zabbix proxy Bảng 4: Port kết nối giữa Zabbix proxy và Zabbix server, zabbix agent 2.4 Giải pháp cảnh báo qua Telegram Messager Ngày nay với sự bùng nổ của Internet, các ứng dụng nhắn tin OTT như skype, telegram, zalo, viber… ngày càng phát triển trên thế giới.
- Trong 1 mô hình mạng có rất nhiều thiết bị (hàng nghìn thiết bị) thì hàng ngày có rất nhiều trigger: warning, information cần gửi tới người quản trị.
- 41 Bởi vậy, việc chuyển từ cảnh báo SMS sang việc gửi cảnh báo qua các ứng dụng nhắn tin OTT cũng là một phương pháp giúp tiết kiệm chi phí cho doanh nghiệp.
- Nhưng việc cảnh báo qua Telegram chỉ áp dụng cho các trường hợp sự cố không phải là critical, để đảm bảo hệ thống cảnh báo hiệu quả tiết kiệm thì cũng phải kết hợp các hình thức gửi cảnh báo qua email, SMS….
- Và việc định nghĩa ra các cách thức cảnh báo tương ứng mới các mức độ của sự cố khác nhau, rất quan trọng khi thiết kế triển khai hệ thống giám sát.
- Các mức độ trong cảnh báo của Zabbix: Các mức độ Cảnh báo Mô tả các cảnh báo Màu Not classified Không rõ Grey Information Mức độ thông tin Light green Warning Mức độ cảnh báo Yellow Average Sự cố mức độ bình thường Orange High Sự cố nghiêm trọng xảy ra Red Disaster Sự cố mức độ cao nhất Bright red Bảng 5: Các mức độ cảnh báo Gửi alert tới người quản trị theo mức độ nguy hiểm của sự cố.
- Khi có các triggers có trạng thái Information, warning, Average thì gửi email, telegram messager ngay tức khắc tới người quản trị hệ thống.
- Problem: thì sẽ gửi email ngay tức khắc tới người quản trị hệ thống + 5 phút sau gửi SMS tới người quản trị hệ thống + 15 phút sau gửi email cho người quản lý (Manager.
- 30 phút sau gửi alert SMS cho người quản lý … 42 CHƯƠNG III: ỨNG DỤNG HỆ THỐNG GIÁM SÁT ZABBIX CHO HẠ TẦNG CNTT TỔNG CÔNG TY VNPT-MEDIA 3.1 Mô hình thực nghiệm Switch MySQL Primary Zabbix Server IT_ADMIN Switch FirewallVNPT Media OfficeMobifone-DCHttp, port 80Zabbix proxy Hình vẽ 14: Mô hình thực nghiệm Zabbix phân tán Bảng mô tả cấu hình và IP server: STT Tên Máy IP Các module cài đặt Note 1 VMS_Web Apache, mysql 2 VMS_Zabbix_Proxy Zabbix proxy 3 VMS_Firewall Pfsense2.3 4 Media_Head_Zabbix server Zabbix server, Zabbix web 5 Media_Head_APP/DB Apache, mysql Bảng 6: Thông tin IP, module cài đặt cho mô hình thực nghiệm 43 3.2 Triển khai thử nghiệm 3.2.1 Cài đặt Zabbix theo mô hình phân tán 3.2.1.1 Cài đặt Zabbix server Bước 1: Cài đặt repository cho zabbix: rpm -ihv http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-release-2.4-1.el6.noarch.rpm Cài đặt các gói của Zabbix trên Zabbix server yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent Bước 2: Cài đặt Database MySQL: yum install mysql-server Restart service MySQL: service mysqld restart Cấu hình MySQL: mysql_secure_installation - Enter current password for root (enter for none.
- Y> Bước 3: Tạo cơ sở dữ liệu Zabbix 44 Zabbix sử dụng tập lệnh SQL để tạo ra các lược đồ cơ sở dữ liệu cần thiết và cũng có thể chèn vào một cấu hình mặc định.
- mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'.
- mysql> exit Import dữ liệu mẫu: cd /usr/share/doc/zabbix-server-mysql*/create mysql -uroot -prootpass zabbix < schema.sql mysql -uroot -prootpass zabbix < images.sql mysql -uroot -prootpass zabbix < data.sql Bước 4: Cấu hình file /etc/zabbix/zabbix_server.conf vi /etc/zabbix/zabbix_server.conf Uncomment và sửa các thông tin kết nối tới database: DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix Restart zabbix và bật ở chế độ auto: service zabbix-server restart chkconfig zabbix-server on 45 chkconfig mysqld on 3.2.1.2 Cài đặt Zabbix Proxy và Monitor các host thông qua proxy Bước 1: Cài đặt repository cho zabbix proxy rpm -ihv http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm Bước 2: Cài đặt các gói của Zabbix trên Zabbix server yum install zabbix-proxy-mysql.x86_64 Bước 3: Cài đặt database mysql cho Zabbix proxy yum install mysql-server Tạo database zabbix_proxy: Import dữ liệu schema cho database của Zabbix_proxy: Bước 4: Khai báo các thông số kết nối của Zabbix proxy tới database server và Zabbix server Vi /etc/zabbix/zabbix_proxy.conf Server IP của Zabbix server Hostname=VMS_Zabbix_Proxy DBName=zabbix_proxy DBUser=zabbix_proxy DBPassword=123456789 DBPort=3306 Bước 5: Start Zabbix proxy, và kiểm tra tiến trình xem đã start thành công chưa Bước 6: Cấu hình Zabbix server kết nối tới Zabbix proxy 46 Hình vẽ 15: Cấu hình Zabbix server kết nối Zabbix proxy Bước 7: Cấu hình giám sát 1 host thông qua Zabbix proxy - Cài đặt agent trên host cần giám sát - Cấu hình file config của agent để khai báo kết nối tới Zabbix proxy và zabbix server - Add host trên giao diện quản trị của Zabbix server và chọn “Monitored by Proxy” 47 Hình vẽ 16: Add host cần giám sát qua Zabbix proxy  Hoàn thành việc cài đặt Zabbix Proxy.
- 3.2.1.3 Cài đặt Zabbix Agent, kết nối với Zabbix proxy Cài đặt lên máy client Bước 1: Tạo tài khoản User: zabbix, Password: zabbix và cài đặt gói Zabbix-agent yum install zabbix-agent Bước 2: Sửa file cấu hình của Zabbix agent và khai báo các thông số kết nối tới Zabbix server vi /etc/zabbix/zabbix_agentd.conf Edit và sửa file config: Server IP-address or DNS of your zabbix-proxy Hostname=Zabbix Proxy Bước 3: Chạy zabbix_agentd trên tất cả các máy được giám sát.
- 48 chkconfig zabbix-agent on service zabbix-agent start 3.2.2 Phát triển tính năng giám sát của Zabbix thông qua Web API Bước 1: Xây dựng script để đẩy dữ liệu giám sát ra log file Script để monitor CPU, HDD, RAM #!/bin/bash #Tao log file theo timestamp date=`date +"%r %d/%m/%Y"` logfile=/Monitor/mor.log touch $logfile echo "Log at $date.
- column -t| sed -n '2 p'| awk '{print logfile 49 - Script trên được chạy định kỳ để check trạng thái của CPU, HDD, Ram trên máy chủ, và sinh ra log file: [root@test Monitor]# cat mor.log Log at 08:59:29 AM IP hostname: test01.media.vas RAM usage: 93.1811% CPU usage: 95.8% HDD usage: 8% Bước 2: Dựng một API giám sát bằng java để đọc dữ liệu từ log file - API giám sát CPU usage: [root@localhost monitor]# cat cpu.jsp - API giám sát Ram usage 51 - API giám sát HDD usage: [root@localhost monitor]# cat hdd.jsp [root@localhost monitor]# Bước 3: Cài đặt tomcat, để dựng web API trên port 80 52 - Add các link API dưới đây vào Zabbix để giám sát và cảnh báo khi có lỗi xảy ra http Admin/monitor/cpu.jsp http Admin/monitor/hdd.jsp http Admin/monitor/ram.jsp 3.2.3 Xây dựng tính năng giám sát phần cứng vật lý của các máy chủ Hiện tại các hệ thống giám sát tập trung mới chỉ giám sát được % RAM usage, %CPU usage.
- HDD usage của server dịch vụ mà không giám sát được phần cứng của server ở mức physical (Lỗi ổ cứng báo đèn đỏ, lỗi Ram, lỗi CPU, lỗi nguồn.
- Đối với mỗi hãng máy chủ như Dell, IBM, HP…đều cung cấp phần mềm của hãng, cài đặt trên OS để check trạng thái các thiết bị ở mức physical.
- Vì vậy việc cài đặt tích hợp công cụ phần mềm của hãng, kết hợp với hệ thống giám sát Zabbix có ưu điểm như.
- Người quản trị hệ thống Datacenter hàng ngày không phải mất công đi thực hiện kiểm tra các đèn báo ổ cứng, ram, CPU thủ công hàng ngày.
- Tăng khả năng giám sát hệ thống ở mức vật lý, ngăn ngừa được các lỗi phát sinh từ phần cứng • Khi có lỗi liên quan đến ổ cứng, ram, CPU, nguồn… thì có email, alert sms cho người quản trị hệ thống và trực ca.
- Tăng tính ổn định của hệ thống Trong phạm vi của luận văn, Server Dell được thử nghiệm để tích hợp giám sát mức vật lý.
- Cài đặt phần mềm Dell OpenManagement ▪ wget -q -O – http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash yum install srvadmin-all ▪ srvadmin-services.sh start 53 • Sau khi cài đặt thành công, thực hiện check phần cứng bằng GUI: http://địa chỉ IP: port 1311 Hình vẽ 17: Giao diện của dell open managent • Check phần cứng bằng lệnh: Hình vẽ 18: Lệnh kiểm tra trạng thái phần cứng của Open Managent - Cấu hình Zabbix gửi alert khi có sự cố xảy ra: 54 Hình vẽ 19: Cảnh báo phần cứng qua Telegram 3.2.4 Xây dựng tính năng alert thông qua Telegram messenger Telegram có khả năng đáp ứng được việc.
- Send các altert dạng text tới group telegram - Các biểu đồ phức tạp trong latest data của Zabbix sẽ được gửi tới group telegram Cài đặt và cấu hình: Bước 1: Tạo bot trên telegram và lấy thông tin API key trên telegram - Khởi tạo 1 bot: bằng lệnh /start trên Telegram 55 Hình vẽ 20: Khởi tạo bot trên Telegram - Tạo 1 bot trên Telegram bằng lệnh: /newbot Hình vẽ 21: Tạo bot trên Telegram 56 - Đặt tên cho bot: ví dụ: HUST_THANHBD_BOT, sau khi tạo bot thành công.
- Hình vẽ 22: API, token mà Telegram cung cấp - Test API của Telegram với Token vừa tạo được ở trên: Bước 2: Cấu hình trên Zabbix cho việc gửi alert tới Telegram.
- Tạo Media types cho việc gửi Alert tới Telegram như lựa chọn bên dưới: 57 Hình vẽ 23: Tạo Media types gửi alert tới Telegram - Tạo action: Report Problem to Telegram Hình vẽ 24: Tạo Action trên Zabbix gửi alert tới Telegram Bước 3: Đẩy file telegram_zabbix.sh vào thư mục AlertScriptsPath của phần mềm Zabbix.
- Có thể xem đường dẫn chính xác trong file config: zabbix_server.conf.
- 58 Hình vẽ 25: Zabbix alert tới Telegram khi ổ cứng free

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt