Есть зоопарк принтеров HP, все укомплектованы сетевыми картами - принтсерверами. Адреса розданы статические. Умеют работать с SNMP.
Никогда раньше не сталкивался с возможностью сбора с принтеров информации о их состоянии. Подозреваю, что этот "велосипед" уже изобретён и отлажен...Вопрос:
Из каких открытых компонент было бы удобнее создать сборщик информации о количестве чернил, информации о нештаном состоянии принтера? С возможностью сохранять на диск извещения (тогда по расписанию мой скрипт найдёт на диске..., вышлет мне по почте) или сразу с возможностью слать почтовые сообщения с описанием события. Предполагаемая платформа - Линукс рабочая станция (Ubuntu Debian), или/и "текстовая" инсталяция Fedora клона (ASP).Вопрос более общий:
Чтобы знать что искать, как называется набор технологий и ключевых слов описывающий сбор такой инфы? Какие ключевые слова, названия описывают "лучшие практики" в отношении управления хозяйством принтеров?P.S. Не стоит явной цели вроде "следить кто печатал Войну и мир", это факультативно. Главное - сбор инфо о нештатном состоянии.
Если есть snmp, то любые системы мониторинга типа nagios или cacti. Основной задачей будет найти mib'ы для ваших принтеров, то есть информацию о том, какой oid за какой параметр отвечает.
>Если есть snmp, то любые системы мониторинга типа nagios или cacti. Основной
>задачей будет найти mib'ы для ваших принтеров, то есть информацию о
>том, какой oid за какой параметр отвечает.как вариант perl - ручками за недлю осилишь
>>Если есть snmp, то любые системы мониторинга типа nagios или cacti. Основной
>>задачей будет найти mib'ы для ваших принтеров, то есть информацию о
>>том, какой oid за какой параметр отвечает.
>
>как вариант perl - ручками за недлю осилишьoverkill. Изобретать уже существующее только студентам надо - для учебы.
Я пользую nagios (и далеко не только для мониторинга принтеров - я с него всё мониторю, даже открытие дверей в рэках) - дык у него есть плагин который ловит статус принтеров HP. В числе статусов есть и тонер_лов и но_тонер :) Нотификайшены шлются прямо с него-же.
>overkill. Изобретать уже существующее только студентам надо - для учебы.
>Я пользую nagios (и далеко не только для мониторинга принтеров - я
>с него всё мониторю, даже открытие дверей в рэках) - дык
>у него есть плагин который ловит статус принтеров HP. В числе
>статусов есть и тонер_лов и но_тонер :) Нотификайшены шлются прямо с
>него-же.Ухты какой маладец. Пятёрка тебе.
Уважаемый, если вы считаете что все тута нихера не понимают - вы ошибаетесь.
Я написал "как вариант". Понятно что проще сделать на нагиосе когда под рукой ЕСТЬ нагиос.
А если нет? Что проще разобратся, поставить, настроить, протестить нагиос или написать пару строк на перл где просматривается и проверяется единственный OID из MIB?
Perl к тому же крос-платформенное решение.
>>overkill.
>Ухты какой маладец. Пятёрка тебе.Я - умный ... знаю - это раздражает :)
[... ripped ...]
>пару строк на перл где просматривается и проверяется единственный OID из MIB?Ути пуси :) Ну раз это пара строк и две минуты работы - так кинь их сюда! :) Я офигею и публично извинюсь.
>- так кинь их сюда! :) Я офигею и публично извинюсь.Ну на - из примера модуля, тут даже ниче писать не надо: конкретный пример съема конкретного оида. Поменять номер оида + добавить условие проверки. Все.
На поиски этого екзампла у меня ушла минута. На то чтобы попивая кофий дописать скрипт проверкой и отсылкой нотифекейшенов - даже у самого криворукого начинающего перл програмера айдет ну макс 30 минут. Если человек пару раз писал на перле - у него уйдет
от силы 5 минут - ибо отсылку нотификейшинов также можно взять из екзамплов.This example gets the sysUpTime from a remote host.
#! /usr/local/bin/perl
use strict;
use Net::SNMP;
my ($session, $error) = Net::SNMP->session(
-hostname => shift || 'localhost',
-community => shift || 'public',
-port => shift || 161
);if (!defined($session)) {
printf("ERROR: %s.\n", $error);
exit 1;
}my $sysUpTime = '1.3.6.1.2.1.1.3.0';
my $result = $session->get_request(
-varbindlist => [$sysUpTime]
);if (!defined($result)) {
printf("ERROR: %s.\n", $session->error);
$session->close;
exit 1;
}printf("sysUpTime for host '%s' is %s\n",
$session->hostname, $result->{$sysUpTime}
);$session->close;
exit 0;
ЗЫ замечу, что для проверки условия нужно добавить в екзампел всего ОДНУ строку, те даже не пару как я обещал)
ну че уси-пуси-ты-наш? ))
схавал? )) че молчишь? ))
>ну че уси-пуси-ты-наш? ))
>схавал? )) че молчишь? ))Спал я :) Ну и как этим мониторить $subj? Ути пуси? А уж где оид-ов ко всему что печатает нарыть - отдельная грусная история :)
Неееее - не договоримся :) Я - программируюший админ, ты - админящий программер :)
>>ну че уси-пуси-ты-наш? ))
>>схавал? )) че молчишь? ))
>
>Спал я :) Ну и как этим мониторить $subj?я те скрипт привел и описал как именно
>Ути пуси? А
>уж где оид-ов ко всему что печатает нарыть - отдельная грусная
>история :)1) у каждого уважающего себя вендора есть описание к базе MIB
2) + net-snmp можне дернут базу с девайса и посмотреть что он отдает
>
>Неееее - не договоримся :) Я - программируюший админ, ты - админящий
>программер :)