skucky.com
Ubuntuにanalogをインストールした際の設定メモ。
quark:~# apt install analog |
#以下をコメント |
#LOGFILE /var/log/apache/access.log |
#LOGFILE /var/log/apache2/referer.log |
#LOGFILE /var/log/apache2/agent.log |
#以下を修正(ログローテを考慮) |
#LOGFILE /var/log/apache2/access.log |
LOGFILE /var/log/apache2/access.log* |
#以下を追記 |
OUTFILE Report.html |
HOSTNAME "www.skucky.com" |
#~中略~ |
#以下を追記(日本語表示、画像ファイルの格納場所とか) |
LANGFILE /usr/share/analog/lang/jpu.lng |
DESCFILE /usr/share/analog/lang/jpudesc.txt |
DOMAINSFILE /usr/share/analog/lang/jpudom.tab |
DNS WRITE |
DNSFILE /var/www/analog/dnscache |
DNSLOCKFILE /var/www/analog/dnslock |
LANGUAGE JAPANESE-UTF |
SEARCHCHARCONVERT ON |
SEARCHCWORD OFF |
IMAGEDIR images/ |
#以下をコメント |
#SREP OFF |
上記の設定でanalogコマンドを実行すればレポートファイル(上記の設定で言う所のReport.html)がカレントディレクトリに作成されますが、当該ファイルをブラウザで参照してもanalogの画像ファイルは読み込めません。これは、analogが/usr/share/analog/images/にある画像ファイル(*.png)を読み込んでいるようでして、画像を表示させる箇所が画像が読み込めないアイコン?のようになると思います。
対処としては、下記のコマンドでシンボリックリンクを作成すれば読み込めるようになります。以下の例では、/var/www/analogディレクトリ配下にReport.htmlを出力する前提です。
quark:~# cd /var/www/analog |
quark:~# ln -s /usr/share/analog/images images |
あとは、cronなどで定期的にファイルを作成する様に設定しておけば見たいときに見れて便利です。
quark:~# crontab -l |
0 1 * * * cd /var/www/analog;/usr/bin/analog |
UbuntuにNTPをインストールした際の設定メモ。
quark:~# apt install ntp ntp-doc ntp-simple |
#~中略~ |
server -4 ntp.nict.jp iburst |
server -4 ntp.nict.jp iburst |
server -4 ntp.nict.jp iburst |
~中略~ |
UbuntuにMRTGをインストールした際の設定メモ。
quark:~# apt install mrtg snmp snmpd |
~中略~ |
com2sec local localhost private |
group MyRWGroup v1 local |
group MyRWGroup v2c local |
group MyRWGroup usm local |
view all included .1 80 |
access MyRWGroup "" any noauth exact all all all |
sysLocation Ubuntu Server 20.0.4 |
sysContact root |
proc apache2 100 1 |
disk / 10000 |
disk /boot 10000 |
load 5 2 1 |
~中略~ |
今回、自宅サーバーをUbuntuに更改したことを機に使いまわしたVAIOの温度事情が気になったので、温度をMRTGで監視できるように設定しました。ネットで調べたところ、lm_sensorsとhddtempと言うソフトでCPUとHDDの温度を検知できるとのことなので、早速インストール。
quark:~# apt install lm_sensors |
quark:~# apt install hddtemp |
WorkDir: /var/www/mrtg |
Options[_]: growright, bits |
EnableIPv6: no |
# 回線使用率表示の設定 |
Target[localhost_enp4s0]: #enp4s0:private@localhost: |
SetEnv[localhost_enp4s0]: MRTG_INT_IP="192.168.1.5" MRTG_INT_DESCR="Marvell-Technology-Group-Ltd.-Yukon-Optima-88E8059-[PCIe-Gigabit-Ethernet-Controller-with-AVB]" |
MaxBytes[localhost_enp4s0]: 12500000 |
Title[localhost_enp4s0]: Traffic Analysis for enp4s0 -- quark |
PageTop[localhost_enp4s0]: <h1>Traffic Analysis for enp4s0 -- quark</h1> |
<div id="sysdetails"> |
<table> |
<tr> |
<td>System:</td> |
<td>quark in Ubuntu Server 20.0.4</td> |
</tr> |
<tr> |
<td>Maintainer:</td> |
<td>root <webmaster@skucky.com></td> |
</tr> |
<tr> |
<td>Description:</td> |
<td>Marvell-Technology-Group-Ltd.-Yukon-Optima-88E8059-[PCIe-Gigabit-Ethernet-Controller-with-AVB]</td> |
</tr> |
<tr> |
<td>ifType:</td> |
<td>ethernetCsmacd (6)</td> |
</tr> |
<tr> |
<td>ifName:</td> |
<td>enp4s0</td> |
</tr> |
<tr> |
<td>Max Speed:</td> |
<td>12.5 MBytes/s</td> |
</tr> |
<tr> |
<td>Ip:</td> |
<td>192.168.1.5 (No DNS name)</td> |
</tr> |
</table> |
</div> |
# Apacheプロセス数表示の設定 |
Target[httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.5.1:private@localhost: |
ThreshMaxI[httpd]: 20 |
SetEnv[httpd]: EMAIL="webmaster@skucky.com" |
URL="http://www.skucky.com/mrtg/httpd.html" |
MaxBytes[httpd]: 150 |
Title[httpd]: Number of httpd |
PageTop[httpd]: <H1> Number of httpd on WebServer</H1> |
YLegend[httpd]: Number of httpd |
ShortLegend[httpd]: processes |
LegendI[httpd]: the number of running httpd |
LegendO[httpd]: the number of running httpd |
Options[httpd]: growright,absolute,gauge,nopercent |
Legend1[httpd]: Apacheプロセス数 |
Legend2[httpd]: Apacheプロセス数 |
# ロードアベレージ表示の設定 |
Target[la]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.3:private@localhost: |
ThreshMaxI[la]: 50 |
SetEnv[la]: EMAIL="webmaster@skucky.com" |
URL="http://www.skucky.com/mrtg/la.html" |
MaxBytes[la]: 100 |
Title[la]: Load Average |
PageTop[la]: <H1> Load Average on WebServer</H1> |
YLegend[la]: Load Average |
ShortLegend[la]: % |
LegendI[la]:1 minute average |
LegendO[la]:15 minute average |
Options[la]: gauge, growright |
Legend1[la]: 負荷平均(1分間) |
Legend2[la]: 負荷平均(15分間) |
# ディスク使用率表示の設定 |
Target[df]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:private@localhost: |
ThreshMaxI[df]: 80 |
SetEnv[df]: EMAIL="webmaster@skucky.com" |
URL="http://www.skucky.com/mrtg/df.html" |
MaxBytes[df]: 100 |
Title[df]: Disk Usage "/" and "/boot" |
PageTop[df]: <H1>Disk Usage "/" and "/boot" on WebServer</H1> |
YLegend[df]: Disk Usage |
ShortLegend[df]: % |
LegendI[df]:/ |
LegendO[df]:/boot |
Options[df]: gauge, growright |
Legend1[df]: ディスク使用率(/) |
Legend2[df]: ディスク使用率(/boot) |
# メモリ使用率表示の設定 |
Target[mem]: .1.3.6.1.4.1.2021.4.4.0&.1.3.6.1.4.1.2021.4.6.0:private@localhost: |
ThreshMinI[mem]: 50% |
ThreshMinO[mem]: 50% |
SetEnv[mem]: EMAIL="webmaster@skucky.com" |
URL="http://www.skucky.com/mrtg/mem.html" |
MaxBytes1[mem]: 3687420 |
MaxBytes2[mem]: 3687836 |
Unscaled[mem]: dwmy |
Title[mem]: Available Memory ("swap" and "real") |
PageTop[mem]: <H1>Available Memory "swap" and "real" on WebServer</H1> |
YLegend[mem]: Available Memory |
ShortLegend[mem]: Bytes |
kilo[mem]: 1024 |
kMG[mem]: k,M,G,T,P |
LegendI[mem]:Swap memory available |
LegendO[mem]:Real memory available |
Legend1[mem]:空きスワップメモリ[MBytes] |
Legend2[mem]:空き物理メモリ[MBytes] |
Options[mem]: gauge, growright |
# HDD,CPU温度表示の設定 |
Target[hddtemp]: `/usr/bin/sensors | grep "CPU Temp" |grep -v grep | awk '{print $3}' | sed -e 's/+//' -e 's/[^0-9+\.].*//' && /usr/sbin/hddtemp /dev/sda | awk '{print $4}'|sed -e 's/[^0-9+\.].*//' && uptime && df | grep ubuntu` |
MaxBytes[hddtemp]: 100 |
Title[hddtemp]: CPU and HDD Temperature by lm_sensors and hddtemp |
PageTop[hddtemp]: <h1>CPU and HDD Temperature</h1> |
Options[hddtemp]: growright,absolute,gauge,nopercent |
WithPeak[hddtemp]: ymw |
YLegend[hddtemp]: Temperature |
ShortLegend[hddtemp]: ℃ |
LegendI[hddtemp]: CPU |
LegendO[hddtemp]: HDD |
Legend1[hddtemp]: CPU温度 |
Legend2[hddtemp]: HDD温度 |
Legend3[hddtemp]: CPU温度(1分最大値) |
Legend4[hddtemp]: HDD温度(5分最大値) |
設定量はちょっと多いですが、基本的にMRTGは2値を使用してグラフを描写するようなので、snmpから取得した2値が何を意味するのかさえ抑えておけば、なんとなく設定はできると思います。設定できればこんな感じのグラフが描写できると思います。
やはりグラフは視覚的に見て分かりやすいので、サーバーに何らかの異常が発生した場合、直ぐに分かるので大変便利なツールだと思います。自宅サーバーを構築しているのであれば是非利用を勧めたいツールの一つですね。
自宅サーバーではWEBカメラを使って監視カメラとして運用することができます。使用したカメラはlogicoolのc270というWEBカメラです。自宅サーバーのWEBカメラとして利用する分には比較的安価なわりには性能も十分で良い商品だと思います(決してlogicoolの回し者ではありません)。
昔のLinuxとかは新たにハードを使用するにもデバイスドライバをインストールしたり、パッケージに無ければハードウェアの提供しているデバイスドライバのソースを取り寄せコンパイル、インストールしたり、カーネルオプションを変えてブートイメージをコンパイルし直したりとか何かと手間暇かける必要がありましたが、最近のLinuxは本当に便利でこのようなWEBカメラもUSBポートに接続するだけで勝手に認識して使用できます。これが無料で使えるのですからオープンソースってやはり素晴らしいです。
動画の保存やライブ監視にはmotionというソフトを使っています。設定ファイル/etc/motion/motion.confについては、編集箇所のみ抜粋してあります。
#~中略~ |
daemon on |
target_dir /var/www/webcam |
framerate 30 |
threshold 300 |
movie_quality 100 |
movie_codec mp4 |
movie_filename %Y%m%d%H%M%S |
webcontrol_localhost off |
stream_localhost off |
#~中略~ |
motion.confの設定と監視する場所によりますが、動画ファイルの容量は言うまでもなく結構大きく、リソース(ディスク容量)の有効利用を考慮しないと容量を逼迫してしまいます。特に、自分の様に自宅の庭などを監視していると、ちょっとした草木の揺れや洗濯物の揺れだけでmotionが動体検知して勝手に動画を保存してくれます。
と言う事で、以下のようなコマンドを定期的に実行して動画ファイルを削除するようにしておきます。
quark:~# crontab -l |
find /var/www/webcam -type f -mtime +2 -exec rm -f {} \; |
自宅サーバーを構築して運用するからには日々サーバーの状況を簡単に把握しておきたいところです。詳しくはチップスのサーバーチェックシェルにありますが、少しだけ改良したシェルスクリプトをこちらに紹介しておきます。
やはり日々の不正アクセスログが気になるので、sshによるアクセスの痕跡や認証ログを出力した点と各種プロセス状況のサマリも出力する様に改良しています。メールスプールの消費状況はもはやメールサーバーと言ってもすべてGmailに転送しているので、メールスプールについてディスク容量を監視する事はもはや意味がないのでコメントアウトしています。
最後にsshに関して余談ですが、小生はsshを使用していません。出先からログインしたい場合はTELNETを使用していますが、VPN接続によりこれを実現しています(先に述べた通りルーターのVPN機能を利用。パケットフィルタリングの設定等も併せて必要ですがある程度のセキュリティは保たれているはず)。sshのアクセスログは本当に鬱陶しくもはやsshは使わない方が良いと判断しました。