Massdomain.ru

Хостинг и домены
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Zabbix. Что делать, если принтер не делится информацией по SNMP

Zabbix. Что делать, если принтер не делится информацией по SNMP?

imageКДПВ

Данная статья – небольшой мануал, написанный в несколько художественной форме. В статье много картинок, заботливо упрятаных в спойлеры.

Для кого написана эта статья? Для начинающих сисадминов, еще слабо знакомых с UNIX-системами, Zabbix’ом, но имеющих желание централизованно собирать информацию с принтеров.

  • Zabbix 5.0
  • CentOS 8
  • Принтер, который не отдает нужную информацию о расходниках по SNMP (в данном мануале взят в качестве примера Oki C834)
  • Практически отсутствующие знания о Zabbix, UNIX-системах
  • Очень большое желание собирать информацию о расходниках с принтеров централизованно.

Причины и логические обоснования

Лень – двигатель прогресса. В одно прекрасное утро я понял, что мне лень обходить принтеры, установленные в офисе, для того чтобы контролировать состояние расходных материалов – таких, как тонер-картриджи, драм-юниты, ленты и печи. А также собирать время от времени показатели счетчиков напечатанных страниц – на их основе принимается решение о ТО принтера.

«Это ж сколько времени можно экономить, собирая такую информацию централизованно!» — эта мысль не выходила из моей головы. Было принято решение развернуть систему мониторинга. С подсказки более старших товарищей был выбран Zabbix – с расчетом, что помимо принтеров постепенно подключится мониторинг серверов и сетевого оборудования.

В качестве операционной системы был установлен CentOS 8 – ибо я был хоть немного знаком именно с ним. Возможно, кто-то в данный момент уже пишет, что ай-яй-яй, надо изучать UNIX-системы, если уж взялся за сисадминство. Отвечу вам – да, вы абсолютно правы.

Изучение мануалов по мониторингу принтеров обещало крайне простую процедуру – snmpwalk, вычленение нужных параметров, подключение OID к Zabbix’у, профит. Реальность же немного пошатнуло эту прекрасную картину. Не было показателей состояния расходников. Даже отдаленно похожих не было. Вообще.

Статья Получаем в Zabbix статистику с устройств Kyocera натолкнула на поиск проприетарного ПО для мониторинга принтера и перехват общения ПО с принтером. Такое нашлось – Configuration Tool, утилита от Oki для мониторинга состояния принтеров. Скачиваем, запускаем, и…. по SNMP Configuration Tool получает информацию об имени принтера, МАС-адресу, да версии ПО. Информация же о расходниках передается в теле пакетов TCP/IP.

«Что ж, великолепно, приключения начинаются» — подумалось мне. Обдумывание вариантов решения привело к следующей логической цепочки:

  1. На данном этапе я не умею и не знаю как правильно сымитировать тот запрос, что отсылает Configuration Tool на принтер.
  2. Принтер имеет собственную веб-страницу, на которой он размещает информацию о состоянии расходных материалов и количестве отпечатанных страниц
  3. Решение моей проблемы – вытаскивать (парсить) по расписанию информацию с веб-страницы принтера и неким образом передавать эту информацию в Zabbix.
  1. Bash
  2. PHP
  3. Python
Читайте так же:
Дата выхода интел 9 поколения

Я выбрал Bash – и вот почему:

  1. Предустановленность на большей части UNIX-систем. Мне не нужно ставить дополнительное ПО.
  2. Простота. Команды логичны, и вполне понятны после небольшого изучения синтаксиса.
  3. Необходимость изучения UNIX-систем. Изучить синтаксис команд явно не будет лишним в данном направлении.

Разбор веб-страницы принтера

Прежде, чем приступать к парсингу – давайте разберем, что из себя представляет веб-страница принтера.

Прошу прощения, если выражусь неправильно относительно элементов веб-страницы принтера. Я, все таки, начинающий сисадмин, а не веб-разработчик.

Переходим на веб-страницу принтера и видим следующее

image

Замечаем, что справа сверху на странице есть показатели состояния тонера. Теперь нам остается понять, как именно на веб странице появляются данные показатели. ПКМ-> Inspect. Нам открывается следующая картина.

image
image

Подмечаем, что значения тонера, на самом деле, получаются через страницу /status.htm
Видим, что значение показателей тонера передаются в тегах:

После чего с помощью JavaScript значения округляются до десятков и подставляются в страницу.

