Zabbix - способы оповещения

Добрый день, сегодня хотел бы рассказать всем о так сказать почти всех способах оповещения системы Мониторинга Zabbix. В данной статье пойдёт речь о таких системах мгновенных сообщений как: SMS, Jabber, ICQ, email

Содержание:

Введение

Все действия делались на системе FreeBSD 8.2 i386 и будем считать, что сервер Zabbix стоит и уже работает, а как развернуть и настроить сервер в этой статье описываться не будет. Для этого вы можете прочитать статью Zabbix - мониторим и отслеживаем

E-Mail

Начнём с самого простого Email

Для начала идём в порты и ставим очень удобную программку sendEmail

cd /usr/ports/net/sendemail/ && make install clean

Выбрать мы можем только SSL, что вам и советую, и за частую требуется.
     ??????????????????????????????????????????????????????????????????????
     ?                    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

Теперь мы переходим к отправке по 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

Теперь переходим к самому замороченному и трудному для меня
Отправка на 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/

даём права +x файлу zabbix_icqsend
chmod +x zabbix_icqsend

И делаем такой запросик

./zabbix_icqsend UIN MSG

Примером будет

./zabbix_icqsend 123456789 Helo World

И вам придёт сообщение.

Есть пару нюансов, надо что бы вы были авторизированы у этого номера, и что бы он у вас тоже.

Так же есть фаерволом не закрыть порт 33000 то можоно по телнету подключиться и слать сообщения )

Русский только в UTF-8

Ну вот собственно и всё, писал на скорую руку, так что вопросы в студию, поправлю чё надо, и дорасскажу чего не хватает

Всем спасибо, все свободны.

FAQ

Дополнительные материалы
Ваша оценка: Нет Средняя: 5 (12 голосов)

Оу

Блин а про жабер то не написал... и ошибочка в скрипте СМС, там у меня 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

Последние статьи

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer