Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Zabbix/Orabbix из PL/SQL? / 21 сообщений из 21, страница 1 из 1
27.10.2014, 18:17
    #38788528
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Коллеги, как мне зажечь из PL/SQL алерт в Zabbix/Orabbix?
Такое впечатление, что они не для этого :-) но вариантов нет, к сожалению.
Можно их как то через utl_tcp пнуть или только через консоль/чтобы они мониторили сами базу постоянно?
...
Рейтинг: 0 / 0
27.10.2014, 20:34
    #38788628
s_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Можно изучить исходники zabbix_sender. Или вызывать его из PL/SQL как команду ОС.
...
Рейтинг: 0 / 0
27.10.2014, 23:39
    #38788723
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Петров Андрей,

Спрашивать про интерфейсы забикса стоит на их сайте.
...
Рейтинг: 0 / 0
28.10.2014, 02:59
    #38788777
Alexey Zhidkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Протокол tcp, API на сайте имеется.
...
Рейтинг: 0 / 0
28.10.2014, 18:14
    #38789739
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
На будущее:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
create or replace function send2zabbix(aParam VarChar2,
                                       aValue VarChar2) return integer as
fConn   utl_tcp.connection;
fData   VarChar2(1000);
fResult VarChar2(1000);
fLen    Integer;
fIsOpen Integer := 0;
Begin
     Begin
          fConn := utl_tcp.open_connection(remote_host => '192.168.0.1',
                                           remote_port => 10051,
                                           charset     => 'CL8MSWIN1251');
     exception
          WHEN utl_tcp.network_error OR utl_tcp.transfer_timeout THEN
               RAISE_APPLICATION_ERROR (-20001, 'Zabbix connection error');
     end;
     fIsOpen := 1;
     fData := '{' || Chr(10) || '"request":"sender data",' || Chr(10) || '"data":[' || Chr(10) || '{' || Chr(10) || '"host":"test",' || Chr(10) || '"key":"' || aParam || '",' || Chr(10) || '"value":"' || aValue || '"}' || Chr(10) || ']}' || Chr(10) || Chr(13);
     fData := 'ZBXD' || Chr(1) || Chr(Length(fData)-1) || Chr(0) || Chr(0) || Chr(0) || Chr(0) || Chr(0) || Chr(0) || Chr(0) || fData;
     Begin
          fLen := utl_tcp.write_text(fConn, fData);
     EXCEPTION
          WHEN utl_tcp.network_error OR utl_tcp.transfer_timeout THEN
               RAISE_APPLICATION_ERROR (-20002, 'Zabbix port write error');
     END;
     begin
          fLen := utl_tcp.read_text(fConn, fResult, 1024);
     EXCEPTION
          WHEN utl_tcp.network_error OR utl_tcp.transfer_timeout THEN
               RAISE_APPLICATION_ERROR (-20003, 'Zabbix port read error');
     END;
     utl_tcp.close_connection(fConn);
     If fResult like 'ZBXD%' Then        
        return 1;
     else
        return 0;
     end if;
exception
    when others then
         If fIsOpen > 0 Then
            utl_tcp.close_connection(fConn);
         End if;
         return -1;
end;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.05.2019, 13:29
    #39810176
sqlstarter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Петров Андрей,

Привет всем!

У zabbix изменился протокол https://www.zabbix.com/documentation/4.0/manual/appendix/protocols/header_datalen, но при попытке отправки сообщает, что сообщение превысило необходимый размер... Пробовал опускать заголовок, отправлять сообщение подходящего размера, результат пока печальный.

Реализация на pl/sql (Петров Андрей).
Может кто-то уже боролся с этим?
...
Рейтинг: 0 / 0
06.05.2019, 14:17
    #39810215
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
sqlstarter
но при попытке отправки сообщает, что сообщение превысило необходимый размер... Кто сообщает? Полный текст ошибки приведите, пожалуйста.
...
Рейтинг: 0 / 0
07.05.2019, 07:36
    #39810497
sqlstarter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
jan2ary, Zabbix

" 8652:20190430:043409.656 Message from -=ip addr=- is missing header. Message ignored.
8649:20190430:091437.140 Message from -=ip addr=- is missing header. Message ignored.
8649:20190430:094743.982 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:094759.042 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:094935.824 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:095026.716 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8651:20190430:095108.618 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095238.682 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095339.710 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095827.092 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095831.241 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095835.066 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8649:20190430:095839.838 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:095926.142 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:100028.833 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:100054.095 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:100141.840 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:100210.888 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8649:20190430:105448.963 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:105511.942 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:105555.313 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8649:20190430:105637.895 Message from -=ip addr=- is longer than expected 102 bytes. Message ignored.
8651:20190430:105648.062 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:105655.640 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8649:20190430:105703.045 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8650:20190430:105711.998 Message from -=ip addr=- is longer than expected 96 bytes. Message ignored.
8648:20190430:110015.330 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8651:20190430:110025.006 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:110642.522 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8649:20190430:110903.859 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:111345.419 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8648:20190430:111351.952 Message from -=ip addr=- is longer than expected 101 bytes. Message ignored.
8649:20190430:111715.774 Message from -=ip addr=- is using unsupported protocol version "92". Message ignored.
8648:20190430:111724.755 Message from -=ip addr=- is using unsupported protocol version "92". Message ignored.
8648:20190430:112232.317 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8652:20190430:112709.555 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8649:20190430:112757.380 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8648:20190430:113147.739 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8650:20190430:113425.727 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8648:20190430:113500.201 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8651:20190430:113726.543 Message from -=ip addr=- is longer than expected 99 bytes. Message ignored.
8652:20190430:113749.296 Message from -=ip addr=- is longer than expected 100 bytes. Message ignored.
8652:20190430:113801.640 Message from -=ip addr=- is longer than expected 101 bytes. Message ignored."
...
Рейтинг: 0 / 0
07.05.2019, 09:27
    #39810540
Zabbix/Orabbix из PL/SQL?
...
Рейтинг: 0 / 0
07.05.2019, 10:07
    #39810560
sqlstarter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Алексей Кондыганов, спасибо.
Читал, этот форум, но увы нет...
...
Рейтинг: 0 / 0
07.05.2019, 10:42
    #39810580
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
sqlstarter,

Покажите тогда, что уходит заббиксу, как выглядит сообщение.
...
Рейтинг: 0 / 0
07.05.2019, 11:10
    #39810593
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
sqlstarterЧиталНаивно полагаться на chr в передаче двоичных данных.
...
Рейтинг: 0 / 0
07.05.2019, 16:58
    #39810797
Zabbix/Orabbix из PL/SQL?
sqlstarter,

В описании по вашей ссылке увидел, что длинна сообщения кодируется четырьмя байтами и они идут в обратном порядке.
А в функции всё запихивается в первый char.
...
Рейтинг: 0 / 0
08.05.2019, 05:22
    #39811040
sqlstarter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
jan2ary,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
....l.y.ZBXD.c.......{ 
"request":"sender data", 
"data":[ 
{ 
"host":"ibso123", 
"key":"DOC_QUEUE_RC_VAL", 
"value":"12"} 
]}
...
Рейтинг: 0 / 0
08.05.2019, 10:17
    #39811132
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
sqlstarter,

По ссылке есть сниппеты для отправки сообщения на других языках, попробуйте с ними поэкспериментировать, может какие идеи появятся.
...
Рейтинг: 0 / 0
08.05.2019, 13:46
    #39811277
Zabbix/Orabbix из PL/SQL?
Как вариант, можно на java написать хранимую процедуру и вызывать её из PL/SQL
...
Рейтинг: 0 / 0
08.05.2019, 19:30
    #39811506
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Алексей Кондыгановна java незнание plsql не означает знание джавы.
...
Рейтинг: 0 / 0
13.05.2019, 13:17
    #39812496
Zabbix/Orabbix из PL/SQL?
Примерно такая функция.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
CREATE OR REPLACE AND COMPILE  JAVA SOURCE NAMED "Send2Zabbix"
   AS
import java.io.*;
import java.net.*;

public class ZabbixSend{

public static String Send2Zabbix(String aParam, String aValue)
{
String error = null;
String data = null;
try{

String address = "192.168.0.1";
InetAddress ipAddress = InetAddress.getByName(address);

// открываем сокет и коннектимся к 192.168.0.1:10051
Socket s = new Socket(ipAddress, 10051);

// формируем данные
data = "{\n\"request\":\"sender data\",\n\"data\":[\n{\n";
data = data + "\"host\":\"test\",\n\"key\":\""+ aParam  + "\"\n";
data = data + "\"value\":\"" + aValue + "\"}\n]}\n\r";

//формируем заголовок
byte[] header = new byte[] {
    'Z', 'B', 'X', 'D', '\1',
    (byte)(data.length() & 0xFF),
    (byte)((data.length() >> 8) & 0xFF),
    (byte)((data.length() >> 16) & 0xFF),
    (byte)((data.length() >> 24) & 0xFF),
    '\0', '\0', '\0', '\0'};

//формируем пакет заголовок + данные 
byte[] packet = new byte[header.length + data.length()];
System.arraycopy(header, 0, packet, 0, header.length);
byte[] databytes = data.getBytes();
System.arraycopy(databytes, 0, packet, header.length, databytes.length);

//отправка пакета
s.getOutputStream().write(packet);

//Получение данных с сервера
BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                    s.getInputStream()));

        StringBuffer response = new StringBuffer(1024);
        String inputLine;

        while ((inputLine = in.readLine()) != null) 
            response.append(inputLine);

        in.close();

//закрываем соединение
s.close();
//Возвращаем результат
return response.toString();

}catch(Exception e){
error = e.toString();
return error;
}

}

};

--Создание Функции PL/SQL
CREATE OR REPLACE FUNCTION Send2Zabbix(aParam VARCHAR2, aValue VARCHAR2) RETURN VARCHAR2 AS
   LANGUAGE JAVA NAME 'ZabbixSend.Send2Zabbix (java.lang.String, java.lang.String) return java.lang.String';


--Назначение Гранта
begin
dbms_java.grant_permission( 'ORAUSER', 'SYS:java.net.SocketPermission', '192.168.0.1:10051', 'connect,resolve' );
end;

--Вызов функции
select Send2Zabbix('Param1','12') from dual;
...
Рейтинг: 0 / 0
13.05.2019, 13:30
    #39812500
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Алексей КондыгановПримерно такая функция.Примерно та же ошибка.
...
Рейтинг: 0 / 0
13.05.2019, 14:35
    #39812533
Zabbix/Orabbix из PL/SQL?
Запятую пропустил. Должно быть так.
Код: plsql
1.
2.
3.
4.
// формируем данные
data = "{\n\"request\":\"sender data\",\n\"data\":[\n{\n";
data = data + "\"host\":\"test\",\n\"key\":\""+ aParam  + "\",\n";
data = data + "\"value\":\"" + aValue + "\"\n}\n]\n}\n\r";
...
Рейтинг: 0 / 0
15.05.2019, 04:22
    #39813282
sqlstarter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Zabbix/Orabbix из PL/SQL?
Алексей Кондыганов,

Ранее проделал тоже самое, удачно отправлял, но админ говорит, не допустит ява пакет на базу, поэтому пробовал реализовать на pl/sql. Чутка позже вернусь к вопросу, сейчас занимаюсь большой-срочной задачей.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Zabbix/Orabbix из PL/SQL? / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]