muninでブラザーのプリンタの情報(2)
muninでブラザーのプリンタの情報(1)でインク残量の取得に失敗したが、とりあえず、急ぎでインクの状態が知りたかったので、美しくなはい事を理解しつつ、動かせることを前提に構築
でSNMPでとれなかったので、どうしたかというと、WEB管理ページの推定インク残量のところからとることにした。個々のインクの残量の四角の高さをHTMLで指定している
で使った方式を採用。
/usr/local/bin/chk_dcp926_ink.py
-----------------------------------
#!/usr/bin/env python3
import sys
from bs4 import BeautifulSoup
import requests
import urllib3
from urllib3.exceptions import InsecureRequestWarning
urllib3.disable_warnings(InsecureRequestWarning)
url = "https://プリンタのIPアドレス/home/status.html"
r = requests.get(url, verify = False) #htmlの取得
soup = BeautifulSoup(r.content, 'html.parser')
# すべてのliタグを検索して、その文字列を表示する
elems = soup.find_all("img")
for elem in elems:
if elem.get('alt') == "Magenta":
myMagenta = elem.get('height')
if elem.get('alt') == "Cyan":
myCyan = elem.get('height')
if elem.get('alt') == "Yellow":
myYellow = elem.get('height')
if elem.get('alt') == "Black":
myBlack = elem.get('height')
print(myMagenta + "," + myCyan+ "," + myYellow + "," + myBlack)
---------------------
/usr/share/munin/plugins/munin-chk_dcp926_ink
---------------------
#!/bin/bash
: << =cut
=head1 NAME
temp - Plugin to measure dcp926 ink Level.
=head1 NOTES
Especially the average and max values on the bigger graphs (yearly) can be interesting.=head1 AUTHOR
Contributed by Nicolas Salles=head1 LICENSE
GPLv2
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
if [ "$1" = "autoconf" ]; then
echo "yes"
exit 0
fi
if [ "$1" = "config" ]; then
# グラフタイトル
echo 'graph_title Ink Level dcp926'
# グラフ縦軸
echo 'graph_vlabel Ink Level'
# グラフのスケール設定
# echo 'graph_args --base 1024 -l 0'#カテゴリ
echo "graph_category print"
#グラフの縦軸の制限
echo graph_args --lower-limit 0 --upper-limit 70
# 凡例の設定
# each line name
echo server1.label Magenta
echo server2.label Cyan
echo server3.label Yellow
echo server4.label Black
#ライン値設定
echo server1.draw LINE2
echo server2.draw LINE2
echo server3.draw LINE2
echo server4.draw LINE2
exit 0
fi# collect
CMD=`/usr/local/bin/chk_dcp926_ink.py`
#echo "${CMD}"list=(${CMD//,/ })
#echo ${list[@]}
#echo ${list[1]}
echo server1.value "${list[0]}"
echo server2.value "${list[1]}"
echo server3.value "${list[2]}"
echo server4.value "${list[3]}"
list1=$(echo "$CMD" | cut -d',' -f1)
list2=$(echo "$CMD" | cut -d',' -f2)
list3=$(echo "$CMD" | cut -d',' -f3)
list4=$(echo "$CMD" | cut -d',' -f4)
echo server1.value "$list1"
echo server2.value "$list2"
echo server3.value "$list3"
echo server4.value "$list4"
---------------------
リンク作って
sudo ln -s /usr/share/munin/plugins/munin-chk_dcp926_ink /etc/munin/plugins/munin-chk_dcp926_ink
ただしこのままでは動かずBeautifulSoupがroot権限で動かないので、rootでpipしたら動くようになった、正しい方法かどうかわからんが、アクセス権壊れてうごかんようになる的な警告は出た。
とりあえず、これでグラフは書けた。プログラムは美しくないけど
コメント
コメントを投稿