こんにちはHabr!
京セラのこのような一見単純なデバイスを使用して、プリンターとスキャナーの使用に関するさまざまな統計情報を取得したいと考えました。 SNMPを使用して取得するのは簡単ですが、...
SNMP
デバイスがSNMPを介して何かを送信していることを確認した後、デバイスのMIBを見つけるためにGoogleにアクセスしました。 しかし、そこにないという情報だけを見つけることは可能でした。 京セラは、何らかの理由でそのような情報を共有したくない。 当然、自分で必要な値をわずかに日常的に検索するという考え方が思い浮かびます。 アルゴリズムは最も難しくありません-snmpwalk、printing、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パネル(およびプリンターメニュー)で指定された値とわずかに異なります。
少なくとも何らかの形でデバイスのWebパネルに書き込まれているものと同様のSNMP発行番号を検索しても、わずかな結果しか得られませんでした。 スキャンなどのカウンターの変更をキャッチしようとして失敗しました。 何も変わっていません。 SNMPを介して必要なデータを取得できなかったというわずかな疑念がありました。
しかし、価値がある場合、誰かがそれを必要とします! 京セラには、デバイスを監視および管理するための独自のソフトウェアである京セラネットビューアーがあります。
フォームに記入し、電子メールを入力し、1回限りのリンクが記載された電子メールを取得します。
プログラムは非常にシンプルで、Webフェイスと同じ数字を表示します。 そして、彼女がどういうわけかそれらを取得する場合、私たちはできます。
最初のWiresharkの組み合わせが思い浮かんだので、それを使用します。
そして、ここで2番目の奇妙さ:SNMPトラフィックの交換に加えて、ここにもHTTPがあります!
HTTP
さらに調査すると、プリンターとソフトウェアがSOAPを介してXMLと通信するという事実に至ります。
原則は非常に簡単です。プリンタへのPOSTリクエストは、リクエストを含む特別なXMLを送信します。 この例では、リクエストは「ALL_COUNTER」です。つまり、すべてのカウンターを取得する必要があります。 プリンターは応答として、メーターの読み取り値またはメッセージ「DEEP_SLEEP_NOW_ERROR」を送信できます。 何とかしてプリンタを起動する必要はありません。 彼はすでにリクエストから目覚めています。リクエストを再度送信し、カウンターでXMLを取得します。
すべての値は、<parameter> number </ parameter>として示されます。 小さなパーサーを作成し、必要な数を便利な方法で提供するスクリプト ( mirror )を取得します 。
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 :スキャンされた他のページの数(USBフラッシュドライブ、ネットワークなど)
- device_life_counter :(?)デバイスの寿命全体の印刷ページの合計カウンター
カウンターaccounting_scan_copy_counterとaccounting_print_black_and_white_copy_counterの違いを簡単に説明します。1つのオリジナルの2つのコピーが作成されました。 1ページはスキャナーからコピー機に送られ、コピー機のプリンターは2ページを印刷しました。 これらのカウンターに加えて、印刷されたa4、a5、レターなどのページ数、2in1および4in1モードでコピーされた両面印刷のページ数、カラーデバイスの場合、カラーおよびカラーコピーの数を個別に取得できます。 。 プリンターはSNMPを介してdevice_life_counterカウンターを提供しますが、この値はWebインターフェースまたは特別なソフトウェアには表示されません。 このパラメーターの意味がよくわかりません。 昨日は合計カウンターと3が異なり、今日はすでに8です。コメントであなたのアイデアを待っています。
ザビックス
次に、これをZabbixの監視に接続する必要があります。 外部チェックを使用します。 スクリプトはExternalScriptsディレクトリに配置する必要があります。実行する権利が与えられ、スクリプト実行のタイムアウトがわずかに増加します。デフォルトでは3秒です。
user@host:~# cat /etc/zabbix/zabbix_server.conf | grep Timeout | grep -v ^#
Timeout=10
これで、新しいテンプレートを見つけて、データ要素で埋めることができます。
Zabbixのテンプレート(設定→テンプレート→インポート): tytsとmirror 。
ちょっとした注意:スキャン間隔をあまり短く設定しないでください;監視システム全体のパフォーマンスが低下する可能性があります。 ネットワークノードに適用し、グラフ、レポート、さらにムードを構成します。
それはすべて、すべての良い金曜日と素晴らしい週末です!
PSすべての人が理想的というわけではないので、LAN内のテキストのエラーについて通知してください。