Topic: snmp мониторинг
Есть ли возможность сделать snmp мониторинг?
My Visual Database → Russian → snmp мониторинг
Есть ли возможность сделать snmp мониторинг?
Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0
Добавил такую возможность, к сожалению нет возможности протестировать, т.к. нет устройство поддерживающих SNMP, дайте знать, работает ли.
Проект с примером:
команды понимает и ответ тоже есть. Теперь такой вопрос можно ли сделать отображение в таблице процентного остатка картриджа? с расчетом при посылке 1-го oid он говорит сколько максимум при посылки 2-го говорит сколько сейчас тонера? Пример прилагаю программу чего хотелось бы видеть и как. но там не хватает некоторого функционала которым бы хотелось компенсировать вашей программой.
команды понимает и ответ тоже есть. Теперь такой вопрос можно ли сделать отображение в таблице процентного остатка картриджа? с расчетом при посылке 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] := 'Ваш текст';
а как можно сделать так что бы занеся в таблицу в 1 столбик ip устройства по нажатию кнопки он сделал на него snmp опрос и получив данные записывал в таблицу. и второе брал из таблицы данные проводил над этими данными математические действия и заносил в другой столбец эти данные. это возможно?
oid будет заранее в скрипте внесен. формула будет такая ( макс тонер * 100 ) текущее тонера = % тонера
Возможно все )
К сожалению я могу помочь только с решением конкретных вопросов. Что именно не получается сделать?
пример таблицы
пример таблицы
Протестируйте пожалуйста.
да работает. теперь можно сделать что бы кнопка нажималась при запуске программы или циклично по таймеру?. так же как сделать проверять поле если меньше 5% то отправлять письмо на почту.
smtp сервер имеется
да работает. теперь можно сделать что бы кнопка нажималась при запуске программы или циклично по таймеру?. так же как сделать проверять поле если меньше 5% то отправлять письмо на почту.
Доработал проект, проверка будет циклично по таймеру, в константе CheckEveryMins можете установить значение в минутах.
Также будет отправлять email если меньше 5%, для этого настройте параметры функции SendMail
Теперь вопрос такой несколько почтовых ящиков можно указать?
еще вопрос при запросе 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;
не пойму где ошибка
1
подобную ошибку ловлю везде где идет текст а не цифры
Теперь вопрос такой несколько почтовых ящиков можно указать?
Можно, просто разделяйте их точкой с запятой ;
mail1@mail.com;mail2@mail.com
Когда в базу данных вставляется текст, его необходимо обрамлять кавычками, поэтому строку
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)));
Последний пример с цветными картриджами
С почтой разобрался но теперь вопрос вот в чем. если нету цветного картриджа в принтере то он просто ничего не показывает но скрипт считает что меньше 7 процентов и информацию присылает. как можно задать что бы если нету информации то не отправлять почту? Так же на желтый и красный отправление посты ругается ""is not a valid integer value.
В вашем проекте я не нашел условия, где используется 7 процентов.
Также при отстуствии информации скрипт не должен отправлять email.
Чтобы не было ошибки, замените подобные условия
if StrToInt(procentYellow) < 5 then
на
if (ValidInt(procentYellow)) and (StrToInt(procentYellow) < 5) then
Тогда вопрос почему отображается голубой желтый и красный проценты с сотыми? и из за этого он их не присылает на почту
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 принтеров он все равно ничего не шлет
Скачайте пожалуйста последнюю бета версию, в которой есть возможность установить тип результата для выч. поля, таким образом избавиться
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0
Также скачайте иправленный проект, в котором я немного отредактирвал выч. поля.
Спасибо теперь письма приходят и в таблице нормально отображатеся, но вот там где нету картриджа он присылает письма всеравно но с отображение 0% возможно указать что бы следил где меньше 10% но больше 1%? и только если попадает в этот диапазон то присылать
My Visual Database → Russian → snmp мониторинг
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi