Настройка оповещения с Zabbix версии 2.4 в Slack
Для Zabbix-версии 3 и выше
https://github.com/ericoc/zabbix-slack-alertscript
https://share.zabbix.com/cat-notifications/zabbix-notify-for-slack-hipchat-or-pagerduty
1.Настройка Incoming WebHook в Slack
Создаем новый приватный канал в Slack(например, с именем monitoring)
Далее добавляем Incoming WebHook переходя по ссылке
1 |
https://<yourslackname>.slack.com/apps |
В поиске вбиваем Incoming Webhooks
Нажимаем Add Configuration и выбираем созданный ранее канал c именем monitoring, куда будут приходить сообщения от Zabbix-сервера
Также необходимо сохранить URL вебхука имеющий вид типа
1 |
https://hooks.slack.com/services/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 |
2.Настройка Zabbix-сервера
Создаем новый media type
1 2 3 4 5 |
Administration->Media type->Create media type: Name->Slack Type->Script Script name->slack.sh Enabled->Yes(use checkbox) |
Создаем нового Zabbix-пользователя с правами read only(предварително необходимо создать группу Read-only user group с правами только на чтение)
1 |
Administration->Users->справа вверху меняем User groups на User->Create user |
Вкладка User
1 2 3 4 5 6 |
Alias->slack Name->Slack Surname->User Groups->Read-only user group Password->Вводим пароль Password(once again)->Подтверждаем пароль |
Вкладка Media
1 2 3 4 5 |
Type->Slack Send to->#monitoring Поля When active и Use if severity выбираем по своему усмотрению (Например, я предпочитаю получать в Slack только сообщения с уровнем важности Disaster) Status->Enabled |
Создаем Action
1 |
Configuration->Action->Create Action |
Вкладка Action
1 2 3 4 5 6 7 |
Name->Report problems to Slack user Default subject->PROBLEM Default message-> {TRIGGER.NAME} - {HOSTNAME} ({IPADDRESS}) Recovery message->Yes Recovery subject->RECOVERY Recovery message-> {TRIGGER.NAME} - {HOSTNAME} ({IPADDRESS}) Enabled->Yes |
Вкладка Operations
1 2 |
Send to users->slack Send only to->Slack |
Загрузка и редактирование скрипта отправки оповeщений в Slack с Zabbix-сервера
Определяем месторасположение скриптов уведомлений на Zabbix-сервере
1 |
# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf |
1 2 3 |
### Option: AlertScriptsPath # AlertScriptsPath=${datadir}/zabbix/alertscripts AlertScriptsPath=/usr/lib/zabbix/alertscripts |
Загружаем скрипт и копируем в корректное месторасположение
1 |
# wget -O slack.zip https://github.com/ericoc/zabbix-slack-alertscript/archive/master.zip |
1 |
# unzip slack.zip |
1 |
# cp zabbix-slack-alertscript-master/slack.sh /usr/lib/zabbix/alertscripts/ |
1 |
# chmod +x /usr/lib/zabbix/alertscripts/slack.sh |
Устанавливаем URL WEBHook-а(полученный при настройке Incoming WEBHook в WEB-интерфейсе Slack ) и имя пользователя, от которого будут приходить сообщения в Slack
1 |
# nano /usr/lib/zabbix/alertscripts/slack.sh |
1 2 |
url='https://hooks.slack.com/services/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' username='Zabbix-server' |
3.Тестирование
Тестируем с командной строки выполняя скрипт передавая в качестве позиционных переменных
1 2 3 |
Имя канала в Slack - monitoring Тема сообщения - PROBLEM Текст сообщения - Test mesage! |
1 |
# bash slack.sh '#monitoring' PROBLEM 'Test mesage!' |
1 |
ok |
В Slack приходит сообщение
Источник:
https://github.com/ericoc/zabbix-slack-alertscript