Khả Năng Giám Sát: Sự Khác Biệt Giữa Việc Đoán và Biết Chắc
Tôi đã từng mất 4 tiếng đồng hồ vào một tối thứ Sáu để xử lý sự cố “mạng chậm”. Tôi đã kiểm tra chu kỳ CPU của server, xem xét các khóa database và khởi động lại mọi thứ trong tầm mắt.
Hóa ra đó chỉ là một lỗi không khớp song công (duplex mismatch) đơn giản trên một cổng core switch, khiến nó làm rơi chính xác 12% gói tin. Nếu tôi có một dashboard giám sát, tôi đã có thể phát hiện ra con số lỗi đỏ rực đó chỉ trong 30 giây. Vận hành một mạng lưới mà không có giám sát tập trung giống như việc lái xe ở tốc độ 130km/h trong một màn sương mù dày đặc—bạn vẫn đang di chuyển, nhưng bạn không hề biết điều gì đang chờ đợi phía trước.
Phần cứng vẫn sử dụng giao thức SNMP (Simple Network Management Protocol). Trong khi các công cụ như Prometheus rất tuyệt vời cho các ứng dụng cloud-native, thì LibreNMS lại là “ông vua” của phần cứng thực (bare metal). Nó quản lý các switch, router, firewall và các thiết bị UPS giúp duy trì hệ thống. Nó giúp bạn thay đổi từ một người “thợ chữa cháy” thụ động thành một kiến trúc sư chủ động, người biết về một bộ nguồn sắp hỏng trước khi server kịp tắt ngóm.
Lý Do Nên Chọn LibreNMS
Tôi đã từng vật lộn với Nagios và dành hàng tuần để xây dựng các template trong Zabbix. Zabbix là một công cụ mạnh mẽ, nhưng nó đòi hỏi bảo trì rất cao. LibreNMS, một bản phân nhánh của Observium, giành chiến thắng nhờ cơ chế tự động phát hiện (auto-discovery). Chỉ cần trỏ nó vào một switch Cisco Catalyst, nó sẽ tự động lập bản đồ mọi VLAN, 48 cổng riêng lẻ, mức tiêu thụ điện năng PoE và tốc độ quạt. Mọi thứ cứ thế hoạt động.
Cấu trúc của nó rất hiện đại: PHP, MariaDB và một giao diện người dùng sạch sẽ. Nó có thể không giành được giải thưởng thiết kế nào, nhưng nó cũng không trông giống như một bảng tính từ năm 1995. Quan trọng hơn, cơ chế cảnh báo của nó có thể gửi thông báo đến kênh Slack hoặc Telegram của bạn ngay tích tắc khi một phiên BGP bị ngắt hoặc một đường truyền đạt mức sử dụng 90%.
Bước 1: Chuẩn Bị Host Linux
LibreNMS hoạt động tốt nhất trên Ubuntu 22.04 hoặc 24.04. Đối với một môi trường quy mô vừa khoảng 100 thiết bị, một máy ảo (VM) với 2 vCPU và 4GB RAM là lựa chọn tối ưu. Đừng tiết kiệm RAM—việc thăm dò hàng trăm cổng sẽ tạo ra một đợt bùng nổ I/O đáng kể sau mỗi vài phút.
# Cập nhật hệ thống
sudo apt update && sudo apt upgrade -y
# Cài đặt LEMP stack và các gói phụ thuộc
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt install curl acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois unzip redis-server -y
Tính toàn vẹn của dữ liệu phụ thuộc vào cấu hình database. LibreNMS rất khắt khe về cách MariaDB xử lý tên bảng và lưu trữ tệp. Hãy mở cấu hình của bạn và thực hiện các điều chỉnh sau:
# Chỉnh sửa cấu hình MariaDB server
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# Thêm các dòng này vào phần [mysqld]:
# innodb_file_per_table=1
# lower_case_table_names=0
Khởi động lại dịch vụ và thiết lập quyền hạn cho database của bạn:
sudo systemctl restart mariadb
sudo mysql -u root -p
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'Dat_Mat_Khau_Manh_Tai_Day';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit
Bước 2: Triển Khai Thành Phần Cốt Lõi
Chúng ta sẽ cài đặt LibreNMS vào thư mục /opt. Điều này giúp giữ cho môi trường giám sát được tách biệt khỏi các tệp thực thi tiêu chuẩn của hệ thống. Việc quản lý quyền truy cập chính xác ở đây là cực kỳ quan trọng; nếu người dùng web không thể ghi vào thư mục RRD, các biểu đồ của bạn sẽ bị trống.
cd /opt
sudo git clone https://github.com/librenms/librenms.git
# Thiết lập người dùng riêng biệt
sudo useradd librenms -d /opt/librenms -M -r -s /usr/sbin/nologin
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache /opt/librenms/storage
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache /opt/librenms/storage
Chuyển sang người dùng librenms để cài đặt các gói phụ thuộc PHP. Sử dụng wrapper để đảm bảo mọi thứ được cài đặt với đúng quyền sở hữu:
sudo -u librenms ./scripts/composer_wrapper.php install --no-dev
Bước 3: Kết Nối Với Phần Cứng
Một server giám sát sẽ chỉ là một dashboard trống rỗng nếu các thiết bị của bạn giữ im lặng. SNMP v2c là lựa chọn phổ biến cho mạng nội bộ, nhưng hãy sử dụng v3 nếu bạn đang truyền tải qua internet công cộng hoặc xử lý dữ liệu cực kỳ nhạy cảm. v3 bổ sung khả năng mã hóa và xác thực mà v2c còn thiếu.
Cấu Hình Server Linux
Chỉnh sửa tệp /etc/snmp/snmpd.conf. Đừng mở nó cho tất cả mọi người. Hãy giới hạn các truy vấn chỉ từ IP của LibreNMS server để ngăn rò rỉ thông tin.
# Giới hạn truy cập cho IP của LibreNMS server (ví dụ: 192.168.1.50)
rocommunity Community_Rieng_Cua_Toi 192.168.1.50
syslocation "Tu Rack 4, Day B"
syscontact [email protected]
Khởi động lại bằng lệnh sudo systemctl restart snmpd.
Cấu Hình Cisco IOS
Đăng nhập và nhập các dòng sau vào cấu hình global của bạn. Việc này mất chưa đầy 30 giây:
conf t
snmp-server community Community_Rieng_Cua_Toi RO
snmp-server location Phong_Thiet_Bi_IDF_2
snmp-server contact Bo_Phan_Van_Hanh_Mang
exit
wr mem
Bước 4: Tự Động Phát Hiện (Auto-Discovery)
Hoàn tất trình cài đặt web tại địa chỉ IP của server, sau đó đi tới Devices -> Add Device. Một khi bạn thêm router cốt lõi, sức mạnh thực sự của LibreNMS sẽ bộc phát. Nếu thiết bị của bạn sử dụng CDP hoặc LLDP, LibreNMS sẽ “quét” qua mạng lưới. Nó nhìn thấy thiết bị láng giềng trên Cổng 1, thêm thiết bị đó, rồi tìm tiếp các láng giềng của *chính* láng giềng đó, và tự động xây dựng sơ đồ mạng cho bạn.
Để kích hoạt tính năng này, hãy thêm dòng sau vào config.php:
$config['discovery_modules']['discover-protocols'] = true;
Những Kinh Nghiệm Đắt Giá
Xây dựng dashboard mới chỉ là một nửa cuộc chiến. Để giữ cho nó hữu ích, hãy tuân theo các quy tắc sau:
- Khoảng thời gian lấy mẫu (Polling intervals): Mặc định là 5 phút. Đối với các đường uplink 10Gbps quan trọng, hãy giảm xuống còn 1 phút. Tuy nhiên, hãy để ý CPU trên các router cũ; việc lấy mẫu thường xuyên đôi khi có thể làm tăng đột biến tải trên control plane.
- Hợp nhất các bản ghi (log): Kích hoạt tích hợp Syslog. Khi một module quang SFP bắt đầu hỏng, nó thường ghi lại lỗi log trước khi giao diện thực sự bị ngắt. Việc xem cả log và biểu đồ trên cùng một màn hình là một “siêu năng lực” khi xử lý sự cố.
- Khắc phục tình trạng mệt mỏi vì cảnh báo (alert fatigue): Đừng đặt cảnh báo cho mọi thứ. Bạn không cần một email cho mỗi lần CPU tăng vọt lên 80%. Chỉ cảnh báo cho những thứ cần hành động: mất kết nối, sự cố BGP flap, hoặc sử dụng đĩa 95% duy trì trong 15 phút.
- Tự động cập nhật: LibreNMS phát triển rất nhanh. Hãy thêm
daily.shvào crontab để bạn luôn có các MIB thiết bị và bản vá bảo mật mới nhất.
Lời Kết
Giám sát toàn diện không phải là để ngắm nhìn những biểu đồ đẹp mắt. Đó là việc có dữ liệu xác thực để chứng minh bạn cần nâng cấp phần cứng và có tốc độ để khắc phục điểm nghẽn trước khi cuộc gọi Zoom của CEO bị ngắt. Hãy bắt đầu bằng cách thêm router cốt lõi của bạn ngay hôm nay. Một khi bạn thấy lưu lượng truy cập theo thời gian thực, bạn sẽ tự hỏi làm thế nào mình có thể quản lý mà không có nó bấy lâu nay. 20 phút bạn bỏ ra để thiết lập các chuỗi community này hôm nay sẽ giúp bạn tiết kiệm được 20 giờ xử lý sự cố điên cuồng vào tháng tới.

