ο»Ώ
ο»Ώ
ο»Ώ

πŸ› οΈ ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Slack ΠΈΠ· shell-скриптов

Автоматизация Π·Π°Π΄Π°Ρ‡ β€” это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ Π΅Ρ‰Ρ‘ Π»ΡƒΡ‡ΡˆΠ΅ β€” Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ ΠΈΠ»ΠΈ Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ.
Slack β€” популярный мСссСндТСр, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для автоматичСских ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… событиях.

Π‘Π΅Ρ€Π²Π΅Ρ€ ΡƒΠΏΠ°Π»? ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅.
Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅? ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅.


Π”ΠΎΠ±Π°Π²ΠΈΠ² увСдомлСния Slack Π² свои shell-скрипты, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:
- πŸ“£ Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скриптов с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ,
- πŸ›‘οΈ быстро Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹,
- πŸ” Π±Ρ‹Ρ‚ΡŒ Π² курсС событий Π±Π΅Π· просмотра Π»ΠΎΠ³ΠΎΠ².


> ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Slack ΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с понятиСм Slack Bot. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Bash.


πŸ”— Webhook + curl: сСкрСтная связка


Slack позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ входящиС Webhook-ΠΈ для получСния сообщСний.
А curl позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ эти сообщСния Ρ‡Π΅Ρ€Π΅Π· HTTP POST.


ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ:
- Slack Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ URL Π²ΠΈΠ΄Π° https://hooks.slack.com/services/...
- Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ curl для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ JSON с тСкстом сообщСния.


βš™οΈ Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ входящиС Webhook Π² Slack

1. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° [api.slack.com/apps](https://api.slack.com/apps)
2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
3. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Incoming Webhooks β€” Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ…
4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Webhook Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Π½Π°Π»)
5. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Webhook URL β€” ΠΎΠ½ понадобится Π΄Π°Π»Π΅Π΅


πŸ’¬ Bash-скрипт для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ


Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Webhook Π² .bashrc:

export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/your/webhook/url"

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скрипта ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°:

#!/bin/bash

source ~/notify_slack.sh

disk_usage=$(df -h / | awk 'NR==2 {print $5}')
cpu_load=$(uptime | awk -F'load average:' '{ print $2 }' | cut -d',' -f1 | xargs)
hostname=$(hostname)

message="*ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ систСмС - $hostname*\n* Диск (/): $disk_usage\n* CPU (1 ΠΌΠΈΠ½): $cpu_load"
notify_slack "$message"


βœ… Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ


НС Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΡŒΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния

Slack ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ частоту Webhook-запросов

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ увСдомлСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости (ошибки, Π°Π»Π΅Ρ€Ρ‚Ρ‹ ΠΈ Ρ‚.ΠΏ.)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

- Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Slack-увСдомлСния Π² свои cron-Π·Π°Π΄Π°Ρ‡ΠΈ

- ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ состояниС систСмы

- ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ оповСщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² скриптах.


ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅




Slack
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ: Π’Ρ‡Π΅Ρ€Π°, 22:53
0
8

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ο»Ώο»Ώο»Ώο»Ώο»Ώ
ο»Ώ
НавСрΡ