Xây dựng hệ thống monitoring tập trung với PRTG (Phần 3 - Demo monitoring máy chủ linux)
Ở 2 phần trước chúng ta đã thử nghiệm thêm 1 máy chủ windows, monitor qua giao thức SNMP, khá cơ bản. Ở phần này chúng ta sẽ monitor 1 máy chủ Linux, trong bài này là centos 7.
Đối với máy chủ linux, chúng ta cũng có thể sử dụng snmp để monitor, bằng cách cài gói snmpd sau đó cấu hình chuỗi community string đưa vào ptrg như windows. Tuy nhiên, snmp là 1 giao thức monitor đơn giản ( ngay từ cái tên của nó đã thể hiện như vậy rồi : S = simple), nó không thể cung cấp được các thông tin một cách tùy biến cao theo yêu cầu đặc thù của mỗi ông quản trị viên được. Vì thế, tôi sẽ hướng dẫn sử dụng prtg tự lấy thông tin qua SSH. Cơ chế:
- Cung cấp user/password SSH các máy linux cần monitor cho PRTG, thằng này sẽ tự ssh vào từng máy, chạy câu lệnh lấy dữ liệu, mang về xào nấu và show ra biểu đồ cho chúng ta.
- Các script được đặt trong các file đuôi .sh , nhét vào thư mục /var/prtg/scripts
- Output của các script phải tuân theo mẫu: returncode:value:message
- return code nhận các giá trị:
0 OK
1 WARNING
2 System Error (e.g. a network/socket error)
3 Protocol Error (e.g. web server returns a 404)
4 Content Error (e.g. a web page does not contain a required word)
Có thể tham khảo thêm trên trang của hãng https://www.paessler.com/manuals/prtg/ssh_script_sensor
Đi vào phần chính, chúng ta demo monitor phần trăm CPU máy chủ đang sử dụng.
PRTG (192.168.150.132) ----SSH-----> 192.168.150.131
Trên máy chủ linux cần monitor:
Bước 1 - Tạo user cho prtg sử dụng để SSH vào:
useradd prtg
passwd prtg
gõ 2 lần password --> OK
- Thêm máy chủ linux vào PRTG:
Nhập tên thiết bị vào device name,
IP vào ô IPv4 address/DNS Name,
Ở dòng Credentials for Linux/Solaris/Mac OS (SSH/WBEM) Systems, bỏ chọn inherit from
Điền user, password đã tạo ở trên vào.
Sau đó bấm OK
- Tạo script lấy thông tin trên máy chủ linux (192.168.150.131): tạo file /var/prtg/scripts/check_cpu_percent.sh với nội dung:
#!/bin/bash
#Đếm % CPU sử dụng
nn=`top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`
echo "0:$nn:OK"
gán quyền cho file vừa tạo có thể thực thi bằng user prtg:
chown prtg:prtg /var/prtg/scripts/check_cpu_percent.sh
chmod +x /var/prtg/scripts/check_cpu_percent.sh
Tiếp theo truy cập vào trang PRTG chọn add sensor
Chọn SSH Script:
Điền:
Sensor name: tên của sensor, ở đây ta đặt là CPU Free
Script: chọn từ danh sách sổ xuống script vừa tạo
Unit String: Điền đơn vị của giá trị, ở đây đơn vị phần trăm.
Value Type: chọn kiểu giá trị, ở đây ta chọn Float (số thập phân).
Cuối cùng bấm lưu
Kết quả được như hình. Vậy là chúng ta đã kết thúc việc theo dõi CPU máy chủ bằng script, theo dõi con số nào trên máy chủ hoàn toàn chủ động được bằng cách viết script. Tùy vào sử thích, nhu cầu mỗi đơn vị khác nhau có thể tùy biến lại hướng dẫn trên.
Tham khảo:
https://www.paessler.com/manuals/prtg/ssh_monitoring
https://www.paessler.com/manuals/prtg/ssh_script_sensor
https://www.paessler.com/manuals/prtg/application_programming_interface_api_definition
Đối với máy chủ linux, chúng ta cũng có thể sử dụng snmp để monitor, bằng cách cài gói snmpd sau đó cấu hình chuỗi community string đưa vào ptrg như windows. Tuy nhiên, snmp là 1 giao thức monitor đơn giản ( ngay từ cái tên của nó đã thể hiện như vậy rồi : S = simple), nó không thể cung cấp được các thông tin một cách tùy biến cao theo yêu cầu đặc thù của mỗi ông quản trị viên được. Vì thế, tôi sẽ hướng dẫn sử dụng prtg tự lấy thông tin qua SSH. Cơ chế:
- Cung cấp user/password SSH các máy linux cần monitor cho PRTG, thằng này sẽ tự ssh vào từng máy, chạy câu lệnh lấy dữ liệu, mang về xào nấu và show ra biểu đồ cho chúng ta.
- Các script được đặt trong các file đuôi .sh , nhét vào thư mục /var/prtg/scripts
- Output của các script phải tuân theo mẫu: returncode:value:message
- return code nhận các giá trị:
0 OK
1 WARNING
2 System Error (e.g. a network/socket error)
3 Protocol Error (e.g. web server returns a 404)
4 Content Error (e.g. a web page does not contain a required word)
Có thể tham khảo thêm trên trang của hãng https://www.paessler.com/manuals/prtg/ssh_script_sensor
Đi vào phần chính, chúng ta demo monitor phần trăm CPU máy chủ đang sử dụng.
PRTG (192.168.150.132) ----SSH-----> 192.168.150.131
Trên máy chủ linux cần monitor:
Bước 1 - Tạo user cho prtg sử dụng để SSH vào:
useradd prtg
passwd prtg
gõ 2 lần password --> OK
- Thêm máy chủ linux vào PRTG:
Nhập tên thiết bị vào device name,
IP vào ô IPv4 address/DNS Name,
Ở dòng Credentials for Linux/Solaris/Mac OS (SSH/WBEM) Systems, bỏ chọn inherit from
Điền user, password đã tạo ở trên vào.
Sau đó bấm OK
- Tạo script lấy thông tin trên máy chủ linux (192.168.150.131): tạo file /var/prtg/scripts/check_cpu_percent.sh với nội dung:
#!/bin/bash
#Đếm % CPU sử dụng
nn=`top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`
echo "0:$nn:OK"
gán quyền cho file vừa tạo có thể thực thi bằng user prtg:
chown prtg:prtg /var/prtg/scripts/check_cpu_percent.sh
chmod +x /var/prtg/scripts/check_cpu_percent.sh
Tiếp theo truy cập vào trang PRTG chọn add sensor
Chọn SSH Script:
Điền:
Sensor name: tên của sensor, ở đây ta đặt là CPU Free
Script: chọn từ danh sách sổ xuống script vừa tạo
Unit String: Điền đơn vị của giá trị, ở đây đơn vị phần trăm.
Value Type: chọn kiểu giá trị, ở đây ta chọn Float (số thập phân).
Cuối cùng bấm lưu
Kết quả được như hình. Vậy là chúng ta đã kết thúc việc theo dõi CPU máy chủ bằng script, theo dõi con số nào trên máy chủ hoàn toàn chủ động được bằng cách viết script. Tùy vào sử thích, nhu cầu mỗi đơn vị khác nhau có thể tùy biến lại hướng dẫn trên.
Tham khảo:
https://www.paessler.com/manuals/prtg/ssh_monitoring
https://www.paessler.com/manuals/prtg/ssh_script_sensor
https://www.paessler.com/manuals/prtg/application_programming_interface_api_definition
Nhận xét
Đăng nhận xét