Возникла у меня необходимость прикрутить оповещения по скайпу, причем чтобы отправлялось не конкретному человеку, а в конференцию (всему нашему отделу ИТ).
Немного фактов:
1.Скайп не имеет консольных клиентов, только с GUI.
2.Есть skypekit, управляемый по api, который хоть и стоит смешных $5, но все же денег. Кроме того, опыта работы с ним нет. Хотя, с помощью него можно отправлять сообщения из консоли.
3.Еще есть sevabot для скайпа, который вроде как умеет интегрироваться в заббикс. Не знаю, не пробовал.
В любом случае, городить дополнительные пакеты на заббикс сервере не хотелось.
Итак, погуглив по форуму, наткнулся на этот топик: https://www.zabbix.com/forum/showthread.php?p=78264
Поднимать иксы на заббикс сервере ой как не хотелось, решил собрать все то же самое на отдельной виртуальной машине, а скриптом с заббикса пушить сообщения на этот сервер.
Выполняем все инструкции из топика выше. Там все доступно написано, добиваемся, чтобы скрипт sendim.sh работал. Прекрасно, но нам нужно отправить в конференцию. Для этого прежде всего создадим
конференцию, и в ней любым пользовотелем прямо в окне чата надо набрать "/get name". Получим название конференции вида: "#username1/$username2;c1b638c921d097b8". Зайдем по vnc на скайп сервер и проверим, что наш пользователь
скайп бота в конференции.
А теперь снесем все из скрипта sendim.py и напишем следущее:
Теперь надо сгенерировать пару ключей на заббикс сервере и публичный ключ прописать на сервере со скайпом. На заббикс сервере обязательно в /etc/passwd должна быть прописана пользователю zabbix
home директория и в ней создана директория .ssh, куда положить приватный ключ. Командная оболочка в passwd файле может быть /bin/false. Теперь в директории скриптов, указанной в конфиге заббикса создадим малюсенький .sh скрипт:
Но таким образом, к сожалению, не заработало
Не хочет по ssh передавать два параметра. Может, кто подскажет, как надо.
Прописал жестко на скайп сервере имя конференции в файле sendim.sh:
А в скрипте на заббикс сервере написал так:
Ну а дальше дело техники, добавить в оповещения скрипт и назначить его действиям на срабатывание триггера.
Немного фактов:
1.Скайп не имеет консольных клиентов, только с GUI.
2.Есть skypekit, управляемый по api, который хоть и стоит смешных $5, но все же денег. Кроме того, опыта работы с ним нет. Хотя, с помощью него можно отправлять сообщения из консоли.
3.Еще есть sevabot для скайпа, который вроде как умеет интегрироваться в заббикс. Не знаю, не пробовал.
В любом случае, городить дополнительные пакеты на заббикс сервере не хотелось.
Итак, погуглив по форуму, наткнулся на этот топик: https://www.zabbix.com/forum/showthread.php?p=78264
Поднимать иксы на заббикс сервере ой как не хотелось, решил собрать все то же самое на отдельной виртуальной машине, а скриптом с заббикса пушить сообщения на этот сервер.
Выполняем все инструкции из топика выше. Там все доступно написано, добиваемся, чтобы скрипт sendim.sh работал. Прекрасно, но нам нужно отправить в конференцию. Для этого прежде всего создадим
конференцию, и в ней любым пользовотелем прямо в окне чата надо набрать "/get name". Получим название конференции вида: "#username1/$username2;c1b638c921d097b8". Зайдем по vnc на скайп сервер и проверим, что наш пользователь
скайп бота в конференции.
А теперь снесем все из скрипта sendim.py и напишем следущее:
Code:
import Skype4Py as sky
import sys
client = sky.Skype()
client.Attach()
name = sys.argv[1]
curchat = ''
try:
curchat = client.Chat(name)
except Exception, e:
print 'Can not send message!'
else:
print 'Send message to:', curchat.Name
msg = ' '.join(sys.argv[2:])
curchat.SendMessage(msg.decode('utf-8'))
home директория и в ней создана директория .ssh, куда положить приватный ключ. Командная оболочка в passwd файле может быть /bin/false. Теперь в директории скриптов, указанной в конфиге заббикса создадим малюсенький .sh скрипт:
Code:
#/bin/bash ssh [email protected] "/path/to/sendim.sh '$1' '$3'"
Не хочет по ssh передавать два параметра. Может, кто подскажет, как надо.Прописал жестко на скайп сервере имя конференции в файле sendim.sh:
Code:
python2 sendim.py '#username1/$username2;c1b638c921d097b8' $1
Code:
ssh [email protected] "/root/sendim.sh '$3'"