2016年11月4日金曜日

Orange Pi PC で MRTGの設定

I2C温度モジュールが届いたら、室温とCPU温度を MRTGで表示予定です。前段階として、諸情報を MRTGで表示できるよう設定をしました。

まずは MRTG・snmp関連のインストールをしました。一気にインストールしてもいいと思うのですが、個別に指定しました。file は未インストール→追加、sysv-rc-conf は chkconfig が debian には無いので代替えとして追加。オプションも chkconfig と同じようなので、インストール後 alias とかシンボリックリンクで chkconfig に関連付けると使いやすいかも。

$ sudo apt install apache2

$ sudo apt install mrtg

$ sudo apt install snmp snmpd

$ sudo apt install file

$ sudo apt install sysv-rc-conf

$ sudo apt install snmp-mibs-downloader

$ sudo download-mibs

export MIBS= に /usr/share/mibs を追加
$ sudo vi /etc/default/snmpd
export MIBS=/usr/share/mibs

"mibs : " をコメントアウト(先頭に '#' 挿入でも行削除でもお好みで。snmpwalk での出力結果が iso.~ から変わる)
$ sudo vi /etc/snmp/snmp.conf
mibs :

コミュニティ名とかは以前の設定を踏襲しました。

snmpd を再起動
$ sudo service snmpd restart

/etc/mrtg.cfg に下記内容を追加
$ sudo vi /etc/mrtg.cfg
##################################
## Orange Pi PC(192.168.11.252) ##
##################################
## CPU Used ##
Target[opi-pc_cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:test-ro@localhost
Directory[opi-pc_cpu]: localhost
MaxBytes[opi-pc_cpu]: 100
Unscaled[opi-pc_cpu]: dwmy
Options[opi-pc_cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[opi-pc_cpu]: CPU Load(%)
ShortLegend[opi-pc_cpu]: (%)
LegendI[opi-pc_cpu]: 1分間平均
LegendO[opi-pc_cpu]: 5分間平均
Legend1[opi-pc_cpu]: 1分間平均(%)
Legend2[opi-pc_cpu]: 5分間平均(%)
Title[opi-pc_cpu]: opi-pc_cpu使用率
PageTop[opi-pc_cpu]: <h1>Orange Pi PC CPU使用率</h1>

一通り設定が完了したのでおまじないを 3回実施。

$ sudo env LANG=C mrtg /etc/mrtg.cfg

ブラウザから http://192.168.11.252/mrtg/localhost/opi-pc_cpu.html にアクセスしましたが、Not Found とつれない表示... CentOS のときは特に追加設定しなくても見ることができたと思ったのですが。

apache2.conf に alias で /var/www/mrtg を追加しました。追加箇所は /var/www の記述の後にしました。Option は '-' 記述をしたときは、片割れを '+' or '-' を追加しておかないと再起動時にエラーになります。なんでエラーなのか気づくのに時間がかかりました...
$ sudo diff /etc/apache2/apache2.conf
Alias /mrtg /var/www/mrtg
<Directory /var/www/mrtg/>
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

$ sudo service apache2 restart

 

mrtg_01
これでばっちり! と思ったのですが、コメント等に使っている2byte文字が化けています。CentOSのときは特に設定しなくても化けなかったのですが...

transrate で設定すればいいのかもしれませんが、コメント等の文字だけ化けずに表示されればいいのでページのソースを見てみました。

 

 

文字コードの指定が <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> とiso-8859-1 になっています。

$ file /usr/bin/mrtg
/usr/bin/mrtg: awk or perl script, ASCII text, with very long lines

mrtg は perlスクリプトですので、iso-8859-1 を指定している箇所を utf-8 に書き換えました。2カ所あるけど、片方はコメントなので 1カ所でよかったかも。

mrtg_02


修正後の表示です。文字化けせず期待通りの表示になっています。

 

 

 

 

表示も含め一通り完了なんですが、mrtg 本体が更新されると修正箇所が書き換えられちゃいますよね。気がついたときに修正すればいいんですが、あまりスマートな解決方法ではないですねぇ。

CentOS もページのソースをチェックしたのですが、iso-8859-1 のままで化けずに表示されています。暇なときに apache2の設定も含め、差異をチェックしてみることにします。

それから /etc の下で mrtg.cfg を修正するのはいいんですが、今後のこと考え、

$ sudo mkdir /etc/mrtg
$ sudo ln -s /etc/mrtg.cfg /etc/mrtg/mrtg.cfg

としておきました。/etc/mrtg 配下にシェルスクリプトを置いていく予定です。

2016/11/06 追記
 ディレクトリの場合、*.d にするのが通例(?)のようですので、/etc/mrtg → /etc/mrtg.d にしてみました。

0 件のコメント:

コメントを投稿