Feb 142023
 

Để kiểm tra log của ứng dụng NodeJS trong thời gian thực và gửi cảnh báo qua Telegram nếu xuất hiện dòng log “error”, bạn có thể sử dụng script bash kết hợp với lệnh tailgrep. Dưới đây là một ví dụ:

#!/bin/bash

# Set the Telegram bot token and chat ID
TELEGRAM_BOT_TOKEN="your_bot_token"
TELEGRAM_CHAT_ID="your_chat_id"

# Set the path to the log file
LOG_FILE_PATH="/path/to/your/logfile.log"

# Set the polling interval (in seconds)
POLLING_INTERVAL=10

# Run an infinite loop
while true; do
    # Get the last line of the log file that contains the word "error"
    last_error_line=$(tail -n 1 "$LOG_FILE_PATH" | grep "error")

    # Check if the last error line is not empty
    if [ -n "$last_error_line" ]; then
        # Send a Telegram message
        message="ERROR: $last_error_line"
        curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" -d "chat_id=${TELEGRAM_CHAT_ID}" -d "text=$message"
    fi

    # Wait for the polling interval
    sleep $POLLING_INTERVAL
done

Giải thích các bước trong script:

  1. Thiết lập mã thông báo bot Telegram và ID trò chuyện.
  2. Thiết lập đường dẫn đến tệp nhật ký.
  3. Thiết lập khoảng thời gian giữa các lần kiểm tra tệp nhật ký.
  4. Chạy một vòng lặp vô hạn để kiểm tra tệp nhật ký.
  5. Sử dụng lệnh tail để lấy dòng cuối cùng của tệp nhật ký.
  6. Sử dụng lệnh grep để kiểm tra xem dòng cuối cùng có chứa từ “error” không.
  7. Nếu có lỗi, gửi thông báo qua Telegram bằng cách sử dụng curl để gọi API Telegram.
  8. Chờ trong khoảng thời gian giữa các lần kiểm tra tệp nhật ký bằng lệnh sleep.