Переходим на страницу 192.168.***.***/status.htm – и да, действительно нужные нам значения тонера мы видим на данной странице

image

Теперь мы знаем, где хранятся нужные нам значения состояния тонера. Приступим к парсингу.

Парсинг

Примечание: далее будет описание построения скрипта для парсинга страницы с примерами и картинками. Я постараюсь, что бы описание было понятно даже тем, кто очень слабо знаком с Bash. Если же вы имеете желание прочитать уже результат – прошу пролистывать дальше.
Итак, Bash. Рубикон пройден, как сказали две тысячи лет назад на берегу одноименной реки.
Первым делом я предлагаю ознакомиться с синтаксисом языка. Он крайне прост и незамысловат – но это нам поможет при написании скрипта и автоматизации.

Далее обратим внимание на cURL – command line and tool, как заявлено на официальном сайте этого инструмента. cURL поддерживает огромное количество протоколов, из которых нам требуется поддержка HTTP – помним, что именно по этому протоколу идет «общение» с веб-страницей принтера.
Напишем первый запрос:

image

В ответ нам вываливается прямо в командную строку огромное количество информации, которую не совсем удобно читать в терминале, не говоря уже об обработке данной информации.
Перенаправим вывод в файл – так будет явно удобнее. В этом нам поможет спецсимвол ‘>’

Открываем получившийся файл в редакторе Vi

image

Уже гораздо лучше, не правда ли? Однако, вся страница нам все равно не нужна. Нужны лишь значения состояния тонера. Начинаем вычленять данные. В этом нам поможет grep – утилита, ищущая строки, в которых содержится значение, равное указанному регулярному значению.

Читайте так же:
Маленький жесткий диск для ноутбука

Внимательно рассмотрим теги, в которых содержится значения тонера. Видим, что в них мы встречаем одно и то же выражение ‘value=”***”’

Более опытные читатели так же могут заметить, что можно отсеять данные по регулярному выражению “hidden”. Да, вы абсолютно правы. Для подтверждения прикрепляю скриншот вывода терминала. Как можете видеть – результат абсолютно такой же, как и при отсеивании через ‘value=”***”’

image

«Грепаем» результаты, полученные через cURL. Дабы немного ускорить и визуализировать процесс – выводим значения сразу в терминал.

image

Отлично. Достаточно лаконичный вывод. Далее нам нужно избавиться от текста и оставить лишь числовые значения.

Отсеем текстовые данные, оставив лишь числовые значения. В этом нам снова поможет grep c флагом -Eo. Он позволить вывести только числовые значения.

image

Итак, мы получили необходимые числовые значения. Теперь разберем наш вывод на отдельные строки – дабы мы могли их по отдельности сохранить в текстовые файлы. В этом нам поможет sed, утилита, являющаяся потоковым текстовым редактором. В нашем случае самое важное то, что sed может вычленять отдельные строки – а нам это как раз и нужно.

image

Разберем часть с sed. 1p – дать на вывод первую строку. -n – отсеять все, кроме указанной строки. Как видим – после данной команды на выводе – лишь численное значение состояния голубого тонера.

Теперь займемся написание скрипта.

Bash-скрипты имеют некоторую особенность по сравнению с теми же bat-скриптами. Они обязательно должны начинаться с шебанга – «#!». Дальнейшие строки, начинающиеся с # — будут интерпретированы как комментарии.

Скрипт же будет выглядеть следующим образом:

Добавляем файл скрипта в crontab, и тем самым автоматизируем его выполнение. Автор выставил */15 * * * * — выполнение каждые 15 минут.

Итог – веб-страница принтера автоматически парсится, мы получаем необходимые нам числовые значения и сохраняем их в нужной нам директории.

Перенос полученных значений в Zabbix

Теперь займемся переносом данных в Zabbix.

Создадим новый элемент данных. Именуем как нам угодно, тип указываем Zabbix agent.

Самое интересное и важное у нас на данном этапе – ключ. Нам необходим vfs.file.contents[файл,<кодировка>]. Файл – абсолютный путь к файлу.

image

Указываем наш путь к файлу и проверяем правильность. На выводе теста мы должны увидеть наше значение черного тонера.

image

Итог – мы осуществили перенос данных в Zabbix, и теперь можем контролировать состояние расходных материалов централизованно.

Заключение

