Документация по ОС FreeBSD Понедельник, 06.05.2024, 00:20
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Zabbix - способы оповещения [2011]
Добрый день, сегодня хотел бы рассказать всем о так сказать почти всех способах оповещения системы Мониторинга 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

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

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


Источник: http://www.ignix.ru/book/freebsd/network/zabbix_sposoby_opoveshcheniya
Категория: Net | Добавил: oleg (13.08.2011) | Автор: MASiK
Просмотров: 924 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024