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”
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
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