Мы освоили получение данных с помощью парсинга веб-страниц. В данном примере был взят принтер Oki 834, и успешно осуществлено получение данных о тонере. Я ответственно заявляю, что таким же способом было осуществлено получение данных о состоянии драм-юнитов, ленты и печи.

Читайте так же:
Внешняя звуковая карта для игр

image

image

Таким образом возможно получение информации о расходниках с практически всех принтеров, и не только о принтерах. Парсинг – достаточно удобный инструмент, и работать с ним мне очень понравилось. И если моя статья поможет хотя бы одному человеку – значит, все было не зря.

Хочу так же выразить огромную благодарность redheaddeer, akozhevnikov97 и человеку, пожелавшему быть анонимом за помощь в написании статьи. Всем спасибо!

На каждую СХД требуется от 2 ГБ до 30 ГБ места (это зависит от набивки СХД и количества томов).

Подключитесь по ssh под пользователем lpar2rrd.

Подготовьте хэш пароля от пользователя stor2rrd на MSA для его сохранения в файле конфигурации:

Отредактируйте файл конфигурации, содержащий список СХД. В виртуальном апплайнсе лучше использовать редактор nano — он более дружелюбный (nano /home/stor2rrd/stor2rrd/etc/storage-list.cfg):

В нем добавьте строку, описывающую название СХД, затем ее тип, адреса контроллеров A и B, тип подключения (http/https) и логин с паролем. В поле пароля укажите хэш, полученный чуть раньше.

Проверьте, что у вас получается подключиться к СХД:

После паузы в 20 минут пересоздайте веб-директории:

Держать всё под контролем: сравнение систем мониторинга

Чем активнее развиваются IT-технологии в отдельно взятой компании, тем отчётливее становятся видны круги под глазами у сисадминов, которым приходится контролировать всё больше процессов и следить за здоровьем всё большего количества систем.

Задачу здорово облегчают инструменты мониторинга: условный Zabbix следит за инфраструктурой, а какой-нибудь 24×7 не даёт потерять клиентов в интернет-магазине.

Правда, в какой-то момент приходится с сожалением признать: мониторинга в вашей жизни стало слишком много. Причём «много» относится как к объёму однотипных средств, так и к их ассортименту, направленному на решение всевозможных задач.

Системы зонтичного мониторинга и управления событиями вывели мониторинг на принципиально новый уровень. Сравнивать их с нишевыми решениями не совсем корректно — они решают разные задачи, но переход к «зонтикам» определённо level-up для компании. Подобное ПО позволяет упростить работу технических специалистов за счёт создания единой системы управления IT-службой, включающей и поиск взаимосвязей между событиями, сгенерированными в системах разных типов, и прозрачную логику управления, и автоматизацию действий.

Зонтичных систем на рынке не так много, как, например, инструментов web-мониторинга, но сравнить есть что. Другой вопрос — как: помимо общих данных и каких-то отличительных особенностей каждого ПО, можно наметить внятные параметры оценки. Кстати, некоторые из них — например, поиск первопричин — можно встретить и в нишевых инструментах. Но касается это только продвинутых и мощных решений, а для зонтичного мониторинга подобные функции — что-то вроде обязательной программы.
Общие критерии сравнения выглядят примерно так:

  • Способ установления связей между элементами. Здесь есть три варианта: ресурсно-сервисная модель, машинное обучение или всё вместе. Большинство систем выбирают машинное обучение (из представленных ниже продуктов только два имеют ресурсно-сервисную модель). Ресурсно-сервисная модель исключает неточности, связи отличаются чёткостью, но требует определённых усилий при первоначальной установке. При машинном обучении остаётся риск ошибки, а эффективно оно тогда, когда есть существенная статистика.
  • Создание правил. Вещь незаменимая для приоритизации задач, и чем правила сложнее, тем больше открывается возможностей.
  • Сложная аналитика (предсказания и постанализ). Предсказания сбоев, кажется, в дополнительных комментариях не нуждаются – предотвратить всегда лучше, чем исправлять.
  • Шкала времени. Функция, которая встречается нечасто, но полезна тем, что позволяет вывести на экран инциденты с привязкой ко времени.
  • Поиск первопричин. Возможность, которая позволяет 100 инцидентов превратить в 1 и устранить реальную проблему, а не её симптомы.
  • Управление IT-службой. Создание рабочих групп и распределение зон ответственности — очень хорошо; возможность тонкой настройки и множество внутренних инструментов для взаимодействия — идеально.
  • Охват. Полностью срабатывает постулат «чем больше, тем лучше». Чем больше видов мониторинга и конкретных инструментов можно собрать под зонтиком, тем выше эффективность работы.
