Chuyên đề quản trị hệ thống mạng 2 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC KHOA KHOA HỌC CƠ BẢN XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG MẠNG QUA GMAIL VÀ SMS H.
Trang 1KHOA KHOA HỌC CƠ BẢN
XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG MẠNG QUA GMAIL VÀ SMS
Thành phố Hồ Chí Minh, ngày 20/10/2021
Trang 2Mục Lục
Trang 3Chương 1: Cơ sở lý thuyết1.1 Tổng quan về hệ thống giám sát và cảnh báo
Giám sát mạng là việc sử dụng một hệ thống để liên tục theo dõi một mạng
máy tính, xem xét coi có các thành phần hoạt động chậm lại hoặc không hoạtđộng và thông báo cho quản trị viên mạng ( qua email, tin nhắn SMS hoặc cácbáo động khác) trong trường hợp mạng không hoạt động hoặc có rắc rối khác.Giams sát mạng là một phần của quản lý mạng
Trong khi một hệ thống phát hiện xâm nhập giám sát mạng máy tính về các mối
đe dọa từ bên ngoài, một hệ hống giám sát mạng về các vấn đề gây ra bởi cácmáy chủ quá tải hoặc bị hư hỏng, các kết nối mạng hoặc các thiết bị khác
Vd: Để xác định tình trạng của máy của web, phần mềm giám sát có thể định kỳgửi một yêu cầu HTTP để nạp một trang mạng Đối với máy chủ email, mộtthông điệp kiểm tra có thể gửi qua SMTP và được truy xuất bởi IMAP hoặcPOP3
Thông thường các thông số đo lường là thời gian đáp ứng, tính là khả dụng vàthời gian hoạt động mặc dù các chỉ số thống nhất và độ ti cậy đang bắt đầu phổbiến Việc bổ sung rộng rãi các thiết bị tối ưu hóa WAN đang có ảnh hưởng bấtlời đến hầu hết các công cụ giám sát mạng, đặc biệt là khi để đo chính xác độ trễend-to-end bởi vì chúng hạn chế khả năng hiển thị thời gian trễ round-trip
Trạng thái request lỗi: Như khi một kết nối không thể được thiết lập, nó out (tốn time dài hơn time Server phản hồi), hoặc các tài liệu, tin nhắn khôngthể lấy được, thường sinh ra một hành động từ hệ thống giám sát Những hànhđộng này khác nhau Một báo động có thể được gửi (qua SMS, email, ) tới cácadmin, hệ thống chuyển đổi dự phòng tự động có thể được kích hoạt để loại bỏcác máy chủ gặp vấn đề hoàn thành nhiệm vụ cho đến khi nó có thể dược sửachửa, giám sát hiệu xuất một đường mạng còn được gọi là lưu lương mạng
Trang 4• Các thiết bị hạ tầng mạng như: Hub, Router, Switch
• Máy trạm, mô hình máy trạm
• Các thiết bị và hệ thống phục vụ cho việc theo dõi hệ thống mạng
• Phần mềm và ứng dụng trong máy trạm, Server
1.3 Các hệ thống giám sát phổ biến hiện nay
Nagios: là một công cụ giám sát mạng mạnh mẽ Nagios cung cấp các tính năng
như cảnh báo, xử lý sự kiện và báo cáo Nagios Core là trung tâm của các ứngdụng có chứa các công cụ giám sát cốt lõi và một giao diện web cơ bản Chúng
ta có thể thực hiện giám sát các dịch vụ, ứng dụng, và các số liệu, một lối vàolựa chọn cũng như các add-ons cho trực quan dữ liệu, đồ thị, phân phối tải, và
hỗ trợ cơ sở dữ liệu MySQL, giữa những người khác
• Giám sát mọi phần cứng như nhiệt độ, báo động, v.v có khả năng gửi dữliệu thu thập được qua mạng tới các plugin cụ thể
• Giám sát từ xa bằng cách sử dụng Nagios Remote Plugin Executor hoặcthông qua SSH hoặc đường hầm SSL được mã hóa Kiểm tra dịch vụsong song và nhật ký xoay vòng log tự động
Trang 5Hỗ trợ triển khai các máy chủ giám sát dự phòng, biểu đồ dữ liệu hiệu suất vàphần phụ trợ cơ sở dữ liệu Giao diện web để xem trạng thái mạng hiện tại,thông báo, lịch sử sự cố, các file log, v.v.
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ó khảnăng phục vụ cho hệ thống mạng tầm trung và lớn của các doanh nghiệp hiện tạivới mức chi phí đầu tư vừa phải
Một vài đặc điểm độc đáo của Zabbix:
Nó hoàn toàn là mã nguồn mở và có thể sử dụng cho phi thương mại và cảthương mại
Người quản trị có thể dễ dàng giám sát máy chủ và mạng với sự hỗ trợ của dữliệu thống kê với hiệu suất cao
Người quản trị cũng có thể giám sát tất cả các thiết bị mạng và ứng dụng gắnvào mô hình mạng của mình
Đưa ra cảnh báo và gửi SMS, email nếu phát hiện hoạt động đáng ngờ nào.Được sử dụng cho cả tổ chức quy mô nhỏ và lớn
Cacti không chỉ là công cụ giám sát mạng thông thường mà còn là công cụ giúpthu thập dữ liệu liên quan đến quyền truy cập của người dùng Truy cập củangười dùng sẽ được ghi vào biểu đồ từ đó xây dựng một đồ thị phức tạp vàthường dữ liệu được lưu vào Mysql database Tất cả các công việc thu thập dữliệu được thực hiện qua cron job thông qua kịch bản ngoài giúp cung cấp số liệuxây dựng các đồ thị Cacti có thể sử dụng để xây dựng tất cả các loại đồ thị và
có thể được hiển thị cũng như tổ chức theo nhiều cách
SolarWinds được biết đến qua các phần mềm giám sát hiệu suất CNTT / mạng.
Tính năng chính của các phần mềm là giám sát môi trường mạng và xác định,giải quyết các vấn đề cản trở hiệu suất mạng SolarWinds tập trung vào các
Trang 6chuyên gia CNTT, MSP và DevOps cùng với loại bỏ sự phức tạp trong sử dụng
& vận hành của các mô hình phần mềm thế hệ trước
Tại Việt Nam, Solarwinds được biết đến nhiều nhất cũng như được sử dụng,mua nhiều nhất là Network Performance Monitor – phần mềm giúp giám sátmạng mạnh mẽ với chi phí tương đối phù hợp với nhiều doanh nghiệp ở ViệtNam
• Theo dõi lỗi, hiệu suất và tính khả dụng: Phát hiện, chẩn đoán và giảiquyết các vấn đề về hiệu suất mạng và tránh thời gian chết với phần mềmtối ưu hóa mạng
• Phân tích hop-by-hop dọc theo các đường dẫn quan trọng: Xem hiệu suất,lưu lượng truy cập và chi tiết cấu hình của các thiết bị và ứng dụng đanghoạt động, trên đám mây hoặc trên các môi trường kết hợp với NetPath
™
• Tương quan dữ liệu mạng chồng chéo: Tăng tốc xác định nguyên nhângốc bằng cách kéo và thả các số liệu hiệu suất mạng trên một dòng thờigian chung để tương quan trực quan ngay lập tức trên tất cả dữ liệu mạngcủa bạn
• Cấu trúc liên kết tùy chỉnh và cảnh báo thông minh nhận biết phụ thuộc:Đáp ứng với nhiều kiểm tra điều kiện, các sự kiện tương quan, cấu trúcliên kết mạng và phụ thuộc thiết bị
• Phát hiện và lập bản đồ mạng có dây và không dây tự động: Tự độngkhám phá và ánh xạ các thiết bị, số liệu hiệu suất, sử dụng liên kết vàvùng phủ sóng không dây
• Dự báo năng lực tự động, cảnh báo và báo cáo: Tự động tính toán ngàycạn kiệt bằng cách sử dụng ngưỡng tùy chỉnh dựa trên mức sử dụng caonhất và trung bình
• Giám sát toàn diện nhóm sản phẩm F5 BIG-IP: Trực quan hóa và hiểu rõhơn về sức khỏe và hiệu suất của môi trường cung cấp dịch vụ F5 củabạn
Trang 7• Giám sát và quản lý mạng không dây: Truy xuất số liệu hiệu suất cho cácđiểm truy cập tự động, bộ điều khiển không dây và máy khách.
• Phần mềm giám sát mạng tập trung, quản lý đơn giản có thể tùy chỉnh:Bảng điều khiển, chế độ xem và biểu đồ hiệu suất mạng dựa trên web cóthể tùy chỉnh
• Chất lượng trải nghiệm của người dùng cuối với Packet Capture andAnalysis: Xác định xem các thay đổi trong trải nghiệm của người dùngcuối có phải do ứng dụng hoặc mạng gây ra hay không
• Đường cơ sở hiệu suất mạng thống kê động: Tính toán động các ngưỡngđường cơ sở từ dữ liệu hiệu suất mạng lịch sử
• Giám sát sức khỏe phần cứng: Theo dõi, cảnh báo và báo cáo về các sốliệu chính của thiết bị, bao gồm nhiệt độ, tốc độ quạt và nguồn điện
• Báo cáo hiệu suất và tính khả dụng có thể tùy chỉnh: Lên lịch và tạo báocáo hiệu suất mạng tùy chỉnh với một trong hơn 100 mẫu ngoài hộp
• Khám phá biểu đồ hiệu suất mạng: Số liệu hiệu suất mạng thời gian thựcvới biểu đồ và đồ thị tương tác từ các thiết bị mạng của bạn
Trang 9• Prometheus thực hiện quá trình lấy các thông số, số liệu (metric) từ cácjob được chỉ định qua kênh trực tiếp hoặc thông qua dịch vụ Pushgatewaytrung gian Sau đấy Prometheus sẽ lưu trữ các dữ liệu thu thập được ởlocal máy chủ Tiếp đến sẽ chạy các rule để xử lý các dữ liệu theo nhucầu cũng như kiểm tra thực hiện các cảnh báo mà bạn mong muốn.
Trang 101.6 Grafana là gì ?
Grafana là một nền tảng open-source chuyên phục vụ mục đích theo dõi và đánhgiá các số liệu thu được Theo định nghĩa như vậy chúng ta có thể thấy tính ứngdụng của Grafana rất rộng chứ không chỉ trong khối IT Bất kì lĩnh vực nào cóthể thu được dữ liệu theo dòng thời gian đều có thể hiển thị tối ưu trên Grafana.Ngoài khả năng kết nối đa dạng với các nguồn dữ liệu, phần giao diện của công
cụ này rất thân thiền với người dùng Dễ dàng đưa ra thông tin và cảnh báo
1.7 Một số thuật ngữ khi làm quen Prometheus và Grafana
Time-series Data: là một chuỗi các điểm dữ liệu, thường bao gồm các phép đo
liên tiếp được thực hiện từ cùng một nguồn trong một khoảng thời gian
Alert: một cảnh báo (alert) là kết quả của việc đạt điều kiện thoả mãn một rule
cảnh báo được cấu hình trong Prometheus Các cảnh báo được gửi đến dịch vụAlertmanager
Alertmanager: chương trình tiếp nhận nhiệm vụ xử lý các hoạt động cảnh báo Client Library: một số thư viện hỗ trợ người dùng có thể tự tuỳ chỉnh lập trình
phương thức riêng để lấy dữ liệu từ hệ thống và đẩy dữ liệu metric vềPrometheus
Endpoint: nguồn dữ liệu của các chỉ số (metric) mà Prometheus sẽ lấy thông
tin
Exporter: là một chương trình được sử dụng với mục đích thu thập, chuyển đổi
các metric không ở dạng kiểu dữ liệu chuẩn Prometheus sang chuẩn dữ liệu
Trang 11Prometheus Sau đấy exporter sẽ expose web service api chứa thông tin cácmetrics hoặc đẩy về Prometheus.
Instance: một instance là một nhãn (label) dùng để định danh duy nhất cho một
target trong một job
Job: là một tập hợp các target chung một nhóm mục đích Ví dụ: giám sát mộtnhóm các dịch vụ database,… thì ta gọi đó là một job
PromQL: promql là viết tắt của Prometheus Query Language, ngôn ngữ này
cho phép bạn thực hiện các hoạt động liên quan đến dữ liệu metric
Sample: sample là một giá trị đơn lẻ tại một thời điểm thời gian trong khoảng
thời gian time series
Target: một target là định nghĩa một đối tượng được Prometheus đi lấy dữ liệu
(scrape) Ví dụ như: nhãn nào sẽ được sử dụng cho đối tượng, hình thức chứngthực nào sử dụng hoặc các thông tin cần thiết để quá trình đi lấy dữ liệu ở đốitượng được diễn ra
Trang 12Chương 2: Cài đặt cấu hình2.1 Sơ đồ thực hiện
2.2 Cài đặt Prometheus
Download here: https://prometheus.io/download/
wget
https://github.com/prometheus/prometheus/releases/download/v2.30.3/promet heus-2.30.3.linux-amd64.tar.gz
# Giải nén file vừa tải và copy vào đường dẫn /usr/local/prometheus/
tar -xvzf prometheus-2.30.3.linux-amd64.tar.gz
mv prometheus-2.30.3.linux-amd64 /usr/local/prometheus
Tạo service cho prometheus chạy cùng hệ thống
Trang 13Đoạn config của file prometheus.service như sau:
systemctl start prometheus
systemctl enable prometheus
Trang 14systemctl status prometheus
Mở port cho prometheus
firewall-cmd zone=public add-port=9090/tcp
firewall-cmd zone=public add-port=9090/tcp permanent
systemctl reload firewalld
Truy cập vào web của promethues: http://ip:9090
Trang 152.3 Cài Node_Exporter giám sát các server
Node_exporter sẽ được cài đặt trên các server client cho việc giám sát các thông
số phần cứng như CPU, RAM, DISK…
wget
https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_ exporter-1.2.2.linux-amd64.tar.gz
tar -xzvf node_exporter-1.2.2.linux-amd64.tar.gz
mv node_exporter-1.2.2.linux-amd64/node_exporter /usr/local/bin/
Tạo user trên hệ thống để chạy dịch vụ Node Exporter
useradd no-create-home shell /bin/false node_exporter
Tạo file khởi động dịch vụ
systemctl enable node_exporter
systemctl start node_exporter
Trang 16systemctl status node_exporter
Mở port cho Node Exporter
firewall-cmd zone=public add-port=9100/tcp
firewall-cmd zone=public add-port=9100/tcp –permanent
systemctl reload firewalld
Tiếp theo cấu hình trong file prometheus.yml
Ở đây do mình giám sát chính nó nên điền ip của server luôn
Khởi động lại dịch vụ Prometheus
systemctl restart prometheus
Vậy là xong phần node_exporter các bạn vào địa chỉ là “Địa chỉ ip:9090” hoặc
“Địa chỉ ip:9100” để xem kết quả
Trang 17service nginx restart
Kiểm tra xem metric của web đã có chưa
curl 192.168.1.10:81/metrics
Active connections: 2
server accepts handled requests
13 13 25
Reading: 0 Writing: 1 Waiting: 1
Qua Prometheus Server
Trang 18WantedBy=multi-user.target
Web.listen-address là ip của Prometheus Server
Nginx.scrape-uri là của Web Server
Mở port cho Nginx Exporter
firewall-cmd zone=public add-port=9113/tcp
firewall-cmd zone=public add-port=9113/tcp –permanent
systemctl reload firewalld
Kiểm tra metric của nginx
systemctl restart prometheus
Vào giao diện web kiểm tra
Trang 202.5 Giám sát hệ thống Server Esxi
Để cài đặt vmware_exporter, bạn cần python3 và pip3 Bạn có thể kiểm trathông qua lệnh dưới
Python3 version
Pip3 –version
Nếu 2 lệnh trên không trả về kết quả, bạn cần cài đặt 2 gói này
Yum install python3
Pip3 install upgrade pip
Cài đặt vmware_exporter
Pip3 install vmware_exporter
Sau khi cài đặt xong, đường dẫn lưu trử tại đây
“/usr/local/lib/python3.6/site-packages/vmware_exporter”
Trong trường hợp không có trong đường dẫn này thì bạn có thể sử dụng câulệnh sau để tìm:
find / -name "vmware_exporter"
Tạo user read-only dùng để monitor trên vcenter hoặc ESXi host
Trang 21Vào Permission để phân quyền cho user
Tạo file cấu hình cho vmware_exporter
Trang 23Nếu có nhiều esxi thì làm như dưới và trên những con esxi tạo user giống nhau
Trang 24vsphere_hosts: “ip esxi”
Trang 25Tạo service trong systemd cho vmware_exporter
ExecReload=/bin/kill -HUP $MAINPID
SyslogIdentifier=vmware_exporter
Restart=always
[Install]
WantedBy=multi-user.target
Tạo user cho service
useradd system vmware_exporter
Enable và start service
systemctl enable vmware_exporter.service
systemctl start vmware_exporter.service
Trang 26Tạo job prometheus để giám sát Vmware Phần targets điền IP của Esxi Làmnhư sau:
Restart prometheus service và kiểm tra lại kết quả
firewall-cmd zone=public add-port=9272/tcp
firewall-cmd zone=public add-port=9272/tcp –permanent
systemctl reload firewalld
Vào http://ipserver:9090 để kiểm tra
Hình minh họa
Trang 27Import Dashboard vào Grafana
Có thể lên
https://github.com/pryorda/vmware_exporter/tree/main/dashboards sẽ cósẵn vài Dashboard được tạo sẵn cho esxi hoặc có thể lên trang của Grafana ởđây https://grafana.com/grafana/dashboards
Click vào biểu tượng như hình bấm import
Upload JSON file và chọn file cần inport
Trang 28Sau khi import xong sẽ có giao diện như sau
Trang 302.6 Giám sát hệ thống chạy Windows Server
Truy cập vào link:
https://github.com/prometheus-community/windows_exporter/releases
để tải windows_exporter bản mới nhất
Trang 31Tiếp theo chạy file vừa tải về
Trang 32Truy cập vào trang http://192.168.1.14:9182/metrics sẽ thấy được metric củaWindows Server tương tự như sau:
Trang 33Để Prometheus server có thể scrape được metric từ Windows Server cần thựchiện tắt Firewall hoặc chỉ cần allow port 9182 trên Firewall
Thêm cấu hình của node exporter mới cài đặt vào file prometheus.yml như sau:
- job_name: 'Windows_Server'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.14:9182']
systemctl restart prometheus
Vào giao diện của prometheus để kiểm tra
Trang 342.7 Cài đặt Grafana
Link download tại đây: https://grafana.com/grafana/download
yum install grafana-8.1.0-1.x86_64.rpm
yum localinstall grafana-8.1.0-1.x86_64.rpm.rpm
Enable và start service
systemctl enable grafana-server
systemctl start grafana-server
systemctl status grafana-server
Mở port cho Grafana
firewall-cmd zone=public add-port=3000/tcp
firewall-cmd zone=public add-port=3000/tcp –permanent
systemctl reload firewalld
Sử dụng trình duyệt web để kiểm tra với địa chỉ http://[IP server]:3000
Đăng nhập vào grafana tạo dashboard
Pass mặc định là admin/admin