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
$ 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
これでばっちり! と思ったのですが、コメント等に使っている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 本体が更新されると修正箇所が書き換えられちゃいますよね。気がついたときに修正すればいいんですが、あまりスマートな解決方法ではないですねぇ。
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 件のコメント:
コメントを投稿