Thông tin chung

Gửi tin nhắn slack cho khách khi dung lượng của server vượt quá bao nhiêu %

Gửi tin nhắn slack cho khách khi dung lượng của server vượt quá bao nhiêu % bằng shell bash


Để gửi tin nhắn thông qua slack thì sẽ sử dụng api của slack để gửi tin nhắn
Thông tin về api của slack có thể tham khảo qua https://api.slack.com/#read_the_docs

1 Tạo app trên slack api
Việc sử dụng được slack api thì cần có 1 slack app. Để tạo 1 slack app thì trước tiên cần có 1 account slack sau đó sẽ truy cập theo link https://api.slack.com/apps?new_app=1 để tạo 1 app slack mới
Khi truy cập thì sẽ hiển thị màn hình

Chọn “Create an App” => Chọn “From Scratch” => Điền tên app và chọn workspace mà có channel mà mình muốn gửi tin nhắn đến => Chọn “Create App”

Sau khi hoàn thành tạo app

2 Tạo Incoming Webhooks để gửi tin nhắn bằng api
Chọn “Incoming Webhooks” => Bật “Activate Incoming Webhooks

Sau khi bật sẽ chọn “Add New Webhook to Workspace” để tạo webhook => Chọn channel mà mình muốn gửi tin nhắn đến

Chọn channel

Sau khi hoàn thành thì sẽ có 1 link Webhook URL

Có thể thêm 1 webhook mới hoặc xóa 1 webhook url đã tồn tại

3 Gửi tin nhắn bằng shell sử dụng api của slack

Tạo ra file shell

sudo vim /usr/local/sbin/actfive_storage_monitoring.sh

Nội dung file : gửi tin nhắn nếu dung lượng vượt quá 90%

#!/bin/bash
CURRENT=$(df / | grep / | awk ‘{ print $5}’ | sed ‘s/%//g’)
THRESHOLD=90
if [ “$CURRENT” -gt “$THRESHOLD” ]; then
curl -X POST -H ‘Content-type: application/json’ –data ‘{“text”: “Disk usage alert: ‘$CURRENT’ %”}’ YOUR_WEBHOOK_URL
fi

Chú thích
– text : nội dung tin nhắn nếu muốn truyền biến vào tin nhắn thì sẽ viết trong dấu nháy đơn hoặc muốn gắn người dùng khác thì sẽ viết tên người đó như sau <@ten_nguoi_dung>
– YOUR_WEBHOOK_URL: là webhook đã tạo ở mục 2

Chuyển permision cho file shell
sudo chmod 755 /usr/local/sbin/actfive_storage_monitoring.sh

Cài đặt crontab 5 phút chạy check 1 lần
*/5 * * * * /bin/sh /usr/local/sbin/actfive_storage_monitoring.sh > /dev/null 2>&1

hoặc chạy trực tiếp
/bin/sh /usr/local/sbin/actfive_storage_monitoring.sh