Для того чтобы изменить скрипт вашего бота и настроить Zabbix для отправки всех уведомлений в Яндекс Мессенджер, вам необходимо внести несколько изменений в код вашего скрипта.
Предположим, что ваш текущий скрипт для отправки тестовых сообщений выглядит следующим образом:
```python
import requests
def send_message_to_yandex_messenger(message):
url = "https://messenger.yandex.com/api/send"
payload = {
"text": message,
"chat_id": "your_chat_id"
}
headers = {
"Authorization": "Bearer your_token"
}
response = requests.post(url, json=payload, headers=headers)
return response.status_code == 200
def main():
# Получаем данные из Zabbix
sent_message = "Это тестовое сообщение"
if send_message_to_yandex_messenger(sent_message):
print("Сообщение отправлено успешно")
if __name__ == "__main__":
main()
```
### Изменения для отправки всех уведомлений
1. **Обработайте входные данные**: Вместо того чтобы использовать фиксированное тестовое сообщение, вы можете извлекать содержимое уведомлений Zabbix через параметр, который будет передаваться скрипту.
2. **Измените логику скрипта**: Вам нужно обновить логику скрипта, чтобы он принимал любые сообщения.
Обновленный пример скрипта может выглядеть следующим образом:
```python
import requests
import sys
def send_message_to_yandex_messenger(message):
url = "https://messenger.yandex.com/api/send"
payload = {
"text": message,
"chat_id": "your_chat_id"
}
headers = {
"Authorization": "Bearer your_token"
}
response = requests.post(url, json=payload, headers=headers)
return response.status_code == 200
def main():
# Получаем данные из Zabbix, сообщение передается как аргумент при вызове скрипта
if len(sys.argv) < 2:
print("Ошибка: Сообщение не передано.")
return
message = sys.argv[1]
if send_message_to_yandex_messenger(message):
print("Сообщение отправлено успешно")
else:
print("Ошибка при отправке сообщения")
if __name__ == "__main__":
main()
```
### Как вызвать скрипт из Zabbix
Теперь, когда вы настраиваете Zabbix для вызова этого скрипта, добавьте его как действие с передачей необходимых параметров, например:
```bash
python your_script.py "{ALERT.SEND.MESSAGE}"
```
Где `{ALERT.SEND.MESSAGE}` – это переменная, содержащая текст уведомления Zabbix.
### Дополнительные шаги
1. **API токен и chat_id**: Убедитесь, что вы правильно настроили токен для авторизации и chat_id для отправки сообщений в нужный чат Яндекс Мессенджера.
2. **Настройка триггеров и действий в Zabbix**: Убедитесь, что триггеры и действия настроены в Zabbix для вызова этого скрипта при возникновении нужных событий.
Эти изменения позволят вашему скрипту отправлять любые уведомления из Zabbix в Яндекс Мессенджер.