Читайте так же:
Блютуз наушники принцип работы

С критериями определились, можно переходить к делу.

Система выделяется на фоне прочих как раз наличием ресурсно-сервисной модели. Представляет собой эдакий конструктор со множеством модулей, покрывающих всевозможные задачи. А вот внешние интеграции не предусмотрены, что в каком-то смысле делает пользователя заложником системы. Требуется новая функция? Будьте любезны, приобретите новый модуль. Вместе с тем клиенты отмечают приличную функциональность и удобство интерфейса. В некоторых случаях недовольство вызывает работа техподдержки: в ответ на клиентский запрос компания может предложить обновить уровни поддержки. «Мы не обязаны переходить на премиальный план, чтобы получить ответ на вопрос», – вполне обоснованно негодуют пользователи.

IBM Tivoli

«Мощный и дорогой», – говорят одни. «Старая рабочая лошадка», – утверждают другие. Правы все: цена системы действительно высока, но в функциональности и надёжности ей не откажешь. Клиентам предоставляется свобода выбора: при желании можно использовать и внутренние модули, и внешние системы. Кстати, модули могут быть доработаны под требования заказчиков.

BigPanda

Одним из главных плюсов BigPanda являются открытые API, которые позволяют интегрироваться со множеством внешних систем. Продукт достаточно стабилен и надёжен, хотя некоторые пользователи замечали определённые задержки во время крупномасштабных инцидентов. Настройка относительно проста, а интерфейс понятен.

Работа технической поддержки, по мнению клиентов, достойна отдельных слов: специалисты отзывчивы к проблемам, активно взаимодействуют с заказчиком и проявляют гибкость к его требованиям.

Сервис-монитор

Отечественный продукт и вторая в списке система, имеющая ресурсно-сервисную модель. Придерживается политики максимальных внешних интеграций: заказчик может не только интегрироваться через существующие коннекторы (что важно – с бесплатным ПО), но и под заказ получить нужные, если их нет. Предлагает пользователям бесплатный пакет, что безусловно плюс. А вот отсутствие дашбордов в век визуализации и наглядности очки у продукта отнимает. Компания предоставляет услуги по внедрению и технической поддержке.

Читайте так же:
Мощный вентилятор для ноутбука

Pagerduty

Система держит курс на развитие BI-мониторинга. Отличается гибкостью и надёжностью, имеет обширные возможности внешних интеграций и внушительную библиотеку документации, которую пользователи называют «фантастической». На её изучение может уйти немало времени: первоначальные настройки часто кажутся совсем не «интуитивно понятными». Но клиенты утверждают, что только первые шаги трудные, дальнейшая же работа с инструментами не представляет сложности.

Monitis

Своим преимуществом Monitis считает простоту и наглядность. И это чистая правда. Однако достигается этот эффект за счёт упрощения функциональности: например, правила формируются на основе шаблонов с ограничением сложности.

Система больше заточена под web-мониторинг и со своими задачами справляется хорошо, но пользователи хотели бы видеть более расширенную функциональность – например, возможность глубокой аналитики. В сравнении с некоторыми конкурентами, имеющими больший функциональный потенциал, стоимость Monitis кажется завышенной.

редоставляет возможность бесплатного использования в течение 15 дней.

Zidium

Ещё один российский аналог, но в сравнении с конкурентами кажется очень уж примитивным – нет некоторых важных функций, интерфейс упрощен, охватывает далеко не все типы мониторинга. Строго говоря, основной функцией Zidium является мониторинг сайтов и приложений, хотя инфраструктурный мониторинг тоже выполняется. Предлагает заказчикам несколько вариантов: установку на своём сервере, бесплатный тариф с лимитами и развёртывание на оборудовании клиента.

Conclusions

Such a simple and useful solution. It is configured quickly, the display of information is useful. Perhaps there are some more interesting and useful values ​​that you can take with snmp. Maybe there is something that tells or hints at the upcoming repair. For example, resource oven or even some element. On the MFP, I saw information about the scanned pages, the number of copies made. I do not know what could be useful. If there are comments and recommendations, please write in the comments.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector