Làm chủ hạ tầng mạng với LibreNMS: Từ giám sát băng thông đến cảnh báo Telegram tự động

Monitoring tutorial - IT technology blog
Monitoring tutorial - IT technology blog

Tại sao mình chọn LibreNMS thay vì các công cụ khác?

Bạn đã bao giờ rơi vào cảnh sếp đứng sau lưng hỏi: “Sao mạng chậm thế?” mà trong tay không có một con số cụ thể nào chưa? Những ngày đầu làm SysAdmin, mình thường phải SSH vào từng con Switch Cisco, gõ lệnh show interfaces mỏi tay chỉ để xem port nào đang quá tải. Cách làm này vừa chậm, vừa dễ sót thông tin quan trọng.

Dù Zabbix hay Prometheus rất mạnh, nhưng với riêng mảng thiết bị mạng (Network Devices), LibreNMS vẫn là một “vị cứu tinh” thực sự. Điểm ăn tiền nhất của nó là khả năng tự động phát hiện (Auto-discovery) cực kỳ thông minh. Chỉ cần khai báo IP, LibreNMS sẽ tự quét, tự nhận diện model và vẽ toàn bộ sơ đồ cổng mạng. Bạn sẽ tiết kiệm được khoảng 80% thời gian cấu hình so với các công cụ khác.

Chuẩn bị môi trường cài đặt

Để triển khai nhanh và tránh lỗi xung đột thư viện PHP, mình khuyên bạn nên dùng Docker. Cách này giúp hệ thống sạch sẽ và dễ dàng nâng cấp sau này.

Cấu hình tối thiểu để chạy mượt cho khoảng 30-50 thiết bị:

  • Máy ảo Ubuntu 22.04 LTS.
  • RAM: 4GB (LibreNMS khá ngốn RAM khi chạy polling đông thiết bị).
  • CPU: 2 Core.
  • Ổ cứng: 20GB SSD.
  • Đã cài sẵn Docker và Docker Compose.

Triển khai LibreNMS bằng Docker Compose

Đầu tiên, bạn tạo một thư mục riêng để quản lý các file cấu hình:

mkdir librenms-docker && cd librenms-docker

Tiếp theo, tạo file docker-compose.yml. Bạn hãy dùng lệnh nano docker-compose.yml và dán nội dung dưới đây vào:

version: '3.5'

services:
  db:
    image: mariadb:10.5
    container_name: librenms_db
    volumes:
      - "./db:/var/lib/mysql"
    environment:
      - MYSQL_ROOT_PASSWORD=password_cua_ban
      - MYSQL_DATABASE=librenms
      - MYSQL_USER=librenms
      - MYSQL_PASSWORD=password_librenms
    restart: always

  redis:
    image: redis:6.0-alpine
    container_name: librenms_redis
    restart: always

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    ports:
      - "8000:80"
    volumes:
      - "./librenms:/data"
    environment:
      - TZ=Asia/Ho_Chi_Minh
      - PUID=1000
      - PGID=1000
      - DB_HOST=db
      - DB_NAME=librenms
      - DB_USER=librenms
      - DB_PASSWORD=password_librenms
      - REDIS_HOST=redis
    depends_on:
      - db
      - redis
    restart: always

Kích hoạt hệ thống bằng một lệnh duy nhất:

docker-compose up -d

Sau khoảng 2 phút, bạn hãy truy cập vào http://IP-cua-ban:8000. Giao diện Web Installer sẽ hiện ra. Bạn chỉ cần tạo tài khoản admin và nhấn Next theo hướng dẫn là xong.

Cấu hình SNMP trên thiết bị đích

LibreNMS không dùng agent. Nó lấy dữ liệu qua giao thức SNMP. Do đó, bạn cần “mở cửa” SNMP trên các thiết bị muốn giám sát.

Với Server Linux (Ubuntu/Debian)

Cài đặt gói dịch vụ snmpd:

sudo apt update && sudo apt install snmpd -y

Mở file /etc/snmp/snmpd.conf. Tìm dòng cấu hình community và sửa lại như sau để bảo mật hơn:

# Thay 'my-secret-string' bằng mật khẩu SNMP của bạn
rocommunity my-secret-string default

Khởi động lại để áp dụng thay đổi: sudo systemctl restart snmpd.

Với Switch/Router Cisco

Trên dòng lệnh CLI của Cisco, bạn chỉ cần thực hiện vài thao tác đơn giản:

conf t
snmp-server community my-secret-string RO
exit
write memory

Theo dõi và thiết lập cảnh báo

Quay lại Dashboard của LibreNMS, bạn vào Devices -> Add Device. Nhập IP thiết bị, chọn SNMP v2c và điền chuỗi my-secret-string đã tạo. Nhấn Add Device và đợi khoảng 5 phút.

Hệ thống sẽ tự động vẽ biểu đồ traffic của từng port. Bạn có thể thấy ngay port nào đang chiếm băng thông cao nhất (Top Interfaces) hoặc CPU con Switch nào đang nóng bất thường.

Nhận cảnh báo qua Telegram

Giám sát mà phải ngồi canh màn hình 24/7 thì rất mệt. Hãy để LibreNMS tự báo động qua Telegram khi có sự cố. Bạn vào Alerts -> Transports, chọn Telegram và nhập API Token của Bot.

Đừng quên kích hoạt rule “Port state up -> down”. Từ nay, cứ mỗi khi dây mạng bị rút hoặc Switch mất điện, điện thoại bạn sẽ “tinh tinh” ngay lập tức.

Kinh nghiệm thực tế để hệ thống chạy ổn định

Sau một thời gian vận hành, mình có vài lưu ý quan trọng giúp bạn tránh “ăn hành”:

  • Kiểm soát Polling: Mặc định hệ thống lấy dữ liệu mỗi 5 phút. Nếu bạn chỉnh xuống 1 phút để xem real-time, hãy đảm bảo server có CPU đủ mạnh. Với 100 thiết bị, polling 1 phút có thể đẩy CPU Load lên rất cao.
  • Dọn dẹp Database: LibreNMS lưu log rất chi tiết nên ổ cứng sẽ nhanh đầy. Hãy vào Global Settings -> Cleanup và giới hạn lưu trữ log trong 30 ngày để tối ưu dung lượng.
  • Tuyệt đối tránh ‘public’: Đừng bao giờ dùng chuỗi community mặc định là public. Đây là lỗ hổng để hacker scan thấy toàn bộ cấu hình mạng của bạn chỉ trong vài giây.

LibreNMS là công cụ cực kỳ đáng tin cậy cho các anh em IT triển khai tại văn phòng hoặc trung tâm dữ liệu. Cảm giác làm chủ được từng bit dữ liệu chạy qua hạ tầng thực sự rất tuyệt vời. Chúc các bạn cài đặt thành công!

Share: