Ad Widget

Collapse

Zabbix 3 и jabber-оповещения

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • svyaznoy
    Member
    • Nov 2014
    • 87

    #1

    Zabbix 3 и jabber-оповещения

    Суть в следующем.
    Есть perl-скрипт на сервере zabbix. При запуске его из командной строки сообщения приходят исправно. При срабатывании триггера в zabbix ничего не доходит.

    1. В конфиге заббикс папка со скриптами прописана правильно.
    2. В способах оповещения прописано, в настройках пользователя все указано.
    3. В ОТЧЕТЫ - ЖУРНАЛ ДЕЙСТВИЙ пишется, что якобы оповещение отправлено успешно.

    Может что-то сможете подсказать, что посмотреть и где порыться?
  • svyaznoy
    Member
    • Nov 2014
    • 87

    #2
    От пользователя zabbix скрипт также выполняется успешно
    sudo -u zabbix /usr/lib/zabbix/alertscripts/jabber

    Connected
    Authed
    Sended

    Comment

    • Scales
      Member
      • May 2015
      • 36

      #3
      Не знаю о том я или нет?
      Originally posted by svyaznoy
      Суть в следующем.
      Может что-то сможете подсказать, что посмотреть и где порыться?
      1) У меня отправляется через скрипт на основе sendxmpp, выглядит так
      jabber.sh забрасываем в /usr/lib/zabbix/alertscripts/jabber
      #!/bin/sh
      export MTO="$1"
      export SUB="$2"
      export TXT="$3"
      echo "$TXT" | sendxmpp -s "$SUB" -u usrjab -j jabsrv:5222 -p 'usrjabpsw' $MTO

      2) Администрирование -> Способы оповещений ->
      Создать способ оповещения ->
      Имя: Jabrep_name (имя способа оповещения)
      Тип: Скрипт
      Имя скрипта: jabber.sh
      Параметры скрипта: жмём добавить (3 раза) где параметры, добавляем вот такие штуки
      {ALERT.SENDTO}
      {ALERT.SUBJECT}
      {ALERT.MESSAGE}
      Жмём кнопку "Добавить".

      3) Администрирование -> Пользователи -> выбираю пользователя ("Admin") -> Оповещения -> жмём добавить
      Тип: Jabrep_name (имя способа оповещения)
      Отправлять на: to_me@jabsrv
      Остальное можно по умолчанию...

      usrjab@jabsrv - пользователь(п.1), от кого будут идти сообщения
      to_me@jabsrv - пользователь(п.3), которому будут идти сообщения

      P.S.: только одня х-ня, заголовки идут в кривой кодировке , что только не пробовал... и язык и кодировки в системе менял, пока не разобрался. Будут идеи по этому поводу, буду признателен.
      Last edited by Scales; 18-03-2016, 14:30.

      Comment

      • svyaznoy
        Member
        • Nov 2014
        • 87

        #4
        Выяснил, что заббикс не передает в скрипт текст сообщения, данные получателя.
        Меня смущает, что в настройках оповещения появились пункты ПАРАМЕТР. Может туда надо что-то дописать?

        Вот сам скрипт:

        #! /usr/bin/perl

        use Net::XMPP;
        use utf8;

        my $to = $ARGV[0];
        my $subj = $ARGV[1];
        my $body = ".\n".$ARGV[2];
        my $type = $ARGV[3];

        if (!defined($type)) {
        $type = 'headline';
        }

        my $s = utf8::decode($subj);
        my $b = utf8::decode($body);

        #my $hostName = 'name';
        my $hostName = 'arh-VS-Flex1.oducz.so';
        my $portNumber = 5222;
        my $componentName = '';
        my $userName = 'zabbix';
        my $passWord = 'pass';
        my $resource = 'zabbix-srv';
        my $tls = 0;
        my $connectionType = 'tcpip';

        my $debugLevel = 2;
        my $bot = new Net::XMPP::Client(
        debuglevel => $debugLevel,
        debugfile => "/tmp/jab.log"
        );

        $bot->SetCallBacks(
        onconnect => \&connectedCB,
        onauth => \&authedCB,
        ondisconnect => \&disconnectedCB
        );

        $bot->Execute(
        hostname => $hostName,
        port => $portNumber,
        tls => $tls,
        username => $userName,
        password => $passWord,
        resource => $resource,
        register => 0,
        connectiontype => $connectionType
        );

        sub connectedCB {
        print "Connected\n";
        }

        sub authedCB {
        print "Authed\n";
        $bot->PresenceSend;

        $bot->MessageSend(
        to => $to,
        # subject => $subj,
        body => $body,
        type => $type
        );

        print "Sended\n";
        $bot->Disconnect();
        }

        sub disconnectedCB {
        print "Disconnected\n";
        }

        Comment

        • Scales
          Member
          • May 2015
          • 36

          #5
          Originally posted by svyaznoy
          Выяснил, что заббикс не передает в скрипт текст сообщения, данные получателя.
          Меня смущает, что в настройках оповещения появились пункты ПАРАМЕТР. Может туда надо что-то дописать?
          Да, нужно!!!

          Добавить раз
          {alert.sendto}
          Добавить два
          {alert.subject}
          Добавить три
          {alert.message}
          Last edited by Scales; 18-03-2016, 14:35.

          Comment

          • svyaznoy
            Member
            • Nov 2014
            • 87

            #6
            нее, что-то не так. В логах аналочгично, информация о получателе и сообщение не передается.
            Разве параметры одинаковые на ваш и мой скрипт? Я, возможно, что-то не понимаю.

            Comment

            • Scales
              Member
              • May 2015
              • 36

              #7
              Originally posted by svyaznoy
              нее, что-то не так. В логах аналочгично, информация о получателе и сообщение не передается.
              Разве параметры одинаковые на ваш и мой скрипт? Я, возможно, что-то не понимаю.
              как-то так, вроде работает
              Attached Files

              Comment

              • makcimca
                Junior Member
                • Aug 2016
                • 2

                #8
                Всем привет.
                Стоит все на одном сервере: FreeBSD 10; Zabbix 3; Openfire 4; sendxmpp.
                Из консоли сообщения посылаются. Если выбираешь в zabbixe получение сообщений через jabber, то состояние действия не отправлено (sasl authentication failed). Если используешь скрипт, сообщение отправляются в zabbixe, но ничего не приходит.


                В /openfire/warn.log при любом способе отправке сыпятся сообщения:
                2016.08.15 21:22:57 org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to exception in session: (0x00000047: nio socket, server, /localIP:16780 => 0.0.0.0/0.0.0.$
                java.io.IOException: Connection reset by peer
                at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
                at sun.nio.ch.SocketDispatcher.read(SocketDispatcher. java:39)
                at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java :223)
                at sun.nio.ch.IOUtil.read(IOUtil.java:197)
                at sun.nio.ch.SocketChannelImpl.read(SocketChannelImp l.java:380)
                at org.apache.mina.transport.socket.nio.NioProcessor. read(NioProcessor.java:273)
                at org.apache.mina.transport.socket.nio.NioProcessor. read(NioProcessor.java:44)
                at org.apache.mina.core.polling.AbstractPollingIoProc essor.read(AbstractPollingIoProcessor.java:690)
                at org.apache.mina.core.polling.AbstractPollingIoProc essor.process(AbstractPollingIoProcessor.java:664)
                at org.apache.mina.core.polling.AbstractPollingIoProc essor.process(AbstractPollingIoProcessor.java:653)
                at org.apache.mina.core.polling.AbstractPollingIoProc essor.access$600(AbstractPollingIoProcessor.java:6 7)
                at org.apache.mina.core.polling.AbstractPollingIoProc essor$Processor.run(AbstractPollingIoProcessor.jav a:1124)
                at org.apache.mina.util.NamePreservingRunnable.run(Na mePreservingRunnable.java:64)
                at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
                at java.lang.Thread.run(Thread.java:745)

                Comment

                Working...