Trang chủTin tứcHướng dẫn Script gửi thông báo máy ảo đã tạo về Telegram
Hướng dẫn Script gửi thông báo máy ảo đã tạo về Telegram

Tìm hiểu cách tạo script để gửi thông báo về Telegram về số máy ảo được tạo thành công. Hướng dẫn chi tiết từng bước thiết lập để quản lý máy ảo hiệu quả.

Nếu các bạn là một người quản trị hệ thống VMware thì chắc chắn sẽ có những lúc bạn muốn biết trong vòng 1 ngày hoặc có thể 1 tháng bạn đã tạo ra bao nhiêu máy ảo đúng không. Các bạn hãy cùng SunCloud bọn mình giải đáp thắc mắc đó trong bài viết hướng dẫn tạo Script gửi thông báo về Telegram ngay dưới đây nhé.

>>> Có thể bạn quan tâm: Hướng dẫn chi tiết cấu hình Zabbix gửi cảnh báo đến Telegram

Script gửi thông báo máy ảo đã tạo về Telegram
Script gửi thông báo máy ảo đã tạo về Telegram

1. Kiến thức cần chuẩn bị trước

Trong Script này mình sẽ sử dụng PowerCLI VMware để thực hành. Chúng mình có 1 seri giải tích chi tiết về PowerCLI VMware các bạn có thể tham khảo ở đây.

Để có thể viết Script thì ta cần dùng notepad hay bất kỳ phần mềm ghi chú nào khác và lưu file dưới dạng ps1.

Tiếp theo bạn cần phải hiểu về event trong vCenter. Bất kỳ 1 sự kiện gì mà vCenter thực hiện xong nó sẽ lưu lại thành những event. Chính vì thế để lấy được các thông tin máy ảo đã tạo thì ta sẽ lấy thông tin trong event. 

Suncloud bọn mình cũng đã có bài viết về event rồi đó, bạn có thể tham khảo tại đây.

2. Tạo bot Telegram

Trong Telegram có 1 chức năng đó là tạo ra những con bot nhằm mục đích tự động nhận các tin nhắn hay tự động gửi tin nhắn đến ai đó hay group nào đó.

Để có thể sử dụng telegram bạn cần tìm botFather
Để có thể sử dụng telegram bạn cần tìm botFather

Tiếp theo sẽ chat /newbot để bắt đầu tạo bot mới sau đó ta sẽ đặt tên và user name cho bot. Khi thành công ta sẽ nhận được token để định danh cho bot của chúng ta.

Tạo newbot
Tạo newbot

Lưu ý rằng mã token này rất quan trọng nhé các bạn tránh để lộ nếu không có thể bạn sẽ nhận được rất nhiều tin nhắn spam. Và mã token này cũng dùng để chỉ định con bot mà sẽ gửi tin nhắn tự động đi.

Tiếp theo ta lấy thông tin của chat id. Ta sẽ hiểu như này, bạn muốn con bot nhắn tin cho ai thì bạn sẽ cần chat id của người đấy. Bạn sẽ tìm kiếm Get My ID rồi chat /start rồi sẽ nhận lại được id của bạn.

lấy thông tin của chat id
lấy thông tin của chat id

3. Toàn bộ nội dung Script

Dưới đây là toàn bộ nội dung Script của mình các bạn có thể copy và chạy thử.

#Thiet lap thong tin vSphere

$vCenterServer = "IP vCenter"

$vCenterUsername = "User đăng nhập"

$vCenterPassword = "Passwd của User"

Connect-VIServer -Server $vCenterServer -User $vCenterUsername -Password $vCenterPassword

#Lay danh sach cac nhiem vu thuc thi trong thang gan nhat

$startTime = (Get-Date).AddDays(-1)

$endTime = Get-Date

$recentEvents = Get-VIEvent -Start $startTime -Finish $endTime | Where-Object {$_.FullFormattedMessage -like "Template * deployed to * on *"}

#Bien de dem so luong may ao da tao

$createdVMCount = 0

#Thong tin telegram

$telegramBotToken = "da che"

$chatId = "da che"

