1 (edited by scopus 2019-03-29 07:20:59)

Topic: snmp мониторинг

Есть ли возможность сделать snmp мониторинг?

Re: snmp мониторинг

Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0


Добавил такую возможность, к сожалению нет возможности протестировать, т.к. нет устройство поддерживающих SNMP, дайте знать, работает ли.


Проект с примером:

Post's attachments

Attachment icon SNMP.zip 4.48 kb, 474 downloads since 2019-03-20 

Dmitry.

Re: snmp мониторинг

команды понимает и ответ тоже есть. Теперь такой вопрос можно ли сделать отображение в таблице процентного остатка картриджа? с расчетом при посылке 1-го oid он говорит сколько максимум при посылки 2-го говорит сколько сейчас тонера? Пример прилагаю программу чего хотелось бы видеть и как. но там не хватает некоторого функционала которым бы хотелось компенсировать вашей программой.

Re: snmp мониторинг

scopus wrote:

команды понимает и ответ тоже есть. Теперь такой вопрос можно ли сделать отображение в таблице процентного остатка картриджа? с расчетом при посылке 1-го oid он говорит сколько максимум при посылки 2-го говорит сколько сейчас тонера? Пример прилагаю программу чего хотелось бы видеть и как. но там не хватает некоторого функционала которым бы хотелось компенсировать вашей программой.

Можете скриптом создавать колонки и строки в гриде, затем заполнять их любыми данными

procedure Form1_OnShow (Sender: TObject; Action: string);
var
    NxTextColumn: TNxTextColumn;
begin
    // create columns
    Form1.TableGrid1.Columns.Clear;

    try
        Form1.TableGrid1.Columns.Add(TNxTextColumn);
    except
    end;

    try
        Form1.TableGrid1.Columns.Add(TNxTextColumn);
    except
    end;

    try
        Form1.TableGrid1.Columns.Add(TNxTextColumn);
    except
    end;

    try
        Form1.TableGrid1.Columns.Add(TNxTextColumn);
    except
    end;


    Form1.TableGrid1.Columns[0].Color := clWhite;
    Form1.TableGrid1.Columns[1].Color := clWhite;
    Form1.TableGrid1.Columns[2].Color := clWhite;
    Form1.TableGrid1.Columns[3].Color := clWhite;



    // Rows
    Form1.TableGrid1.AddRow(10);
end;

Заполнять ячейки можно так

Form1.TableGrid1.Cells[x,y] := 'Ваш текст';
Dmitry.

Re: snmp мониторинг

а как можно сделать так что бы занеся в таблицу в 1 столбик ip устройства по нажатию кнопки он сделал на него snmp опрос и получив данные записывал в таблицу. и второе брал из таблицы данные проводил над этими данными математические действия и заносил в другой столбец эти данные. это возможно?

Re: snmp мониторинг

oid будет заранее в скрипте внесен. формула будет такая ( макс тонер * 100 ) текущее тонера = % тонера

Re: snmp мониторинг

Возможно все )
К сожалению я могу помочь только с решением конкретных вопросов. Что именно не получается сделать?

Dmitry.

Re: snmp мониторинг

пример таблицы

Post's attachments

Attachment icon SNMP 2.zip 306.26 kb, 460 downloads since 2019-03-21 

Re: snmp мониторинг

scopus wrote:

пример таблицы

Протестируйте пожалуйста.

Post's attachments

Attachment icon SNMP 2_fixed.zip 6.58 kb, 458 downloads since 2019-03-21 

Dmitry.

Re: snmp мониторинг

да работает. теперь можно сделать что бы кнопка нажималась при запуске программы или циклично по таймеру?. так же как сделать проверять поле если меньше 5% то отправлять письмо на почту.

Re: snmp мониторинг

smtp сервер имеется

Re: snmp мониторинг

scopus wrote:

да работает. теперь можно сделать что бы кнопка нажималась при запуске программы или циклично по таймеру?. так же как сделать проверять поле если меньше 5% то отправлять письмо на почту.

Доработал проект, проверка будет циклично по таймеру, в константе CheckEveryMins можете установить значение в минутах.
Также будет отправлять email если меньше 5%, для этого настройте параметры функции SendMail

Post's attachments

Attachment icon SNMP 2_fixed_2.zip 8.35 kb, 448 downloads since 2019-03-21 

Dmitry.

Re: snmp мониторинг

Теперь вопрос такой несколько почтовых ящиков можно указать?

Re: snmp мониторинг

еще вопрос при запросе 1.3.6.1.2.1.43.11.1.1.6.1.1 получаю ответ Black Cartridge HP CF280X он не хочет это записывать кидает ошибку
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    i: integer;
    ip: string;
    sMaxTiner, sNowTiner, sTipCartBlack: string;
    procent: string;
begin
    Form1.Label1.Caption := 'Starting...';
    Application.ProcessMessages;

    for i := 0 to Form1.TableGrid1.RowCount-1 do
    begin
        ip := Form1.TableGrid1.Cells[0,i];
        if ip <> '' then
        begin
            Form1.Label1.Caption := ip;
            sMaxTiner := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.8.1.1'); // подставьте OID значение для получения максимума тонера
            sNowTiner := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.9.1.1'); // подставьте OID значение для получения текущего значения тонера
            sTipCartBlack := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.6.1.1'); // подставьте OID значение для получения типа картриджа черного
            if sMaxTiner <> '' then SQLExecute('UPDATE printer SET tinerMaxOidBlack = '+sMaxTiner+' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
            if sNowTiner <> '' then SQLExecute('UPDATE printer SET tinerNowOidBlack = '+sNowTiner+' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
            if sTipCartBlack <> '' then SQLExecute('UPDATE printer SET TipCartBlack = '+sTipCartBlack+' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
        end;
    end;

не пойму где ошибка

Post's attachments

Attachment icon 1.PNG 4.88 kb, 212 downloads since 2019-03-22 

Re: snmp мониторинг

1

Post's attachments

Attachment icon 2.PNG 3.99 kb, 204 downloads since 2019-03-22 

Re: snmp мониторинг

подобную ошибку ловлю везде где идет текст а не цифры

Post's attachments

Attachment icon SNMP 2_fixed_2.zip 310.82 kb, 472 downloads since 2019-03-22 

Re: snmp мониторинг

scopus wrote:

Теперь вопрос такой несколько почтовых ящиков можно указать?

Можно, просто разделяйте их точкой с запятой ;

mail1@mail.com;mail2@mail.com
Dmitry.

Re: snmp мониторинг

Когда в базу данных вставляется текст, его необходимо обрамлять кавычками, поэтому строку

if sTipCartBlack <> '' then SQLExecute('UPDATE printer SET TipCartBlack = '+sTipCartBlack+' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));

замените на

if sTipCartBlack <> '' then SQLExecute('UPDATE printer SET TipCartBlack = '''+sTipCartBlack+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
Dmitry.

19 (edited by scopus 2019-03-27 08:41:30)

Re: snmp мониторинг

Последний пример с цветными картриджами

Post's attachments

Attachment icon SNMP 2_fixed_2.zip 313.83 kb, 488 downloads since 2019-03-25 

20 (edited by scopus 2019-03-27 09:51:28)

Re: snmp мониторинг

С почтой разобрался но теперь вопрос вот в чем. если нету цветного картриджа в принтере то он просто ничего не показывает но скрипт считает что меньше 7 процентов и информацию присылает. как можно задать что бы если нету информации то не отправлять почту? Так же на желтый и красный отправление посты ругается ""is not a valid integer value.

Post's attachments

Attachment icon Мониторинг принтера.zip 319.19 kb, 466 downloads since 2019-03-27 

Re: snmp мониторинг

В вашем проекте я не нашел условия, где используется 7 процентов.
Также при отстуствии информации скрипт не должен отправлять email.
Чтобы не было ошибки, замените подобные условия

if StrToInt(procentYellow) < 5 then 

на

if (ValidInt(procentYellow)) and (StrToInt(procentYellow) < 5) then 
Dmitry.

22 (edited by scopus 2019-03-27 12:56:50)

Re: snmp мониторинг

Тогда вопрос почему отображается голубой желтый и красный проценты с сотыми? и из за этого он их не присылает на почту

Re: snmp мониторинг

for i := 0 to Form1.TableGrid1.RowCount-1 do
    begin
        procentYellow := Form1.TableGrid1.Cells[8,i];
        begin
            if (ValidInt(procentYellow)) and (StrToInt(procentYellow) < 100) then
            begin
                ip := Form1.TableGrid1.Cells[0,i];
                SendMail('mail', 'rakitin_pa@kunpp.ru', 'AsD18407506', 25, 'test@test.ru', 'rakitin_pa@kunpp.ru', ip + ' ' + 'Мало синего тонера "АО Консист-ОС(Курский)"', ip + ' : '+procentYellow+'%');             // 'smtp server', 'username', 'password', 21, 'yourmail@mail.com', 'mailto@mail.com', 'Subject'    'test@test.ru', 'rakitin_pa@kunpp.ru;ter-gevondyan_sg@kunpp.ru
            end;
        end;
    end;

в итоге несмотря что есть 80% в 1 из 6 принтеров он все равно ничего не шлет

Re: snmp мониторинг

Скачайте пожалуйста последнюю бета версию, в которой есть возможность установить тип результата для выч. поля, таким образом избавиться
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0



Также скачайте иправленный проект, в котором я немного отредактирвал выч. поля.

Post's attachments

Attachment icon Мониторинг принтера_fixed.zip 20.82 kb, 467 downloads since 2019-03-27 

Dmitry.

Re: snmp мониторинг

Спасибо теперь письма приходят и в таблице нормально отображатеся, но вот там где нету картриджа он присылает письма всеравно но с отображение 0% возможно указать что бы следил где меньше 10% но больше 1%? и только если попадает в этот диапазон то присылать