6 tháng cùng Checkmk trên Linux: Từ hạ tầng hỗn loạn đến hệ thống giám sát tập trung

Networking tutorial - IT technology blog
Networking tutorial - IT technology blog

Bối cảnh & Lý do: Chấm dứt cơn ác mộng “loạn” Dashboard

Sáu tháng trước, hệ thống giám sát hạ tầng của chúng tôi là một mớ hỗn độn. Chúng tôi phải xoay xở với Zabbix cho server Linux, một instance MRTG cũ kỹ cho switch Cisco, và một tập hợp các script Python lỏng lẻo cho các router biên. Mỗi khi có dịch vụ gặp sự cố, đội ngũ của tôi mất mười phút đầu tiên để “quay sổ xố” giữa các dashboard chỉ để tìm ra nguyên nhân gốc rễ. Chúng tôi cần một công cụ để quản lý tất cả—một giải pháp xử lý được cả SNMP và các số liệu dựa trên agent mà không tốn công cấu hình thủ công như các hệ thống cũ.

Đó là lúc chúng tôi chuyển toàn bộ hạ tầng sang Checkmk. Sau nửa năm vận hành thực tế, sự khác biệt là cực kỳ rõ rệt. Checkmk được xây dựng trên Open Monitoring Distribution (OMD). Bộ công cụ này đóng gói lõi engine, giao diện web hiện đại và các công cụ vẽ biểu đồ vào một gói duy nhất. Với bất kỳ quản trị viên hệ thống (sysadmin) nào đã quá mệt mỏi với những cuộc gọi khẩn cấp lúc 3 giờ sáng, việc làm chủ OMD là một bước ngoặt lớn trong sự nghiệp. Nó cung cấp khả năng hiển thị cần thiết để phát hiện một bộ nguồn sắp hỏng trước khi nó kéo sập cả một tủ rack.

Chúng tôi đã chọn bản Checkmk Raw Edition (CRE). Đây là phiên bản mã nguồn mở hoàn toàn và hiện đang quản lý hơn 250 node của chúng tôi một cách dễ dàng. Điểm mạnh thực sự ở đây là cấu hình dựa trên quy tắc (rule-based). Thay vì phải click thủ công qua từng host để thêm kiểm tra CPU, bạn chỉ cần viết một quy tắc cho một thư mục. Checkmk sẽ lo phần còn lại, giúp chúng tôi tiết kiệm khoảng năm giờ làm việc cấu hình mỗi tháng.

Cài đặt: Xây dựng nền tảng ổn định trên Ubuntu

Tôi khuyên bạn nên sử dụng một instance Ubuntu 24.04 LTS riêng biệt để có trải nghiệm tốt nhất. Quá trình cài đặt diễn ra cực kỳ tinh gọn vì gói cài đặt đã xử lý hầu hết mọi phụ thuộc (dependency) cho bạn.

1. Chuẩn bị hệ thống

Hãy bắt đầu với một hệ thống sạch. Bạn sẽ cần wget để tải file binary và gdebi để đảm bảo quá trình cài đặt cục bộ không gặp lỗi do thiếu thư viện.

sudo apt update && sudo apt upgrade -y
sudo apt install wget bash-completion gdebi-core -y

2. Tải xuống và cài đặt Checkmk

Tại thời điểm viết bài, phiên bản 2.3.0 là lựa chọn ổn định. Tôi sử dụng gdebi vì nó tự động tải về các module Apache và Python cụ thể theo yêu cầu của môi trường OMD.

# Tải bản Raw Edition mới nhất
wget https://download.checkmk.com/checkmk/2.3.0p1/check-mk-raw-2.3.0p1_0.jammy_amd64.deb

# Cài đặt và xử lý các phụ thuộc
sudo gdebi check-mk-raw-2.3.0p1_0.jammy_amd64.deb

3. Khởi tạo Site giám sát đầu tiên

Checkmk sử dụng các ‘site’ để giữ cho các môi trường được tách biệt. Bạn có thể chạy một site production và một site test trên cùng một phần cứng. Chúng tôi đặt tên site của mình là itfromzero.

# Tạo instance
sudo omd create itfromzero

# Khởi động các dịch vụ
sudo omd start itfromzero

Hãy lưu lại mật khẩu admin được tạo ra. Bây giờ bạn có thể đăng nhập tại http://your-server-ip/itfromzero. Lần đăng nhập đầu tiên luôn là một khoảnh khắc “eureka” đối với các đội ngũ đã quen with những giao diện cũ kỹ, cồng kềnh.

Cấu hình: Quản lý Máy chủ và Thiết bị mạng

Với bộ máy đã vận hành, chúng tôi chia quy trình làm việc thành hai hướng: sử dụng agent nhẹ cho máy chủ và SNMP cho thiết bị mạng.

Giám sát Server Linux bằng Checkmk Agent

Với Linux, hãy quên SNMP đi. Checkmk sử dụng một agent riêng biệt trên cổng 6556. Nó cực kỳ hiệu quả. Trong khi SNMP có thể gây nhiễu và tốn tài nguyên CPU, agent cung cấp các số liệu chuyên sâu—như IOPS của từng phân vùng và trạng thái cụ thể của tiến trình—với mức tiêuhtu tài nguyên không đáng kể.

Tải xuống file .deb từ menu ‘Setup’ trong Checkmk của bạn và cài đặt nó trên các máy chủ mục tiêu. Không cần cấu hình gì tại máy chủ cục bộ.

# Trên máy ảo Linux mục tiêu
sudo gdebi check-mk-agent_2.3.0p1-1_all.deb

Trong giao diện web, hãy thêm IP của host và chọn “API integrations if configured, else Checkmk agent.” Khi bạn nhấn ‘Service Discovery’, Checkmk sẽ tự động sơ đồ hóa mọi volume logic và giao diện mạng trên máy đó.

Giám sát Switch và Router qua SNMP

Checkmk xử lý các thiết bị mạng with độ chi tiết cao khiến hầu hết các công cụ mã nguồn mở khác phải “hít khói”. Cho dù đó là một chiếc Cisco Catalyst 48 cổng hay một router MikroTik nhỏ, quy trình thực hiện là như nhau. Chúng tôi khuyên dùng SNMPv3 cho môi trường production, nhưng một community string tiêu chuẩn cũng đủ cho việc thử nghiệm ban đầu.

Để thêm một switch:

  1. Truy cập Setup > Hosts > Add host.
  2. Nhập hostname (ví dụ: Core-Switch-01).
  3. Tích chọn “SNMP” trong mục Monitoring agents và chọn phiên bản của bạn.
  4. Nhập community string của bạn trong SNMP credentials.
  5. Lưu lại và kích hoạt service discovery.

Hệ thống sẽ ngay lập tức lấy trạng thái cổng, nhiệt độ khung máy và thậm chí cả trạng thái bộ nguồn. Các biểu đồ lưu lượng tự động là cứu cánh để phát hiện những kẻ “ngốn” băng thông trong thời gian thực.

Xác minh: Kết luận sau 6 tháng

‘Main Dashboard’ hiện là “khoang lái” mỗi buổi sáng của đội ngũ chúng tôi. Chúng tôi đã tích hợp nó với Telegram. Nếu một router chính bị mất kết nối BGP peer, tôi sẽ nhận được thông báo trên điện thoại trước cả khi ticket đầu tiên của người dùng được tạo ra.

Tại sao Service Discovery lại quan trọng

‘Full Scan’ là thành phần cốt lõi. Nếu bạn cắm một module quang SFP mới vào switch hoặc thêm một ổ đĩa ảo vào server, Checkmk sẽ nhận ra sự thay đổi trong lần poll tiếp theo. Nó sẽ đánh dấu các dịch vụ này là ‘Vanished’ (Đã mất) hoặc ‘New’ (Mới). Điều này đảm bảo hệ thống giám sát của bạn luôn chính xác khi phần cứng thay đổi.

Tối ưu hóa cho quy mô lớn

Khi chúng tôi mở rộng quy mô lên hơn 200 thiết bị, chúng tôi nhận thấy giao diện web bắt đầu chậm lại. Theo mặc định, Checkmk thực hiện poll sau mỗi 60 giây. Đối với các server dev không quan trọng, chúng tôi đã đổi con số này thành 5 phút. Tinh chỉnh đơn giản này đã giúp tải CPU của server giám sát giảm từ 65% xuống mức ổn định 20%. Bạn có thể tìm thấy mục này trong Setup > Services > Normal check interval.

Kết luận

Chuyển sang Checkmk là quyết định về hạ tầng sáng suốt nhất của tôi trong năm nay. Nó đã thay thế một mớ hỗn độn bằng một nền tảng chuyên nghiệp, thống nhất, coi trọng thiết bị mạng và máy chủ như nhau. Nó dễ cài đặt, agent không gây ảnh hưởng đến hiệu năng hệ thống và hỗ trợ SNMP cực kỳ tốt. Nếu bạn muốn ngừng việc phỏng đoán về sức khỏe hệ thống mạng của mình, hãy bắt đầu dùng thử trong lab ngay hôm nay. Khả năng hiển thị mà nó mang lại xứng đáng đến từng phút cài đặt.

Share: