На самом деле можно куда угодно слать уведомление, хоть в систему мониторинга, хоть на почту. Я отправляю в Slack.
Вот как выглядит скрипт отправки сообщения:
# vim /srv/sentinel_notification.bash
#!/bin/bash
SLACK_URL=https://hooks.slack.com/services/12345 # your webhook url
if [ "$#" = "2" ]; then
SLACK_BODY=`cat << EOB
=====================================
Information about your Redis Cluster.
Check Redis server or sentinel.
=====================================
Event type: ${1}
Event description: ${2}
Message sent by Sentinel Notification feature.
EOB`
curl -X POST --data-urlencode "payload={\"channel\": \"#monitoring\", \"username\": \"Redis Sentinel from dbs\", \"text\": \"\`\`\`$SLACK_BODY\`\`\`\"}" $SLACK_URL
fi
Делаем скрипт исполняемым:
# chmod +x /srv/sentinel_notification.bash
В конфиг sentinel прописываем наш скрипт:
# vim /etc/redis-sentinel.conf
....
sentinel notification-script mymaster /srv/sentinel_notification.bash
...
Рестартим сервис:
# systemctl restart redis-sentinel
Вот пример того, как выглядит сообщение в Slack:
Список всех event type можно посмотреть в документации: https://redis.io/topics/sentinel#pubsub-messages
Вот как выглядит скрипт отправки сообщения:
# vim /srv/sentinel_notification.bash
#!/bin/bash
SLACK_URL=https://hooks.slack.com/services/12345 # your webhook url
if [ "$#" = "2" ]; then
SLACK_BODY=`cat << EOB
=====================================
Information about your Redis Cluster.
Check Redis server or sentinel.
=====================================
Event type: ${1}
Event description: ${2}
Message sent by Sentinel Notification feature.
EOB`
curl -X POST --data-urlencode "payload={\"channel\": \"#monitoring\", \"username\": \"Redis Sentinel from dbs\", \"text\": \"\`\`\`$SLACK_BODY\`\`\`\"}" $SLACK_URL
fi
Делаем скрипт исполняемым:
# chmod +x /srv/sentinel_notification.bash
В конфиг sentinel прописываем наш скрипт:
# vim /etc/redis-sentinel.conf
....
sentinel notification-script mymaster /srv/sentinel_notification.bash
...
Рестартим сервис:
# systemctl restart redis-sentinel
Вот пример того, как выглядит сообщение в Slack:
Список всех event type можно посмотреть в документации: https://redis.io/topics/sentinel#pubsub-messages