$telegramApiUrl = "https://api.telegram.org/bot$telegramBotToken/sendMessage"

#Lap qua cac su kien va gui thong bao den Telegram

foreach ($event in $recentEvents) {

    $time = $event.CreatedTime

    $vmName = $event.FullFormattedMessage

$user = $event.UserName

    #Tao thong diep voi cac dong moi

    $message = "Su kien: May ao da duoc tao`r`n$user`r`nNgay va gio: $time`r`n$vmName"

    #Tang bien dem neu nhiem vu la createdVMCount

    $createdVMCount++

    #Gui thong bao den Telegram

    $body = @{

        chat_id = $chatId

        text = $message

    }

    Invoke-RestMethod -Uri $telegramApiUrl -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"

    Write-Host $message

}

#Tao thong diep tong cong va gui den Telegram

$totalMessage = "Tong so may ao da tao: $createdVMCount"

$body = @{

    chat_id = $chatId

    text = $totalMessage

}

Invoke-RestMethod -Uri $telegramApiUrl -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"

#Ngat ket noi voi vSphere

Disconnect-VIServer -Server $vCenterServer -Confirm:$false

4. Giải thích chi tiết

#Lay danh sach cac nhiem vu thuc thi trong thang gan nhat

$startTime = (Get-Date).AddDays(-1)

$endTime = Get-Date

$recentEvents = Get-VIEvent -Start $startTime -Finish $endTime | Where-Object {$_.FullFormattedMessage -like "Template * deployed to * on *"}

Đoạn code này sẽ lấy ra danh sách các máy ảo đã tạo trong vòng 1 ngày. Đầu tiên đặt 2 biến $startTime và $endTime để có thể chỉ định thời gian lọc sự kiện tạo máy. Câu lệnh tiếp tiếp theo sẽ lấy những sự kiện mà có thông báo  "Template * deployed to * on *". Tất cả sử kiện này sẽ lưu vào một list có tên là $recentEvents.

foreach ($event in $recentEvents) {

}

Ta sử dụng vòng lặp để duyệt qua danh sách lưu vào biến $recentEvents. 

$time = $event.CreatedTime

    $vmName = $event.FullFormattedMessage

$user = $event.UserName

    #Tao thong diep voi cac dong moi

    $message = "Su kien: May ao da duoc tao`r`n$user`r`nNgay va gio: $time`r`n$vmName"

    #Tang bien dem neu nhiem vu la createdVMCount

    $createdVMCount++

Lúc này ta sẽ lấy ra các thông tin thời gian, user đã thực hiện tạo máy, và thông tin của máy ảo. Đây chính là những biến cần để gửi cảnh báo đến telegram

$body = @{

        chat_id = $chatId

        text = $message

    }

    Invoke-RestMethod -Uri $telegramApiUrl -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"

Phần body chính là nội dung ta gửi cảnh báo đế telegram. Invoke-RestMethod sẽ giúp ta gửi 1 request http theo phương thức post đến url mà ta đã khai báo ở biến  $telegramApiUrl, Biến này chứa url liên kết đến con bot bạn đã tạo nhé.

5. Thực hành chạy Script gửi thông báo Telegram

Theo mặc định powerShell sẽ không cho bạn thực hiện script nên bạn cần sử dụng lệnh này trước khi sử dụng lệnh.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

Lệnh chạy Script

C:\Users\ADMIN\Documents\Schedule\alarm.ps1

Kiểm tra kết quả
Kiểm tra kết quả

>>> Xem thêm: Hướng dẫn cài đặt plugin Checkmk cảnh báo qua Telegram

6. Tổng kết

Vậy là SunCloud đã cùng các bạn tìm hiểu cách tạo Script để gửi cảnh báo về Telegram khi có máy tạo trong vòng 1 ngày và gửi tổng số máy ảo đã tạo. Script bọn mình cung cấp không chỉ giới hạn trong vòng 1 ngày mà các bạn có thể tùy chỉnh thời gian sao cho phù hợp. Nếu có những thắc mắc cần giải đáp hãy liên hệ với chúng tôi để được tư vấn sớm nhất nhé. Chúc các bạn thành công!

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật