Добрый день, сегодня хотел бы рассказать всем о так сказать почти всех способах оповещения системы Мониторинга Zabbix. В данной статье пойдёт речь о таких системах мгновенных сообщений как: SMS, Jabber, ICQ, email
Содержание:
Все действия делались на системе FreeBSD 8.2 i386 и будем считать, что сервер Zabbix стоит и уже работает, а как развернуть и настроить сервер в этой статье описываться не будет. Для этого вы можете прочитать статью Zabbix - мониторим и отслеживаем
Начнём с самого простого Email
Для начала идём в порты и ставим очень удобную программку sendEmail
cd /usr/ports/net/sendemail/ && make install clean
?????????????????????????????????????????????????????????????????????? ? Options for sendEmail 1.56 ? ? ?????????????????????????????????????????????????????????????????? ? ? ? [X] SSL Enable SSL support ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????????????????????????????????????????????????? ? [ OK ] Cancel ? ??????????????????????????????????????????????????????????????????????
Программа не какой настройки не требует после установки пишем вот такой скриптик для Zabbix
#!/bin/sh export smtpemailfrom=zabbix@host.ru export zabbixemailto="$1" export zabbixsubject="$2" export zabbixbody="$3" export smtpserver=smtp.host.ru export smtplogin=zabbix@host.ru export smtppass=MegaPass export logfile=/var/log/sendemail.log /usr/local/bin/sendEmail -l "$logfile" -f "$smtpemailfrom" -t "$zabbixemailto" \ -u "$zabbixsubject" -m "$zabbixbody" -s $smtpserver:25 -xu \ "$smtplogin" -xp "$smtppass"
Скрипт абсолютно простой и гуляет по инету уже давно так что тут всё просто программа просто соединяется на SMTP хост под таким-то логином и паролем, и шлёт от него всё что нам надо, в данном случае данные с Заббикса
Естественно кладём этот файл дав ему права 755 в директорию которая у вас задана на сервере
AlertScriptsPath=/usr/local/etc/zabbix/alertscripts/
По дефолту она вообще выключена
Далее идём и логинимся под админом в веб интерфейсе.
Администрирование > Способы оповещений
вверху с права "Создать способ оповещения"
И вносим информацию о нашем скрипте:
Описание ;Просто название его
Тип ;Естественно Скрипт
Название скрипта ;Просто название файла у меня например zabbix_sendemail
Далее создаём Настройка > Действия
В нутрях надо делать индивидуально, у меня например всё просто
Период времени в "1-7,00:00-23:59"
Значение триггера = "ПРОБЛЕМА"
Важность триггера = "Чрезвычайная"
Отправить сообщение Группа "Zabbix administrators"
Более подробно можно почитать в мане заббикса, ссылку на Онлайн Мануал найдёте в конце статьи.
Теперь мы переходим к отправке по SMS
Я использовал смсшлюз ТурбоСМС Он очень удобен так как у него есть возможность отправки СМС через MySQL что для меня было очень удобно, на этом и был нарисован скрипт, и кстати не мной про турбоСМС и про этот скрипт я узнал где-то в интернете давнооо давно
Вот он скриптик
#!/usr/bin/perl use strict; use POSIX; use DBI; my $phone=@ARGV[0]; my $subj=@ARGV[1]; my $msg=@ARGV[2]; my $driver = "mysql"; my $user = "User"; my $password = "MegaPASS"; my $database = "users"; my $dsn = "DBI:$driver:host=77.120.116.10:3306;database=$database"; my $dbh = DBI->connect($dsn, $user, $password); my $sql = $dbh->prepare("INSERT INTO $user (number, sign, message) VALUES ('$phone', 'ISN(Обратите внимания сюда)', '$msg')"); $sql->execute;
Опять же, всё очень просто, скрипт на Perl кому интересно могут переделать под BASH, SH хоть PHP тут не чего сложного.
Опять же повторяем действия какие мы делали при создании Email оповещений.
Начиная с
дав ему права 755
И всё, готова у нас отправка и по СМС
Теперь переходим к самому замороченному и трудному для меня
Отправка на ICQ
Возможно есть и другие способы, с помощю ПХП ботов, или ещё чего, но я выбрал путь с помощью консольного клиента climm
Для начала нужно удостовериться что у нас последняя версия, и просто обновить порты.
потом идём в
cd /usr/ports/net-im/climm/ && make install clean
В конфиге я лично отметил всё, а вы можете на свой вкус но самое главное для нас это TCL scripting support и Remote control fifo support
?????????????????????????????????????????????????????????????????????? ? Options for climm 0.7.1_1 ? ? ?????????????????????????????????????????????????????????????????? ? ? ? [X] LIBICONV Iconv character set conversion ? ? ? ? [X] P2P Peer2peer connection support ? ? ? ? [X] TCL TCL scripting support ? ? ? ? [X] OTR OTR encryption support ? ? ? ? [X] REMOTE Remote control fifo support ? ? ? ? [X] XMPP XMPP Jabber support ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????????????????????????????????????????????????? ? [ OK ] Cancel ? ??????????????????????????????????????????????????????????????????????
После установки можно настроить, а можно и не трогать, он сам создаст дефолтный файл с настройками в
~/.climm/
Почитать о нём можно много в нете, так что не буду описывать как его настраивать, и он с русским интерфейсом, Лично Я, использовал дефолтный конфиг, всё просто.
Теперь создадим TCL скриптик
# Verbindet sich mit ICQ, horcht an Socket und sendet Nachrichten per ICQ weiter ### # # Globals # # ICQ UIN des Admins # (bekommt Nachrichten beim Starten und Stoppen des ICQ-Forwarders) set admin "5114112" ### # # Funktionen # # Startet die Socket proc serverOpen {channel addr port} { global connected set connected 1 fileevent $channel readable "readLine Server $channel" # puts "Client verbunden, warte auf Daten..." # puts "Client verbunden" } # Liest Zeilen aus der Socket proc readLine {who channel} { global out didRead admin gets $channel line if {"$line" == ""} { fileevent $channel readable {} after idle { # puts "Idle, warte auf Verbindung..." set didRead 1 } } elseif {$line == "kill"} { set killmsg "Zabbix ICQ Server STOP!" climm exec "msg $admin $killmsg" puts $channel $msg flush $channel exit } else { climm exec "msg $line" #after 3000 # puts "out: \"$antwort\"" # puts $channel "$antwort" # flush $channel; set didRead 1 } } # ### # # Hauptprogramm # # Socket als verf.gbar markieren set connected 0 # Server an Port 33000 starten set server [socket -server serverOpen 33000] puts "ICQ-Forwarder gestartet, horche auf Port 33000" climm exec "msg $admin Zabbix ICQ Server START!" while [ vwait out ] { vwait connected vwait didRead unset connected didRead }
Обзавём его допустим icq-tcl
И так же создадим файлик для Zabbix
#!/usr/bin/tclsh # # (Test-)Client: Sendet Daten an den Server # # zu Socket verbinden, Referenz in Variable "sock" speichern set sock [socket -async 127.0.0.1 33000] # Wenn Kommandozeilenparameter vorhanden, # Dann diese in Var. "eingabe" schreiben # Sonst an StdIn auf Eingabe warten und in Var schreiben if {$argc > 0} { set eingabe "$argv" } else { puts "Bitte Daten eingeben, \"kill\" stoppt den Server:" set eingabe [gets stdin] } # Inhalt aus "eingabe" an Socket senden puts $sock "$eingabe" flush $sock #puts "Serverantwort:" #set len [gets $sock ausgabe] #puts "in : \"$ausgabe\"" # Client beenden close $sock exit
Он у нас на tcslsh писан, назовём его zabbix_icqsend и положем куда надо.
Теперь запустим climm сделаем новую учётку, или воспользуемся своей не суть
Как залогиниться автоматом опишу.
Идём в
ee ~/.climm/climmrc
и добавим в верху вот такой блок
[Server] type icq8 auto version 8 host login.icq.com port 5190 screen 123456789 password 123456 status online options ignore off
Вот не помню там это есть по дефолту или нет, вас естественно интересует тока screenэто UIN и password
Вводим, запускаем climm
Он логиниться теперь запускаем нашь скрипт! пишем
tclscript ПОЛНЫЙ_ПУТЬ_ДО_ФАЙЛА/icq-tcl
И он жолжен повиснуть на 33000 порту, я лично запускал его в скринах и оставлял его там висеть, по другому пока не придумал, листаю маны по climm и по tcl.
Смотрим повис ли он на порту
sockstat -4l | grep climm root climm 73029 6 tcp4 *:33000 *:*
Ага висит, всё отлично, теперь давайте баловаться )))
Идём в
cd /usr/local/etc/zabbix/alertscripts/
chmod +x zabbix_icqsend
И делаем такой запросик
./zabbix_icqsend UIN MSG
./zabbix_icqsend 123456789 Helo World
И вам придёт сообщение.
Есть пару нюансов, надо что бы вы были авторизированы у этого номера, и что бы он у вас тоже.
Так же есть фаерволом не закрыть порт 33000 то можоно по телнету подключиться и слать сообщения )
Русский только в UTF-8
Ну вот собственно и всё, писал на скорую руку, так что вопросы в студию, поправлю чё надо, и дорасскажу чего не хватает
Всем спасибо, все свободны.
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer
Оу
Блин а про жабер то не написал... и ошибочка в скрипте СМС, там у меня INSERT INTO masik
Надо бы
INSERT INTO $user
Мдеее.... Я как пьяный писал прям
RE:Оу
Ну так исправь. Хорошо, что сам увидел. )
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]
Да я пока с твоей ЦМС не
Да я пока с твоей ЦМС не разобрался )
Автозапуск клим
Когда я запускаю climm и после успешного логина ввожу команду
tclscript /path-to/icq-tcl
все отлично работает.
Но когда я использую команду
climm -u -p -C 'tclscript /path-to/icq-tcl'
climm запускает скрипт перед тем, как залогиниться в сети, и я не могу отправлять сообщения.
climm версии 0.7.1
Какая команду нужно использовать для climm для последовательного логина и запуска tclscript?
Нужно решение для автоматического запуска climm в режиме слушателя в одной командной строке.
Да к сожалению с этим не могу
Да к сожалению с этим не могу разобраться, и сам бы рад запускать не руками, тока сейчас занялся этим, думаю к ночи будет ответ как это решить
Есть решение?
Есть решение?
И есть И нет
Я так понял надо просто задать -c и выстроить цепочку команд то что он делает автоматом аля "Логин, пасс, сервер, коннект, дождаться соеденения, получить список контактов" и уже потом запускать скрипт, пока сам не пробовал времени нет, но поробуйте, думаю это прокатит Гугл, логика и man вам в помощь )))
climm
запускаю так:
открываю терминал (putty), ввожу
screen
потом
climm
после того как авторизуется
tclscript /path-to/icq-tcl
потом нажать ctrl+a и ctrl+d, и можно закрыть терминал, при этом климм останется работать, и будет отсылать сообщения
почему скрипты на разных
почему скрипты на разных языках ?
помимо перла ставить тактикль ?
Голосом
А у нас я настраивал звуковое оповещение голосом для NOC и тех. поддержки 2-го уровня.
Записывал с микрофона отдельные фразы и слова ("Упал поток на", "Марксистская"...)
!!!!!
Ошибочка в скрипте инициализации climm exec "msg $admin $killmsg", если занимаетесь копипастом, то хотя бы смотрите что копируете
climm exec "msg $admin $killmsg"
exec climm "msg $admin $killmsg"
и tclsh ПОЛНЫЙ_ПУТЬ_ДО_ФАЙЛА/icq-tcl
Ошибок не вижу не одной,
Ошибок не вижу не одной, причём тут копипист не понял но видимо у вас горе от ума
это функция самого клиента climm exec выполнить ту или иную команду, Но не как не наоборот, не путайте людей если сами не понимаете о чём речь
Приветствую коллеги!Хотел
Приветствую коллеги!Хотел спросить,при уведомлении по имеил,все сообщения видятся нормально?у меня кракозябры.Версия зи 1.8.5 везде вроде бы кодирока utf-8
Skype
Появился нойтис под Скайп без всяких Иксов, времени пока что нет Статью переделать, но скоро, если кому срочно надо Пишите, как под Дебиан, так под БСД все проеверял, все работает
Всех с НАСТУПАЮЩИМ!
Tema
Предлагаю обменятся ссылками с сайтом http://ra3dnq.ru
Tema
Предлагаю обменятся ссылками с сайтом http://ra3dnq.ru
Это правильно
Рассмотрите взаимообразное размещение ссылок с сайтами http://awtodor.ru http://odivanax.ru http://alzor.ru http://samaram.ru http://domsalatov.ru