Отримуємо в Zabbix статистику з пристроїв Kyocera


 
Привіт Хабр!
Ось з такого, здавалося б, нехитрого пристрою фірми Kyocera, мені захотілося отримувати різну статистику по використанню принтера і сканера. Здавалося б, все просто: беремо SNMP і отримуємо, але…
 
 
SNMP
Переконавшись, що наш пристрій щось віддає по SNMP, я відправився в гугл, щоб знайти MIB для нашого апарату. Однак, вдалося знайти інформацію лише про те, що його немає. Не хоче Kyocera ділитися такою інформацією, з якихось причин. Природно, приходить на розум думка про злегка рутинному пошуку необхідних значень самостійно. Алгоритм не самий складний — snmpwalk, друк, snmpwalk, diff.
Ось що знайшлося:
 
 
user@host:~# snmpwalk -v 2c -c public 192.168.101.239

 
iso.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 242

 
І тут перша дивина: значення дещо відрізняється від зазначеного в web панельці самого пристрою (і в меню принтера):
 
 
 
Пошук в SNMP-видачі цифр, хоч якось схожих на те, що написано в web панельці девайса не дали ні найменшого результату. Спроби зловити зміна якогось лічильника, наприклад, сканування, провалилися. Нічого не змінювалося. З'явилося легке підозра, що необхідних даних через SNMP просто не отримати.
Але якщо значення є, значить це комусь потрібно! Виявляється, у Kyocera є своє власне ПО для моніторингу та управління їх пристроями — KYOCERA Net Viewer.
Заповніть анкетку, введіть емейл, отримаєте лист з одноразовою посиланням… Знати б, навіщо такі складнощі, ну да ладно.
Програма досить проста і показує нам ті ж цифри, що і в web мордочці. А якщо вона їх як то отримує, значить і ми можемо.
Першим на думку мене прийшов комбаин Wireshark, ось їм я і скористаюся.
 
І тут дивина номер два: крім обміну SNMP трафіком у нас тут є і HTTP!
 
 
 
 
HTTP
Подальше розслідування приводить нам з до того, що принтер і ПО спілкуються XML'камі через SOAP.
Принцип гранично простий: POST запитом на принтер відправляється спеціальна XML, що містить запит. У нашому випадку запитом є «ALL_COUNTER», тобто ми бажаємо отримати всі лічильники. Принтер може у відповідь надіслати показання лічильників або повідомлення «DEEP_SLEEP_NOW_ERROR», що зрозуміло з без перекладу. Будити принтер якось по особливому зовсім не треба. Він уже прокинувся від нашого запиту, просто посилаємо запит ще раз і отримуємо XML з лічильниками.
Всі значення зазначені у вигляді <параметр> число </ параметр>. Робимо невеликий парсер і отримуємо скрипт , що видає нам необхідні цифри в зручному вигляді.
 
Для M2535dn мені були цікаві наступні лічильники:
 
     
  • accounting_print_black_and_white_copy_counter : Колличество ч / б сторінок, надрукованих з використанням копіювального апарату
  •  
  • accounting_print_black_and_white_printer_counter : Колличество ч / б сторінок, надрукованих з використанням принтера
  •  
  • accounting_print_combine_none_counter : Загальний лічильник надрукованих сторінок
  •  
  • accounting_scan_copy_counter : Колличество сторінок, відсканованих з використанням копіра
  •  
  • accounting_scan_other_counter : Колличество інших відсканованих сторінок (на флешку, в мережу і пр.)
  •  
  • device_life_counter : (?) Загальний лічильник надрукованих сторінок за все життя пристрою
  •  
Різниця показань лічильників accounting_scan_copy_counter і accounting_print_black_and_white_copy_counter пояснюється просто: було зроблено 2 копії одного оригіналу. З сканера в копір вирушила одна сторіночка, а принтер з копіра роздрукував дві. Крім цих лічильників можна отримати ще багато чого цікавого: кількість надрукованих а4, а5, letter і пр. сторінок, кількість сторінок, роздрукованих з використанням дуплексу, копіювати в режимах 2в1 і 4в1, для кольорових пристроїв можна отримувати кількість ц / б і кольорових копій окремо. Лічильник device_life_counter принтер віддає нам по SNMP, але ні в веб інтерфейсі, ні в спеціальному ПО це значення не відображається. Я не дуже зрозумів значення цього параметра. Вчора він відрізнявся від загального лічильника на 3, сьогодні вже на 8. Чекаю ваших ідей в коментарях.
 
 
Zabbix
Тепер необхідно підключити це до нашого моніторингу в Zabbix. Ми будемо використовувати зовнішню перевірку. Скрипт необхідно покласти в директорію ExternalScripts , дати права на виконання і трохи збільшити таймаут для запускаються скриптів, за замовчуванням він дорівнює 3s:
 
 
user@host:~# cat /etc/zabbix/zabbix_server.conf | grep Timeout | grep -v ^#

 
Timeout=10

 
Тепер залишилося зміркувати новий шаблон і наповнити його елементами даних:
 
 
 
Маленьке зауваження: не варто виставляти дуже маленький інтервал перевірки, це може привести до зниження продуктивності системи моніторингу в цілому. Застосовуємо до вузлів мережі, налаштовуємо графіки, звіти і далі за настроєм.
На цьому все, всім спокійної п'ятниці і відмінних вихідних!
 
P.S. Не всі ми ідеальні і про помилки в тексті прохання повідомляти в ЛС.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.