Quay lại danh sách
Tin tức công nghệ

Ứng dụng ntfy.sh tự host: Gửi cảnh báo hệ thống Linux qua dòng lệnh Curl siêu đơn giản lên thiết bị iOS/Android

2 tháng 6, 2026

Giới thiệu về ntfy.sh và bài toán cảnh báo hệ thống

Trong công tác quản trị hệ thống Linux và vận hành hạ tầng (DevOps), việc giám sát và nhận cảnh báo kịp thời là yếu tố then chốt để đảm bảo tính liên tục của dịch vụ. Khi một dịch vụ gặp sự cố, dung lượng đĩa cứng bị cạn kiệt, hoặc có một lượt đăng nhập SSH bất thường, quản trị viên cần phải biết ngay lập tức. Thông thường, chúng ta hay nghĩ đến việc tích hợp với Telegram, Slack hoặc gửi Email. Tuy nhiên, các giải pháp này thường đi kèm với sự phức tạp trong thiết lập API, giới hạn băng thông, hoặc lo ngại về tính bảo mật dữ liệu khi đi qua máy chủ bên thứ ba.

Đó là lý do ntfy.sh (đọc là notify) trở thành một giải pháp thay thế hoàn hảo. Đây là một dịch vụ thông báo đẩy (push notification) dạng mã nguồn mở, cực kỳ gọn nhẹ và dễ sử dụng. Đặc biệt, ntfy cho phép bạn tự host (self-host) trên hạ tầng riêng, giúp doanh nghiệp toàn quyền kiểm soát dữ liệu và tối ưu hóa tốc độ truyền tải.

Tại sao doanh nghiệp nên chọn ntfy.sh tự host?

Đối với môi trường doanh nghiệp, việc sử dụng các dịch vụ Cloud công cộng luôn đi kèm với rủi ro rò rỉ thông tin cấu hình hoặc nhật ký hệ thống. Việc tự triển khai ntfy mang lại những lợi ích vượt trội sau:

  • Bảo mật tối đa: Toàn bộ dữ liệu cảnh báo lưu chuyển nội bộ hoặc qua kênh mã hóa riêng của doanh nghiệp, không đi qua máy chủ của bất kỳ bên thứ ba nào.
  • Đơn giản đến kinh ngạc: Không cần SDK phức tạp, không cần đăng ký tài khoản cấu hình ứng dụng rườm rà. Bạn chỉ cần công cụ curl hoặc wget có sẵn trên mọi bản phân phối Linux.
  • Hỗ trợ đa nền tảng: Ntfy có ứng dụng chính thức trên cả iOS và Android, hỗ trợ thông báo tức thì với độ trễ gần như bằng không.
  • Tiết kiệm tài nguyên: Ntfy được viết bằng ngôn ngữ Go, tiêu tốn rất ít RAM và CPU, phù hợp cho cả các máy chủ ảo (VPS) cấu hình thấp hoặc Raspberry Pi.

Hướng dẫn triển khai ntfy.sh tự host qua Docker

Để tối ưu hóa quy trình triển khai và quản lý, chúng ta sẽ sử dụng Docker để dựng dịch vụ ntfy. Hãy đảm bảo máy chủ của bạn đã cài đặt Docker và Docker Compose.

Bước 1: Tạo file cấu hình

Tạo một thư mục chứa dữ liệu và file cấu hình cho ntfy:

mkdir -p /opt/ntfy && cd /opt/ntfy

Tạo file config.yml để định nghĩa các thiết lập cơ bản:

# /opt/ntfy/config.yml
base-url: "[https://ntfy.domain.com](https://ntfy.domain.com)"
listen-http: ":8080"
cache-file: "/var/cache/ntfy/cache.db"
auth-file: "/var/lib/ntfy/user.db"
auth-default-access: "deny-all"
Lưu ý: Bạn nên thay đổi base-url thành tên miền chính thức của doanh nghiệp và cấu hình Reverse Proxy (như Nginx hoặc Traefik) để hỗ trợ SSL (HTTPS). Việc sử dụng HTTPS là bắt buộc để đảm bảo an toàn dữ liệu và tính năng push notification trên iOS hoạt động ổn định.

Bước 2: Khởi chạy bằng Docker Compose

Tạo file docker-compose.yml với nội dung sau:

version: '3.8'
services:
  ntfy:
    image: binwiederhier/ntfy:latest
    container_name: ntfy
    command: serve
    volumes:
      - ./config.yml:/etc/ntfy/config.yml
      - ./cache:/var/cache/ntfy
      - ./auth:/var/lib/ntfy
    ports:
      - "8080:8080"
    restart: always

Khởi chạy container bằng lệnh:

docker compose up -d

Kết nối ứng dụng di động iOS/Android

Sau khi dịch vụ đã chạy thành công trên máy chủ, quy trình kết nối điện thoại vô cùng đơn giản:

  1. Tải ứng dụng ntfy từ App Store (iOS) hoặc Google Play Store (Android).
  2. Mở ứng dụng, vào phần cài đặt (Settings) và thêm Mạng riêng (Custom server) bằng cách nhập địa chỉ URL máy chủ của bạn (ví dụ: [https://ntfy.domain.com](https://ntfy.domain.com)).
  3. Nhấp vào biểu tượng dấu cộng (+) để đăng ký nhận tin từ một "Topic" tự chọn. Ví dụ: server_alerts.

Từ lúc này, bất kỳ dữ liệu nào được gửi đến topic này sẽ ngay lập tức xuất hiện dưới dạng thông báo đẩy trên điện thoại của bạn.

Gửi cảnh báo từ dòng lệnh Linux bằng Curl

Sức mạnh lớn nhất của ntfy nằm ở sự tối giản khi gửi tin nhắn. Bạn không cần viết các đoạn mã Python hay Bash script phức tạp. Chỉ với một dòng lệnh curl duy nhất, thông báo sẽ được gửi đi.

1. Gửi thông báo văn bản cơ bản

curl -d "Hệ thống backup đã hoàn thành thành công!" [https://ntfy.domain.com/server_alerts](https://ntfy.domain.com/server_alerts)

2. Gửi cảnh báo mức độ cao (Priority) kèm tiêu đề

Ntfy hỗ trợ phân loại mức độ nghiêm trọng của cảnh báo thông qua các thuộc tính Header. Điều này giúp ứng dụng trên điện thoại đưa ra âm thanh cảnh báo khác nhau tùy theo mức độ khẩn cấp.

curl \
  -H "Title: CẢNH BÁO: CPU QUÁ TẢI" \
  -H "Priority: high" \
  -H "Tags: warning,server" \
  -d "Mức độ sử dụng CPU vượt quá 95% trên server-01." \
  [https://ntfy.domain.com/server_alerts](https://ntfy.domain.com/server_alerts)

Các mức độ Priority bao gồm: min, low, default, high, max. Khi đặt ở mức max, thông báo trên Android có thể vượt qua chế độ im lặng để rung và chuông báo động.

Ứng dụng thực tế: Tự động hóa kịch bản giám sát Linux

Để biến ntfy thành một trợ lý giám sát thực thụ, chúng ta có thể tích hợp dòng lệnh Curl vào các tác vụ tự động hóa hàng ngày.

Kịch bản 1: Cảnh báo khi có người đăng nhập SSH vào máy chủ

An ninh máy chủ luôn là ưu tiên hàng đầu. Bạn có thể cấu hình để hệ thống tự động gửi thông báo mỗi khi có ai đó thiết lập kết nối SSH thành công.

Chỉnh sửa file /etc/pam.d/sshd hoặc thêm một script vào thư mục /etc/profile.d/ssh_alert.sh:

# /etc/profile.d/ssh_alert.sh
if [ -n "$SSH_CLIENT" ]; then
  TEXT="User $USER vừa đăng nhập vào $(hostname) từ IP $(echo $SSH_CLIENT | awk '{print $1}')"
  curl -H "Title: SSH Login Detected" -H "Priority: high" -H "Tags: key" -d "$TEXT" [https://ntfy.domain.com/server_alerts](https://ntfy.domain.com/server_alerts)
fi

Kịch bản 2: Giám sát dung lượng đĩa cứng qua Cronjob

Viết một đoạn script nhỏ để kiểm tra dung lượng ổ đĩa và chạy định kỳ mỗi giờ bằng Cronjob:

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
THRESHOLD=85

if [ "$CURRENT" -gt "$THRESHOLD" ]; then
  curl -H "Title: Cạn kiệt tài nguyên đĩa" \
       -H "Priority: max" \
       -H "Tags: floppy_disk,critical" \
       -d "Ổ cứng sắp đầy! Dung lượng hiện tại đã đạt ${CURRENT}%." \
       [https://ntfy.domain.com/server_alerts](https://ntfy.domain.com/server_alerts)
fi

Kết luận

Việc kết hợp giữa ntfy.sh tự host và lệnh Curl mang lại một giải pháp giám sát hệ thống Linux tinh gọn, hiệu quả và có độ tùy biến cực kỳ cao cho doanh nghiệp. Việc tự vận hành hệ thống này không chỉ giúp tối ưu hóa chi phí vận hành mà còn đảm bảo an toàn tuyệt đối cho các thông tin hạ tầng nội bộ. Hãy triển khai ngay ntfy cho hệ thống của bạn để nâng cao năng lực phản ứng nhanh trước mọi sự cố kỹ thuật.

Ứng dụng ntfy.sh tự host: Gửi cảnh báo hệ thống Linux qua dòng lệnh Curl siêu đơn giản lên thiết bị iOS/Android | DPTCloud